Hopp til innhold

Modula-2: Forskjell mellom sideversjoner

Fra Wikipedia, den frie encyklopedi
Slettet innhold Innhold lagt til
Ranværing (diskusjon | bidrag)
Ingen redigeringsforklaring
Ranværing (diskusjon | bidrag)
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
Tilblivelse1978[1]
ParadigmeMulti-paradigme: Imperativ programmering, strukturert programmering, modulær programmering, samtidig programmering
Designet og utviklet avNiklaus 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.

Referanser

  1. ^ Programming in Modula-2[Hentet fra Wikidata]
  2. ^ N. Wirth, Pascal and its Successors. In Software Pioneers, M. Broy and E. Denert, Eds. Springer-Verlag, 2002, ISBN 3-540-43081-4
  3. ^ N. Wirth, Programming in Modula-2, fourth Edition, page 4.
  4. ^ Summary of Projects by N. Wirth, 1962-1999
  5. ^ 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. 
  6. ^ BYTE – The Small Systems Journal, 1984 (8), pp. 143-232. Available at archive.org
  7. ^ Siteringsfeil: Ugyldig <ref>-tagg; ingen tekst ble oppgitt for referansen ved navn PIM
  8. ^ «GNU Modula-2». Savannah. Free Software Foundation. 30. august 2018. 
  9. ^ GCC 13 Release Series Changes, New Features, and Fixes, gnu.org, 13. april 2023, oppdatert 30. oktober 2023
  10. ^ Summary of Projects by N. Wirth, 1962-1999
  11. ^ Sand, Paul A. (September 1984). The Lilith Personal Computer. Byte. s. 300–311.  Reprint.
  12. ^ 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

Eksterne lenker