Modula-2: Forskjell mellom sideversjoner

Fra Wikipedia, den frie encyklopedi
Slettet innhold Innhold lagt til
Ranværing (diskusjon | bidrag)
Ranværing (diskusjon | bidrag)
Linje 92: Linje 92:
* {{cite web |author= Byte Magazine|url=https://archive.org/details/byte-magazine-1984-08/page/n147/mode/2up?q=modula |title=Modula-2 |date=August 1984 |website=BYTE – The Small Systems Journal, 1984 Volume 9 (8) |publisher=Byte Magazine|page=143-232|ref=BYTE}}
* {{cite web |author= Byte Magazine|url=https://archive.org/details/byte-magazine-1984-08/page/n147/mode/2up?q=modula |title=Modula-2 |date=August 1984 |website=BYTE – The Small Systems Journal, 1984 Volume 9 (8) |publisher=Byte Magazine|page=143-232|ref=BYTE}}
* {{cite book |last=Wirth |first=Niklaus |author-link=Niklaus Wirth |title=Programming in Modula-2 |year=1988 |location=Berlin, Heidelberg |publisher=Springer Verlag|edition=4. |isbn=978-3-642-83565-0 |doi=10.1007/978-3-642-83565-0|s2cid=41899609|ref=PIM }}
* {{cite book |last=Wirth |first=Niklaus |author-link=Niklaus Wirth |title=Programming in Modula-2 |year=1988 |location=Berlin, Heidelberg |publisher=Springer Verlag|edition=4. |isbn=978-3-642-83565-0 |doi=10.1007/978-3-642-83565-0|s2cid=41899609|ref=PIM }}
* {{cite book |last=Wirth |first=Niklaus |author-link=Niklaus Wirth |editor=M. Broy and E. Denert |article=Pascal and its Successors |title= Software Pioneers|year=2002 |location=Berlin, Heidelberg |publisher=Springer Verlag|edition= |isbn=3-540-43081-4|ref=Wirth2002 }}


== Eksterne lenker ==
== Eksterne lenker ==

Sideversjonen fra 4. des. 2023 kl. 03:02

Modula-2
Tilblivelse1978; 46 år siden (1978)
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.[1] 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.[L 1]

I august 1984 omtalte databladet BYTE språket og dets miljø.[L 2]

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.[L 3] Det var tre større utgaver av denne boken: Andre, tredje (korrigert) og fjerde, som 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 på dem.

  • PIM2 (1983)
    • Krevde en eksplisitt EXPORT klausul i definisjonsmoduler.
    • Funksjonen SIZE behøver ikke å importeres fra modulet SYSTEM
  • PIM3 (1985)
    • Fjernet EXPORT klausulen fra definisjonsmoduler. Ettersom alt innenfor et definisjonsmodul definerer grensesnittet til dette modulet, ble EXPORT klausulen overflødig.
    • Funksjonen SIZE er gjennomtrengende (synlig i ethvert område uten å importeres)
  • PIM4 (1988)
    • Spesifiserte oppførselen til operatoren MOD når operandene er negative.
    • Krevde at alle ARRAY OF CHAR strenger avsluttes med ASCII NUL, selv om strengen passer nøyaktig inn i sin tabell.
  • ISO (1996, 1998)
    • ISO Modula-2 fjernet de fleste tvetydighetene i PIM Modula-2. Den tilføyde datatypene COMPLEX og LONGCOMPLEX, unntak, modulterminering (FINALLY klausulen) og et komplett standard I/O-bibliotek. Der finnes mange små forskjeller og avklaringer.[2]

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

Kompilatorer

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).[W 1]

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.[3]

Historiske kompilatorer

Turbo Modula-2

Turbo Modula-2 var en kompilator og et integrert utviklingsmiljø for MS-DOS. Det ble utviklet, men aldri lansert, av Borland. Jensen and Partners, som inkluderte Borland's medgrunnlegger Niels Jensen, kjøpte kompilatoren og endret den til TopSpeed Modula-2. Den ble til slutt solgt til Clarion, senere SoftVelocity, som tilbød Modula-2 som en del av dets Clarion-produkter på denne tiden.[4]

IBM Modula-2

IBM hadde en Modula-2 kompilator for internt bruk som kjørte på både OS/2 og AIX, og med førsteklasses støtte i IBM's E2-editor.[5] IBM Modula-2 ble delvis brukt i OS/400 Vertical Licensed Internal Code (kjernen til OS/400).[6] Denne koden ble for det meste erstattet med C++ da OS/400 ble portert til prosessorfamilien IBM RS64, men litt gjenstår i moderne utgaver av operativsystemet.[7][8] En bakende for Motorola 68000 ble brukt av innebygde systemer.[5]

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. ^ PIM 1988, side 4
  2. ^ BYTE August 1984
  3. ^ PIM 1988
Nettsteder
  1. ^ «GNU Modula-2». Savannah. Free Software Foundation. 30. august 2018. 

Kilder

  • Byte Magazine (August 1984). «Modula-2». BYTE – The Small Systems Journal, 1984 Volume 9 (8). Byte Magazine. s. 143-232. 
  • Wirth, Niklaus (1988). Programming in Modula-2 (4. utg.). Berlin, Heidelberg: Springer Verlag. ISBN 978-3-642-83565-0. doi:10.1007/978-3-642-83565-0. 
  • Wirth, Niklaus (2002). M. Broy and E. Denert, red. Software Pioneers. Berlin, Heidelberg: Springer Verlag. ISBN 3-540-43081-4. 

Eksterne lenker

  1. ^ N. Wirth, Pascal and its Successors. In Software Pioneers, M. Broy and E. Denert, Eds. Springer-Verlag, 2002, ISBN 3-540-43081-4
  2. ^ ISO/IEC 10514-1:1996
  3. ^ GCC 13 Release Series Changes, New Features, and Fixes, gnu.org, 13. april 2023, oppdatert 30. oktober 2023
  4. ^ «About Clarion». Arkivert fra originalen 7. desember 2002. Besøkt 31. mars 2023. 
  5. ^ a b «IBM Modula-2». edm2.com. 2. mars 2019. 
  6. ^ «Reader Feedback on AS/400 to i Mystery Solved». itjungle.com. 21. februar 2011. 
  7. ^ Soltis, Frank G. (1997). Inside the AS/400 (2nd utg.). Duke Press. ISBN 978-1882419661. 
  8. ^ Leif Svalgaard (8. oktober 2003). Re: Re: MI emulator. 
  9. ^ Summary of Projects by N. Wirth, 1962-1999
  10. ^ Sand, Paul A. (September 1984). The Lilith Personal Computer. Byte. s. 300–311.  Reprint.
  11. ^ 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. 
  12. ^ 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.