Nord Programming Language: Difference between revisions
Peter Flass (talk | contribs) mNo edit summary |
Jerryobject (talk | contribs) WP:LEADSENTENCE MOS:BOLDSYNonym simplify. Small WP:EoS WP:TERSE WP:COPYEDITs; clarify, cut needless word repeats. WP:LINKs: adds, updates. Nonacronym proper noun WP:ALLCAPS > sentence case. 2nd MOS:PERSON WP:YOU fix. |
||
Line 1: | Line 1: | ||
{{Unreferenced|date=December 2006}} |
{{Unreferenced|date=December 2006}} |
||
'''Nord Programming Language''' |
'''Nord Programming Language''' ('''NPL'''), is a [[Procedural programming|procedural]] [[programming language]] by the Norwegian [[minicomputer]] manufacturer [[Norsk Data]]. It shipped as a standard component of the [[operating system]] [[Sintran III]]. |
||
The language was also used to implement |
The language was also used to implement Sintran III: the core and [[file system]] of which are written in NPL, as was the NPL [[compiler]], and some core applications early on, until the release of [[high-level programming language]] named [[PLANC]]. Then, the [[Linker (computing)|linker]] and other software were rewritten in PLANC. |
||
The NPL compiler was also special in that it did not |
The NPL compiler was also special in that it did not emit [[object code]] as most compilers do. Instead it emitted an [[intermediate representation]], in the form of [[assembly language]] code, which then had to be assembled using the [[Norsk Data Assembler]]. |
||
The registers of the CPU were available in NPL as predefined variables. Thus |
The registers of the CPU were available in NPL as predefined [[Variable (computer science)|variables]]. Thus could be written: |
||
X + T =: A |
X + T =: A |
||
and the compiler would |
and the compiler would emit: |
||
COPY SX DA |
COPY SX DA |
||
RADD ST DA |
RADD ST DA |
||
Functions could be declared with multiple entry |
[[Subroutine|Functions]] could be declared with multiple [[entry point]]s: |
||
FUNC FUN1, FUN2 |
FUNC FUN1, FUN2 |
||
Line 26: | Line 26: | ||
END |
END |
||
FUN1 could be called to set T to 1 before falling into FUN2 or T could be set to something else and call FUN2. If T register specified which file handle to write to then either FUN1 could be called to always output to terminal or T could be specified to handle a file |
<code>FUN1</code> could be called to set <code>T</code> to <code>1</code> before falling into <code>FUN2</code> or <code>T</code> could be set to something else and call <code>FUN2</code>. If <code>T</code> register specified which file handle to write to, then either <code>FUN1</code> could be called to always output to terminal or <code>T</code> could be specified to handle a file in <code>T</code> and call <code>FUN2</code> to output to that file. |
||
{{Norsk Data}} |
{{Norsk Data}} |
Revision as of 21:44, 25 December 2021
Nord Programming Language (NPL), is a procedural programming language by the Norwegian minicomputer manufacturer Norsk Data. It shipped as a standard component of the operating system Sintran III.
The language was also used to implement Sintran III: the core and file system of which are written in NPL, as was the NPL compiler, and some core applications early on, until the release of high-level programming language named PLANC. Then, the linker and other software were rewritten in PLANC.
The NPL compiler was also special in that it did not emit object code as most compilers do. Instead it emitted an intermediate representation, in the form of assembly language code, which then had to be assembled using the Norsk Data Assembler.
The registers of the CPU were available in NPL as predefined variables. Thus could be written:
X + T =: A
and the compiler would emit:
COPY SX DA RADD ST DA
Functions could be declared with multiple entry points:
FUNC FUN1, FUN2 FUN1: T := 1 FUN2: code here END
FUN1
could be called to set T
to 1
before falling into FUN2
or T
could be set to something else and call FUN2
. If T
register specified which file handle to write to, then either FUN1
could be called to always output to terminal or T
could be specified to handle a file in T
and call FUN2
to output to that file.