Movatterモバイル変換


[0]ホーム

URL:


Přeskočit na obsah
WikipedieWikipedie: Otevřená encyklopedie
Hledání

Modula-2

Z Wikipedie, otevřené encyklopedie
Modula-2
Paradigmastrukturované, modulární
Vznik1978
AutorNiklaus Wirth
Typová kontrolasilná, statická
Hlavní implementaceETH Zurich (napsalNiklaus Wirth),Gardens Point,p1,Native XDS-x86,gm2 (GNU Modula-2)
DialektyPIM2, PIM3, PIM4, ISO
Ovlivněn jazykyPascal,Mesa,ALGOL,Simula-67
Ovlivnil jazykyModula-3,Oberon,Ada,Fortran 90,Lua,Zonnon, Modula-GM

Modula-2 je flexibilníprocedurálníprogramovací jazyk s podporoumultiprogramování. V roce1978 ho vytvořilNiklaus Wirth naSpolkové vysoké technická škole v Curychu jako nástupce jazykaModula. V roce1980 byl jazyk implementován pro počítačLilith, který byl uveden na trh roku1982 společnostíDISER (Data Image Sound Procesor and Emitter Receiver System) pod jmény mC1 a mC2 (po celém světě prodáno 120 kusů). JazykModula-2 vycházel podobně jako Modula z jazykaPascal stejného autora. Jazyk byl ovlivněn jazykemMesa a novými programovacími možnostmi osobního počítačeXerox Alto.

Popis

[editovat |editovat zdroj]

Modula-2 je systémově flexibilníprocedurální jazyk s širokými možnostmi uplatnění. Značná část syntaxe je založena na Wirthově starším a známějším jazycePascal. Jazyk Modula-2 byl navržen tak, aby byl podobný jazyku Pascal, ale některé prvky z Pascalu byly odstraněny a některé prvky z konceptu Modula naopak přidány. Byla též přidána přímá podpora promultiprogramování.

Programy v jazyce Modula-2 se skládají z jednotlivých modulů, z nichž každý se dále skládá ze dvou částí: definice modulu (část rozhraní, které obsahuje pouze ty části subsystému, které jsou viditelné pro ostatní moduly) a implementační modul (obsahuje zdrojový kód, který je uvnitř modulu a není pro ostatní moduly viditelný).Modul Modula-2 může být použit k zapouzdření do souboru souvisejících podprogramů a datových struktur, a omezit jejich viditelnost z jiných částí programu.

Jazyk má přísnou kontrolu oblastí. Kromě standardních identifikátorů není žádný objekt viditelný uvnitř modulu, pokud není výslovně exportován.

Předpokládejme, že modul M1 má exportovány objekty a, b, c a P jako výčet identifikátorů v exportním listu:

DEFINITIONMODULEM1;EXPORTQUALIFIEDa,b,c,P;...

Potom objekty a, b, c a P z modulu M1 jsou známy mimo modul M1 jako M1.a, M1.b, M1.c a M1.P. Exportní jméno objektu, tj. M1, je používáno jako kvalifikátor následovaný jménem objektu.

Předpokládejme modul M2 obsahující následující IMPORT deklarací:

MODULEM2;IMPORTM1;...

To znamená, že objekty exportované modulem M1 do svého programu mohou být nyní použity i uvnitř modulu M2. Jsou potom odkazoványkvalifikovaným způsobem takto: M1.a, M1.b, M1.c, a M1.P. Například:

...M1.a:=0;M1.c:=M1.P(M1.a+M1.b);...

Kvalifikovaný export zabraňuje střetům ve jménech. Například, pokud by jiný modul M3 měl také objekt nazvaný P, pak můžeme ještě rozlišit dva objekty, protože M1.P se liší od M3.P. Díky kvalifikovanému exportu nevadí, že se oba objekty ve svých exportních modulech M1 a M3 jmenují P.

Verze

[editovat |editovat zdroj]

Existují dvě hlavní verze Modula-2. První jePIM pojmenovaná po knize „Programování v Modula-2“ (Programming in Modula-2) odNiklause Wirtha. Takto vznikla druhá, třetí (opravená) a čtvrtá verze, z nichž každá popisuje mírné odlišnosti jazyka. Druhá hlavní verze je od organizaceISO.

  • PIM2 (1983)
    • povinné explicitní klauzuleEXPORT v definicích modulů.
  • PIM3 (1985)
    • odstraněna klauzuleEXPORT z definic modulů.
  • PIM4 (1989)
    • specifikováno chováníMOD aREM operátorů při záporných operandech a ujasněno, že pole znaků musí být zakončeno znakem nula.
  • ISO (1996)
    • ISO Modula-2 vyřešila většinu nejednoznačností v PIM Modula-2. Byla přidána data typuCOMPLEX aLONGCOMPLEX, výjimky, a přidány kompletní I/O standardní knihovny.

Jazykové prvky

[editovat |editovat zdroj]

Vyhrazená slova

[editovat |editovat zdroj]

PIM3 obsahuje následujících 40 vyhrazených slov:

AND         ELSIF           LOOP       REPEATARRAY       END             MOD        RETURNBEGIN       EXIT            MODULE     SETBY          EXPORT          NOT        THENCASE        FOR             OF         TOCONST       FROM            OR         TYPEDEFINITION  IF              POINTER    UNTILDIV         IMPLEMENTATION  PROCEDURE  VARDO          IMPORT          QUALIFIED  WHILEELSE        IN              RECORD     WITH

Hello World

[editovat |editovat zdroj]

Ukázka jednoduchého programu, který na obrazovku vypíše "Hello word":

MODULEPrintHelloWorld;(*This program prints "Hello world!" on the standard output device*)FROMInOutIMPORTWriteString,WriteLn;BEGINWriteString('Hello world!');WriteLn;ENDPrintHelloWorld.

Příbuzné jazyky

[editovat |editovat zdroj]

Modula-2 zdaleka nejznámějším a nejrozšířenějším jazykem z rozsáhlejší skupiny vzájemně příbuzných jazyků, která zahrnuje jazykyModula,Modula-2+, Modula-2*, ISO Modula-2,Modula-3,Oberon,Oberon-2 a řadu dalších.

Jazyk Modula-2 byl vyvinut jako systémový jazyk pro pracovní staniceLilith a stal se předchůdcem jazykaOberon a pracoviště projektu (systému Oberon) vyvinuté naETHCurych. Některé rysy jazyka Modula-2 byly převzaty do mnoha novějších jazyků.

Modula-GM

[editovat |editovat zdroj]

Delco Electronics a poté dceřiná společnost GMHughes Electronics vyvinula verzi Modula-2 provestavěné systémy v roce 1985. Pojmenovali jej Modula-GM. Byl to první vyšší programovací jazyk používaný pro nahrazení používání strojového kódu pro programování vestavěných systémů v řídících jednotkách motorů (ECUs). To mělo velký význam, protože Delco vyráběly v roce 1988 proGM více než 28000 ECU za den a staly se tak největším producentem ECU. První experimentální používání Modula-GM ve vloženém řadiči bylo v roce 1993 Gen-4 ECU vCART (Championchip Auto Racing Teams) aIRL (Indy Racing League).

Aktuální překladače

[editovat |editovat zdroj]
  • Native XDS-x86 pro Windows a Linux, ISO kompatibilní Modula-2 a Oberon-2, nativní kompilátory s volitelným TopSpeed Compatibility Pack (freeware)
  • p1 Modula-2 pro Macintosh, a to jak Classic i Mac OS X ale bez Cocoa podpory, ISO kompatibilní
  • The Karlsruhe Modula-2 Compiler MOCKA pro různé platformy, PIM kompatibilnífreeware Linux/BSD versions)
  • TERRA M2VMS pro OpenVMS, jak VAX tak i Alpha, PIM kompatibilní
  • The Ulm Modula-2 System pro Solaris, jak SPARC tak i MC68K (free software,GPLed)
  • XDS-C pro Windows a Linux, generuje ANSI nebo K&R C zdrojový kód většinou 16- a 32bitová platforma, ISO kompatibilní Modula-2 a Oberon-2 s možností TopSpeed Compatibility Pack (freeware)

Překladače s ukončeným vývojem

[editovat |editovat zdroj]
  • Benchmark Modula-2 for theAmiga
  • Borland Turbo Modula-2 pro CP/M (abandonware)
  • BorlandTurbo Modula-2 pro MS-DOS (prodána Jensen and Partners, nyní TopSpeed Modula-2)
  • epc Modula-2 (od bývalého Edinburgh Portable Compilers Limited; společnost už neexistuje, nyní je součástAnalog DevicesArchivováno 9. 12. 2006 naWayback Machine.)
  • FTL Modula-2 (v1.15 1986) pro MS-DOS, ATARI ST a CP/M Z80 autor Dave Moore, Cerenkof Computing. Distribuované v Austrálii firmouJED Microprocessors Pty Ltd.
  • Logitech řadu kompilátorů Modula-2 pro CP/M a MS-DOS
  • M2FArchivováno 6. 5. 2009 naWayback Machine. pro Linux, předchůdce na GNU Modula-2, generuje i386 kód, kompatibilní s PIM2 (GPL)
  • M2S proAmigu
  • M2SDS (IBM PC), Interface Technologies Inc. (ITC) Houston, TX.
  • Megamax Modula-2 pro Atari ST & TT computers. Pouze v němčině. Dokumentace i zdrojové kódy jsou dostupné zdarma ale nejsou příliš užitečné, většina je jich napsána v kódu assembler 68k.
  • Metrowerks' první produkty byly kompilátory Modula-2 pro velké množství platform, včetně Macintosh
  • Modula Corporation měl řadu kompilátorů Modula-2 pro MS-DOS(M2M-PC), Apple II a Macintosh
  • Modula-2 PC (IBM PC), PCollier Systems, Tucson, AZ.
  • Mosys Modula-2 System pro Sage / Stride 68000 computers. Brian Kirk,Robinson Systems Ltd. UK
  • Stony Brook Modula-2
  • TDI Modula-2 pro Amigu a Atari ST
  • TopSpeed (aka Clarion, aka JPI, aka Jensen and Partners) měl několik dobrých16bitových kompilátorů Modula-2 s pěknými IDE. Něco ve stylu "Turbo Pascal" z Modula-2. Trošku nestandardní, ale velice populární v podnikání i ve vzdělávání, vynikající toolchain. V současné době součástí Clarion ve vlastnictvíSoftVelocity
  • Volition Systems Modula-2 (UCSD p-System). Randy Bush, Richard Gleaves, Volition Systems Del Mar, CA.

Literatura

[editovat |editovat zdroj]

Externí odkazy

[editovat |editovat zdroj]
Programovací jazyky
abecední seznam programovacích jazyků
multiparadigmatické

AdaC++Common LispDF#GoOberonPerlPHPPythonRakuRubyRustScalaSwiftTcl (Tk) •Vala

strukturované (procedurální)

AWKCCOBOLDCLForthFortranLuaModula-2 /Modula-3PascalPawnPL/SQL

objektové
funkcionální
dotazovací

LINQSPARQLSQLXQueryXSL (XSLTXSL-FOXPath)

logické
výukové
ezoterické
historické

ALGOLAPLBBASICCPL (BCPL) •JMUMPSPL/ISimula 67SNOBOL

další
skriptovací/strojový kódkompilované/interpretovanéinteraktivní/dávkovéWYSIWYG
Autoritní dataEditovat na Wikidatech
Citováno z „https://cs.wikipedia.org/w/index.php?title=Modula-2&oldid=25416219
Kategorie:
Skryté kategorie:

[8]ページ先頭

©2009-2026 Movatter.jp