Modula-2: Forskjell mellom sideversjoner
Ingen redigeringsforklaring |
|||
Linje 61: | Linje 61: | ||
==Referanser== |
==Referanser== |
||
<references/> |
<references/> |
||
==Bøker== |
|||
* {{cite book |last=Wirth |first=Niklaus |author-link=Niklaus Wirth |title=Programming in Modula-2 |year=1988 |location=Berlin, Heidelberg |publisher=Springer |edition=4th |isbn=978-3-642-83565-0 |doi=10.1007/978-3-642-83565-0|s2cid=41899609|ref=PIM }} |
|||
== Eksterne lenker == |
== Eksterne lenker == |
Sideversjonen fra 3. des. 2023 kl. 05:26
Modula-2 | |||
---|---|---|---|
Tilblivelse | 1978[1] | ||
Paradigme | Multi-paradigme: Imperativ programmering, strukturert programmering, modulær programmering, samtidig programmering | ||
Designet og utviklet av | Niklaus Wirth | ||
Typetildeling | statisk, sterk, forsiktighet | ||
Påvirket av | |||
Mesa, Pascal, Modula |
Modula-2 er et programmeringsspråk som ble designet og utviklet mellom 1977 og 1985 av Niklaus Wirth (f. 1934) ved Eidgenössische Technische Hochschule Zürich. Språket ble allment tilgjengelig i 1978. Modula-2 ble forstått som etterfølgeren til Pascal og Modula.[2] Det var også påvirket av Mesa og de nye programmeringsmuligheter som Wirth oppdaget i datamaskinen Xerox Alto under hans sabbatsår i 1976 ved Xerox PARC.[3]
Modula-2 var eneste programmeringsspråk og applikasjonsprogramvare for Medos-2, operativsystemet til den personlige arbeidsstasjonen Lilith.[4] Også operativsystemet Excelsior, for arbeidsstasjonen Kronos, var et enkeltbruker-system basert på Modula-2 moduler. Det ble utviklet av Kronos Research Group (KRG) i Novosibirsk, som var tilknyttet Sovjetunionens vitenskapsakademi.[5]
I august 1984 omtalte databladet BYTE språket og dets miljø.[6]
Nøkkelkonseptene var:
- Modulet som separat kompileringsenhet for separat kompilering
- Korutinen som basis for parallelle prosesser
- Typer og prosedyrer som tillater aksess til maskin-spesifikke data
Dialekter
Det finnes to større dialekter av Modula-2. Den første er PIM, oppkalt etter boken Programming in Modula-2 av Niklaus Wirth.[7] Det var tre større utgaver av PIM: den andre, tredje (korrigert) og fjerde. Hver enkelt beskriver små varianter av språket. Den andre store dialekten er ISO, oppkalt etter standardiseringen til International Organization for Standardization. Her er forskjellene mellom dem.
Språkelementer
Reserverte ord
PIM [2,3,4] definerer 40 reserverte ord:
AND ELSIF LOOP REPEAT ARRAY END MOD RETURN BEGIN EXIT MODULE SET BY EXPORT NOT THEN CASE FOR OF TO CONST FROM OR TYPE DEFINITION IF POINTER UNTIL DIV IMPLEMENTATION PROCEDURE VAR DO IMPORT QUALIFIED WHILE ELSE IN RECORD WITH
Innebygde identifikatorer
PIM [3,4] definerer 29 innebygde identifikatorer:
ABS EXCL LONGINT REAL BITSET FALSE LONGREAL SIZE BOOLEAN FLOAT MAX TRUE CAP HALT MIN TRUNC CARDINAL HIGH NIL VAL CHAR INC ODD CHR INCL ORD DEC INTEGER PROC
GNU Modula-2
GNU Modula-2 ble lansert (versjon 1.0) den 11. desember 2010. Den er en front-end til GNU Compiler Collection (GCC), er fri programvare og er lisensiert under GNU General Public License versjon 3 (GPLv3).[8]
I GCC 13.1, som ble lansert 13. april 2023, ble GNU Modula-2 integrert som standard. GNU Modula-2 støtter alle dialektene av språket: PIM2, PIM3, PIM4, og ISO/IEC 10514-1 i et komplett sett med biblioteker. Atributten <* noreturn *> er støttet med kompilatorflagget -Wreturn-type.[9]
Historiske operativsystemer
Modula-2 ble også brukt som systemprogramvare til å realisere operativsystemer. Den modulære strukturen til Modula-2 har vært benyttet direkte i to beslektede operativsystemer.
- Modula-2 var det eneste programmeringsspråket og applikasjonsprogramvare for Medos-2, operativsystemet til den personlige arbeidsstasjonen Lilith.[10] Lilith ble lansert i 1980. Den var bygd opp rundt mikrobrikken AMD 2901 fra Advanced Micro Devices som kjørte i 7 MHz, og var implementert som en stakkmaskin.[11][12]
- Også operativsystemet Excelsior, for arbeidsstasjonen Kronos, var et enkeltbruker-system basert på Modula-2 moduler. Kronos ble lansert i 1984. Operativsystemet ble utviklet av Kronos Research Group (KRG) i Novosibirsk, som var tilknyttet Sovjetunionens vitenskapsakademi.[5]
Referanser
- ^ Programming in Modula-2[Hentet fra Wikidata]
- ^ N. Wirth, Pascal and its Successors. In Software Pioneers, M. Broy and E. Denert, Eds. Springer-Verlag, 2002, ISBN 3-540-43081-4
- ^ N. Wirth, Programming in Modula-2, fourth Edition, page 4.
- ^ Summary of Projects by N. Wirth, 1962-1999
- ^ a b Kuznetsov, D.N.; Nedorya, A.E.; Tarasov, E.V.; Filippov, V.E. «Kronos: a family of processors for high-level languages». Kronos: History of a Project (russisk). xTech. Besøkt 13. april 2021.
- ^ BYTE – The Small Systems Journal, 1984 (8), pp. 143-232. Available at archive.org
- ^ Siteringsfeil: Ugyldig
<ref>
-tagg; ingen tekst ble oppgitt for referansen ved navnPIM
- ^ «GNU Modula-2». Savannah. Free Software Foundation. 30. august 2018.
- ^ GCC 13 Release Series Changes, New Features, and Fixes, gnu.org, 13. april 2023, oppdatert 30. oktober 2023
- ^ Summary of Projects by N. Wirth, 1962-1999
- ^ Sand, Paul A. (September 1984). The Lilith Personal Computer. Byte. s. 300–311. Reprint.
- ^ Knudsen, Svend Erik (1983). Medos-2: A Modula-2 Oriented Operating System for the Personal Computer Lilith (thesis). ETH Zurich. doi:10.3929/ethz-a-000300091.
Bøker
- Wirth, Niklaus (1988). Programming in Modula-2 (4th utg.). Berlin, Heidelberg: Springer. ISBN 978-3-642-83565-0. doi:10.1007/978-3-642-83565-0.