I have seen a tool (Shed Skin) to translate one high-level language to another high-level language. Apart from knowing those languages what are the other areas of technical knowledge required to develop this kind of translators?

  • One could say the most dangerous parts of such translations is in the edge cases. Those cases which one expects (as everything else did) to act the same. ... Which is a problem with non standardized languages, whose behaviour somewhat varies from implementation to implementation. – Rook Oct 7 '11 at 12:05
  • 1
    I dont see the point of these programms. You should use the right language for the job – Tom Squires Oct 7 '11 at 12:25
  • @Tom Squires - Well, I thought the same .... but after seeing this SO question stackoverflow.com/questions/1189535/…, my mind is little on-required side :-) – droidsites Oct 7 '11 at 13:37

You are developing a compiler here (a program that translates from one language into another), so I'd consider a firm background in compiler theory both crucial and sufficient to do the job.

Any further knowledge depends on the scope of the job. Compiling Java to C++ would, for example, be mostly trivial when you have a garbage collector implementation at hand. Haskell to C seems to be a much more complicated matter, judging from the slow progress of the ghc.

| improve this answer | |
  • Plus a good working knowledge of unit testing. – Tom Squires Oct 7 '11 at 12:26
  • @TomSquires - Is it even possible to write a compiler without unit tests? How can you claim that the compiler works if you cannot say it works between cases -n and n+1? – Ramhound Oct 7 '11 at 13:08
  • 2
    @Ramhound: You could prove it. If you write the compiler in a language with a sufficiently expressive type system, you could even have the type checker do the proof for you. (Remember: per the Curry-Howard-Lambek Correspondence, type checking is basically equivalent to theorem proving.) Note: I'm not saying that this is practical, though :-) – Jörg W Mittag Oct 7 '11 at 14:37

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.