Computertaal
Onder programmeertalen worden, in de normaal gebruikte definitie, talen verstaan die turingvolledig zijn. Dat wil zeggen dat het mogelijk moet zijn om in de programmeertaal een interpreter voor een turingmachine te schrijven, en dat het mogelijk moet zijn een interpreter te schrijven voor de programmeertaal op een turingmachine.
In een taal die niet turingvolledig is, kan een kleiner aantal problemen opgelost worden dan in een turingvolledige taal. In SQL kan men bijvoorbeeld wel totalen van tabellen met gegevens berekenen, maar men kan niet berekenen wat de kortste route tussen twee punten in een graaf is.
Er zijn verschillende manieren waarop een door een softwareontwikkelaar geschreven computerprogramma door een computer uitgevoerd kan worden. De code die de ontwikkelaar ziet en bewerkt, wordt de broncode van de programmatuur genoemd; die moet op de een of andere manier worden omgezet in de machinetaal van de computer in kwestie die door de processor kan worden uitgevoerd. Grosso modo zijn er de volgende mogelijkheden:
- Geen omzetting: de programmeur voert machinecode direct
in het geheugen van de computer in. Dit is zo onpraktisch en tijdrovend
dat het niet of nauwelijks meer gebeurt.
- Interpretatie: een interpreter
leest stukje bij beetje tekst van de broncode in, interpreteert deze in
termen van betekenisvolle instructies en voert die, gesteund door een
runtimebibliotheek, direct uit. Een programma dat zo werkt, wordt
meestal een script genoemd en de programmeertaal in kwestie een scripttaal.
- Assemblage: een assembleertaal
maakt het mogelijk om programma's te schrijven als reeksen instructies
en gegevens die direct op machinetaal af te beelden zijn, maar waarin op
een wat meer symbolische manier gewerkt kan worden, bijvoorbeeld
doordat de machine-instructies namen hebben, geheugenadressen namen
kunnen krijgen en macro's kunnen worden gebruikt; een assembler zet zulke code om naar bestanden met objectcode, die door een linker samen met de al vooraf aanwezige objectcode van softwarebibliotheken tot een uitvoerbaar programma worden samengesteld.
- Compilatie: vertaling van de broncode naar een andere taal (de doeltaal) door een compiler. De doeltaal kan assembleertaal zijn; of een speciaal voor het vertaalproces ontworpen machine-onafhankelijke tussentaal (bytecode, ook wel P-code genoemd), die vervolgens gecompileerd of geïnterpreteerd moet worden; of een andere programmeertaal.
Hiervan bestaan allerlei tussenvormen en varianten.
|