I used ACTION! to write a number of programs for the Atari 8-bit systems in the mid-1980s. It was, bar-none, the closest that the Atari 8-bits ever got to something resembling C, for a _very_ long time, as the C compilers for the system at the time generated really bad p-code with a ridiculous library overhead...Completely impractical, and it gave credence to the stupid anecdotal wisdom that "A 6502 can't handle C."
The power of ACTION! was in the fact that it really was an integrated development environment, with an excellent text editor, monitor/compiler, and debugger crammed into a nice little cartridge...and ACTION! had a very liberal license with their embeddable runtime that made it very attractive for those who came from big computing environments like myself, and wanted to program in something a bit more abstract than 6502 assembler, while still allowing direct access to the hardware, and it was easy enough to drop down into assembler if you needed to...
The downside was that ACTION! was based on a language (Micro-SPL) that did a number of things that vastly simplified the design of the language and its tooling, the biggest was the deliberate non-use of stack-frames, which ultimately meant things like you can't call functions recursively, and that all variables are essentially static and global.
but once you understood these things, you could work around it well enough, and the output of the assembler code was quite excellent (for the time)
There is an open-source implementation of ACTION! called Effectus, you can get it here:
http://gury.atari8.info/effectus/download.phpYou might be able to massage it into something the NES could run really well.
-Thom