I think once I or someone else should really do a deep reseach about existing high level alternatives for the NES (or the 6502 in general).
Someone already did it, but he does not mention any numbers when it comes to efficiency of those solutions.
What exists so far :
1) Home-made tools done by random enthusiasts
1.1)
ATALAN1.2)
uc65Pros : High level languages designed specially to produce efficient 6502 assembly code
Con : Have to learn a specific programing language. Both are in development phase, not "stable" yet. Atalan doesn't seem under active devlopment anymore. Debuging capabilities and support could be seriously limited.
2) Virtual Machine solutions
2.1)
FORTH2.2)
AcheronVM (
github repository)
2.3)
PlasmaPros : Better code density than native 6502 code -> good for saving ROM space
Cons : Have to learn a specific programming language (except for FORTH which is widely recognized, but still not so well known). Slow, many parts will have to be developped in assembly, the learning cuve to learn VM and assembly could be high. Debuging capabilities and support could be seriously limited.
3) C compilers
3.1)
CC65 Pros : open source, has been in development until recently. Con : Maintained by one author who did not allow other people to contribute (non-free, despite being costless and open-source), produces terrible code unless you are tuning both your code and the compile options at a point it becomes ridiculous and no C anymre, does not accept all C standard, not in development anymore.
3.11)
Any random CC65 fork done by people who wanted it to make it more efficient. (Pros : Generates better code, Cons : Not officially maintained, not under active development)
3.2)
Quezacoatl (Pros : Is free software, does not use this ridiculous "software stack" CC65 uses. Cons : Does not accept all C standard, is not under active development since long)
3.3)
CoSy A compiler that is supposed to be re-targettable and very efficient. Con : Proprietary software, probably very expensive, but if many people raises funds pehaps it'd be possible to finally have a good 6502 C compiler, without spending years of non-paid development time for existing free software solutions that does not support the 6502 as a backend ?
3.4)
GCC-6502 unofficial port. Is not yet quite stable, but who knowns. (
6502.org thread where I learnt about the project)
4)
UCSD p-system which is a GNU clone of a UCSD Pascal system which was very popular in the 80s, it allows to compile Pascal code into a machine-independant byte-code and then run this on any low-power CPU, including the 6502.
5) Other well known language compilers
Does any ADA, Fortran or other compilable langauge compilers exist for the 6502 ? Are those language more suited to 6502 than C, which is often said to be in terrible mismatch with the 6502 ?