This article is rated Stub-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||||||||
|
Initial description
So far only given a rough description of some of the snags that separate the language from other languages. I plan to elaborate more on it later. I also have to admit that when it comes to some of the specifics my memory is a bit rusty. I haven't programmed in NPL for 20 years or so. If anyone therefore can dig up some documentation and fill out some details that I may have omitted or gotten wrong I would appreciate it.
salte 12:47, 6 December 2006 (UTC)
Assembler
editThere was nothing special about the NPL compiler producing assembler instead of object code. This was a common thing back in the days, and is partly still today. Just that some compilers on other platforms tended to hide the assembler code by silently calling the platform's assembler. For example, although rarely needed, until today C compilers still cling to it, at least being able to spit out their intermediate code in assembler. And classic C compilers always called an assembler to generate object code (one of the reasons the typical cc command was initially called the C compiler front-end, not just the C compiler. The front-end called the pre-processor, the actual compiler, the assembler and the linker).
Generating assembler code is still today a common practice for some re-targetable compilers. It is easier to to use the existing infrastructure of an assembler when re-targeting, than having to code the object-generation bit for bit. More modern re-targetable compilers use intermediate languages that aren't the platform's assembler to better support code optimization. But the concept of not going directly to object code is still pretty much present. 178.1.239.202 (talk) —Preceding undated comment added 09:16, 6 October 2019 (UTC)