(Hmmm, I thought I responded to this. Disappeared in the ether, I guess!)
Charlie Veniot wrote:
> Scott Sauyet wrote:
>> So while I wish you luck in this, I personally don't hold out much
>> hope for such an endeavor.
> That's the kind of wish that leaves a foul odeur de je-ne-sais-quoi in my
> cornflakes.
But I do mean it. I really wish you the best. I'll be on the sidelines
cheering you along, celebrating your victories, mourning your failures. But
I've been heart-broken enough in trying this that I will never hold out high
hopes.
> Whatever I did to you to deserve that stick in my "what if" wheels of fun
> thinking, my apologies.
I think you're likely to run into the same sort of insurmountable obstacles
that I have. But if you're determined to stick to this course, all I can
do is cross my fingers and hope you see something I never did. I don't
expect it; but if you manage it, I will gladly eat (some vegetarian
alternative to!) crow.
I mostly answered because I did want you to know that there are others
who've held similar hopes, even if mine have mostly faded. I never tried
this with TiddlyWiki. I don't see that making a difference, but this tool
continually surprises me.
> If it is possible to transpile from one language to another successfully.
> If it is possible to compile from one language to another successfully.
>
> It doesn't matter what the source language is. Pseudocode, models, etc.
> They are just other languages. So transpile from anything to some language
> ... why not?
It is completely possible to store a model in TW that you could use to
generate code in some small set of languagues. As you say, that is what
compilers do, and basic compilers are relatively simple. (Optimizing
compilers can get arbitrarily complex.) What I don't think is likely
is being able to create a high-level model system that will let you
quickly spin up new languages that will convert such models to source
code for that language.
Think of the differences between the models underlying COBOL and Prolog.
A single model that spans both idea-spaces would already be tricky
enough. Now add in Forth. Then Agda. I think very quickly you end up
with a model that either has no cohesion or is so abstract that the code
generators are impossible to get right.
I understand that Turing completeness means that a very large class of
languages -- probably all we care about -- can solve the same problems.
But that does not mean that converting between them or from some high-
level model is a tractable problem.
If you do try to pursue this, I would make one suggestion: don't try
to solve one language up front and move on to the next. Instead try
at least three languages, ones with very different models. If you
can do this for some very limited domains (say "Hello, World",
factorial, and basic arithmetic), then I think you might be onto
something useful. Then try expanding alternately in two directions:
adding some new feature you want your model to support, and adding
a new language, with a model as different from the existing ones
as you can. (Saying you can generate Java and C# isn't saying much,
but saying you can generate Java and Prolog is much more impressive.)
Best of luck (and yes, I really mean that!)
-- Scott