Vorige                       Inhoud                      Volgende
_________________________________________________________________

NANOL                   860409          (c) 1986 by ORD-GROUP  43


                              NANOL

NANOL  is een zeer  eenvoudige,  zelfontworpen,  programmeertaal.
Toen  NANOL  werd ontworpen hadden we alleen de beschikking  over
een  BASIC  interpreter,  een Z80 assembler en een  FORTH  inter-
preter.  Het  gevolg was dat we bijna alle software in  assembler
schreven.  Het  was duidelijk dat we naar een hogere programmeer-
taal toe moesten.  Het schrijven van een compiler voor een hogere
programmeertaal in assembler is echter veel werk.  We hebben  dan
ook  NANOL ontwikkeld als een programmeertaal die zeer  eenvoudig
te  compileren  is  en  waarin je  eenvoudiger  programma's  kunt
schrijven dan in assembler.

Het voornaamste doel bij het ontwikkelen van NANOL was de eenvoud
van de compiler.  De compiler leest een NANOL file in en vertaalt
die naar assembler code.  De assembler kan dan de rest verzorgen.
Het is ons gelukt om NANOL zo eenvoudig te maken dat de  compiler
geen  symbol-table  hoeft  bij te houden en zelfs  geen  getallen
hoeft te kunnen converteren van ASCII naar binair.  Het  centrale
principe  van  de compiler is om de assembler het werk  te  laten
doen.

NANOL  heeft  een paar basisbegrippen:  expressie,  variabele  en
functie.

Een  expressie is een constructie waar een waarde uit  komt.  Een
waarde is een 16 bits unsigned getal.  Bijna elke constructie  in
NANOL is wel een expressie.

Een  variabele  is  een geheugenplaats waar je  een  waarde  kunt
opslaan. Variabelen moeten worden gedeclareerd.

Een  functie  is een subroutine die een aantal waarden als  argu-
menten accepteerd en een waarde teruggeeft.

Verder  is  NANOL gebaseerd op een blockstructuur  met  BEGIN-END
paren of haakjes paren.  De enige controlestatements zijn een IF-
THEN-ELSE-FI  en een WHILE-DO-OD.  Er is geen GOTO aanwezig  maar
het  blijkt  dat dit de programmeur juist forceert om  zijn  pro-
gramma netjes en goed doordacht te schrijven.

v.b. van een stuk programma:

VAR tmpkwd               CO declaratie van de variabele tmpkwd CO
PROC kwadraat(tmpkwd)=tmpkwd*tmpkwd   CO definitie van de functie
                                         kwadraat CO


Als  op  een  andere  plaats  in  het  programma  de  constructie
'kwadraat(x)' staat dan vinden de volgende acties plaats:

De waarde van expressie x wordt in de variabele tmpkwd gestopt.
De subroutine 'kwadra' wordt aangeroepen.  (Merk op dat slechts 6
     letters significant zijn in de namen.)
De  subroutine 'kwadra' rekent de waarde van de expressie aan  de
     rechterkant van het = teken in zijn definitie uit.

_________________________________________________________________

Vorige                       Inhoud                      Volgende