Doporuceni

Jazyk Oberon. Stručný průvodce | PC svět | Nakladatelství otevřených systémů

Jazyk Oberon byl vytvořen v roce 1987 Niklausem Wirthem, profesorem Institutu počítačových systémů na Federální technické univerzitě (ETH, Curych, Švýcarsko) a autorem jazyků Pascal a Modula-2.
Jazyk je pojmenován po satelitu planety Uran. Fotografie a informace o satelitu Oberon naleznete zde, zde a zde.

Oberon se liší od Modula-2 v tom, že postrádá mnoho volitelných konstrukcí; Do jazyka byly přidány objektově orientované programovací nástroje – rozšiřitelné záznamy. Oberon je nejjednodušší univerzální jazyk. Zároveň pokračuje v tradici Pascalu a Modula-2 a poskytuje přísnou kontrolu ve fázi překladu a usnadňuje vytváření spolehlivých programů.

Hlavní rysy Oberonu

    Jednoduchá a pohodlná pravidla pro kompatibilitu číselných typů (SHORTINT <=INTEGER<=LONGINT<=REAL<=LONGREAL)

Oberon-2

V roce 1992 byla přijata rozšíření jazyka Oberon navržená Hanspeterem Mössenböckem. Rozšířený jazyk byl pojmenován Oberon-2. Hlavní novinkou jsou typově závislé procedury (v Object Pascalu se jedná o virtuální metody, v C++ a Javě – instanční metody). Oberon 2 je nyní de facto standardem jazyka. Popis jazyka Oberon-2 v ruštině.

Požadavky na dub

V létě 1993 se v hotelu Oakwood na londýnském předměstí Croydon konala konference vývojářů a programátorů kompilátorů Oberon, kde byly dohodnuty požadavky na složení knihovních modulů doprovázejících implementace Oberonu. Přijatý dokument je známý jako „Oakwood guidelines“. Na přípravě tohoto dokumentu se na ruské straně podíleli Alexey Nedorya a Andrey Kadach, nyní zaměstnanci novosibirské firmy XDS.

Systémy Oberon

Oberon původně vznikl jako součást projektu na vytvoření operačního systému pro jednouživatelskou pracovní stanici Ceres. Tento OS, také pojmenovaný Oberon, byl napsán (v Oberonu) N. Wirthem a Jürgem Gutknechtem ([email protected]).

Následně byl tento systém Oberon portován na mnoho platforem: Amiga, Linux, Macintosh, Unix (DECstation, stanice HP, RS600, Silicon Graphics, SparcStation), PowerMac, Windows. Tato rodina původních systémů Oberon je nyní známá jako Oberon V4.

Kompletní seznam známých systémů Oberon naleznete zde. Obvykle jsou k dispozici spolu se zdrojovým kódem.

Další implementace Oberonu

Kromě kanonické implementace Oberonu obsahuje systém Oberon více než 20 jazykových kompilátorů a převodníků Oberon => C. Jejich úplný seznam naleznete zde.

Technologie šťávy

V létě 1996 Michael Franz, profesor Kalifornské univerzity v Irvine a student N. Wirtha, a jeho postgraduální student Thomas Kistler představili technologii distribuce spustitelného kódu na internetu, kterou autoři nazvali Juice (v ruštině – šťáva). Juice je založen na Oberonu a obsahuje na jedné straně nástrojovou komponentu pro Oberon System 3, která poskytuje kompilaci modulů napsaných v Oberonu do reprezentace nezávislé na platformě. Druhá část Juice je zásuvný modul pro internetové prohlížeče, který umožňuje za běhu kompilaci přijatého Juice kódu do nativního kódu, jeho načtení a spuštění.

Juice předčí technologii Java ve všech směrech kromě reklamních nákladů:

JOB — nový kompilátor Oberon-2

JOB je kompilátor pro bytecode Oberon-2 do Java Virtual Machine (JVM). Vyvinul S. Sverdlov (Vologda, VSPU) Překladač pracuje ve Windows 95/NT. Generuje soubory tříd (.class), které lze načíst a spustit virtuálním strojem Java. Umožňuje vytvářet aplikace a applety. Obsahuje standardní knihovny Oberon (viz požadavky Oak) a také rozhraní pro Java API.

Přečtěte si více
Jak dosáhnout dokonalého zvuku výfuku: Věda a umění | TOFRIS

Oberon v Rusku

Vzdělávací verze
kompilátor XDS

N. Wirth a tým XDS
(Novosibirsk, 1996)

Oberon na tréninku

Oberon je ideální jazyk pro výuku programování. Je jednoduchý, přehledný a není nadbytečný. Zároveň obsahuje potřebné a dostatečné prostředky strukturovaného, ​​objektově orientovaného a modulárně-komponentového programování. Oberon je skvělý pro studium překladatelských metod, jako objekt i jako nástroj.

Oberon se používá na mnoha západních univerzitách. Obzvláště populární ve Švýcarsku, Rakousku, Německu. Na některých z těchto univerzit je to hlavní jazyk používaný ke studiu programování. Seznam univerzit a profesorů, kteří aktivně využívají Oberon ve své výuce, najdete na stránce ETH Oberon.

Na Pedagogické univerzitě ve Vologdě je Oberon od roku 1996 využíván na katedře aplikované matematiky v kurzu „Programovací jazyky a překladatelské metody“. Oberon je v současnosti povinným studiem pro studenty druhého ročníku. V Oberonu (spolu s dalšími jazyky) se provádějí jednotlivé úkoly. Jedním z úkolů je vyvinout lexikální analyzátor, který je v některých variantách úlohy implementován pro Oberon.
Použili jsme Oberon/F (bezplatná verze pro vzdělávací instituce), předběžnou verzi JOB kompilátoru, a na jaře 1998 jsme vyzkoušeli bezplatnou demoverzi XDS.
Od listopadu 1998 se ve vzdělávacím procesu používá výuková verze překladače XDS.
Druhá část kurzu „Programovací jazyky a metody překladu“ (návrh kompilátoru) je založena na vývoji překladače pro minimální podmnožinu Oberonu (tento jazyk se nazývá „O“). Překladač O byl nakonec napsán v Pascalu, Oberonu, C a v sezóně 1997/98 byl implementován také v Javě a Modula-2.
Pomocí kompilátoru JOB byly v Oberonu-2 napsány tyto applety: Tetris, Running Line, Sea Battle, Mnemonic, Filler, Lines, Network, Voracity, Rubikova kostka, Test, které můžete vidět na našich stránkách.

Publikace v ruštině

Zde jsou uvedeny mi známé publikace (c3c) o Oberonu a souvisejících problémech v ruštině. Pokud víte o dalších, dejte mi prosím vědět.

zdroje

  • N.Wirth. Programovací jazyk Oberon. Popis jazyka Oberon (nikoli Oberon-2) v textovém formátu Oberon V4. Soubor tohoto formátu lze také načíst do BlackBox Component Builder (Oberon/F). Po odstranění záhlaví lze také snadno číst jako prosté ASCII. Soubor je komprimován pomocí unixového nástroje tar. Jeho verzi pro MS DOS lze stáhnout zde (zip ~180K)
  • Syntaxe jazyka Oberon. (1 stránka vzorců RBNF ve formátu V4 Text)
  • H.Moessnboeck, N.Wirth Programovací jazyk Oberon-2. Oficiální jazyk Oberon-2 na serveru ETH v textovém formátu Oberon V4.
  • H. Mössenböck, N. Wirth. Programovací jazyk Oberon-2. Překlad z angličtiny. HTML formát (~90K na našem serveru). Totéž na stránkách Guy Ladina (Tel Aviv University)

Na rozdíl od průmyslových jazyků (zahrnutí maximálních zdrojů, princip hrudníku) vyznává princip kufru (pouze nejnutnější). Jednodušší a zároveň výkonnější než kanonický Pascal.

Podporuje následující programovací paradigmata (přístupy):

  • procedurální programování;
  • modulární programování;
  • abstraktní programování datových typů (programování ADT);
  • rozšiřitelné programování;
  • OOP (objektově orientované programování);
  • komponentově orientované programování;
  • programování systémů;
  • reflexní programování.
Přečtěte si více
Ramaria lutea: jak vařit, fotografie a popis houby, užitečné vlastnosti

Veškeré vstupy/výstupy, paralelní programování a obsluha výjimek jsou přesunuty na úroveň externích knihoven.

Jazyk je založen na modulech a rozšíření kombinovaných typů (RECORD). To umožňuje Oberonu fungovat jako základ pro budování rozšiřitelného rámce softwarového systému (s připojením komponent bez rekompilace) a jako OOP assembler.

Velmi snadné se naučit a zvládnout. Snadno srozumitelné pro ty, kteří znají Pascal. Udržuje kontinuitu základních myšlenek programování. Níže je pseudokód, který odráží tuto kontinuitu v syntaxi jazyka a demonstruje klíčový mechanismus rozšíření typu (dědění).

2. Vizitka daného jazyka

Specifika OOP v Oberonu. Zvláštností jazyka je mechanismus dědění prostřednictvím typu (RECORD), a nikoli prostřednictvím modulu (CLASS). Tento mechanismus umožňuje přesnější správu rozsahu viditelnosti: do kapsle jednoho modulu lze zahrnout několik tříd RECORD, což umožňuje přístup k detailům implementace sousedů bez porušení principu skrývání informací a bez zbytečné režie. Metody v Oberonu reprezentují pole procedurálních typů (Oberonovy procedurální typy jsou brány jako základ pro reprezentaci delegátů v C#).

Není potřeba jmenných prostorů – místo nich je jasný koncept modulu, pocházejícího již od Davida Parnase, operujícího s pojmem export-import jazykových entit (konstanty, typy, typová pole, proměnné, procedury).

Moduly podporují úplnou samostatnou kompilaci (část rozhraní je extrahována automaticky podle stávajícího exportního označení), jsou zaváděcí jednotkou a základem pro konstrukci softwarových komponent.

3. Rozdíly od Pascalu

A. Syntaxe
  1. Důležitá je velikost písmen v názvech identifikátorů.
  2. Identifikátory vyhrazeného jazyka jsou vždy psány velkými písmeny.
  3. Odstraněné závorky na začátku. Začátek operátoru je určen jeho jménem a konec je určen slovem END. Moduly a procedury vyžadují, abyste po slově END na konci opakovali jejich název. Komentáře jsou označeny spojkou (* *).
B. Typy dat
  1. Odstraněny výčty, rozsahy. Typ SET definuje množinu celých čísel v rozsahu od 0 do MAX(SET). Byl zaveden procedurální typ (PROCEDURE) s operacemi volání a přiřazení.
  2. Indexy pole jsou číslovány od nuly. Byla zavedena vícerozměrná otevřená pole (ARRAY OF).
  3. Položky variant byly odstraněny. Jsou nahrazeny rozšiřitelnými typy kombinací (viz E.1).
C. Procedurální programování
  1. Rozdělení na procedury a funkce bylo odstraněno: procedury mohou vracet hodnoty prostřednictvím svého názvu.
  2. Odstraněn operátor FOR jako zdroj chyb.
  3. Přidán univerzální cyklus LOOP-END s operátorem EXIT.
D. Modulární programování
  1. Pojem program (Pascal) byl odstraněn, stejně jako rozdělení na softwarové a knihovní moduly (Modula-2). Existuje jediný koncept modulu – jednotka kompilace a provádění (načítání). Umí exportovat entity: konstanty, typy, typová pole, proměnné, procedury. Vnořené (lokální) moduly jsou zakázány. Exportované procedury bez parametrů se nazývají příkazy a definují volací body modulu (programu).
  2. export používá ikonu * (hvězdička) při definování entity bezprostředně za jejím názvem. Modul rozhraní (popisný) je sestaven automaticky kompilátorem.
  3. Importují se pouze moduly (IMPORT). Je možné zadat alias modulu. Importované identifikátory v textu musí být kvalifikovány názvem odpovídajícího modulu.
Přečtěte si více
Co je dysplazie loktů u psů?
E. Objektově orientované programování
  1. Kombinovaný typ (RECORD) lze rozšířit přidáním záznamových polí (včetně procedurálních typů). To definuje mechanismus projekce typu podobný dědičnosti v tradičním OOP.
  2. Pro práci s rozšiřitelnými typy byla zavedena operace typové členství (IS) a také operátor WITH (typ gatekeeper).
  3. Jazyk poskytuje mechanismus pro automatické shromažďování odpadků.
F. Programování systému
  1. Je představen pseudomodul SYSTEM, který je rozhraním mezi jazykem a nízkoúrovňovými nástroji. Import SYSTEM signalizuje vazbu na konkrétní operační platformu.
  2. Byly zavedeny postupy pro aritmetiku adres (ADR, BIT, LSH, ROT, CC), převod typu (VAL), operace s pamětí (GET, PUT, MOVE) a rezervaci oblasti paměti (NEW).
  3. Byl zaveden typ BYTE. Formální parametr typu ARRAY OF BYTE předaný odkazem je kompatibilní s jakýmkoli typem.

4. Stručná charakteristika hlavních jazyků rodiny Oberonů

  1. Oberon (Niklaus Wirth, 1988) je elegantní, kompaktní jazyk (menší a jednodušší než Pascal), ideální pro výuku základů informatiky, konceptů strukturovaného, ​​modulárního a objektově orientovaného programování (OOP). Dobře se hodí pro realizaci malých a středních projektů. Má kompilátory uvnitř Oberon System a Juice. Skvělý kandidát na roli esperanta programování.
  2. Oberon-2 (Hanspeter Messenbock, Niklaus Wirth, 1991) – vývoj Oberonu ve směru obvyklého OOP ve spojení s Modula-2 (jako systémový programovací jazyk) vytváří dobrý základ pro realizaci velkých projektů z makro a mikrosvěta (embedded systémy, systémy reálného času). Dvojjazyčná komunikace je perfektně implementována v systému XDS (Excelsior). Umožňuje křížový vývoj ve Win32/Linux s kompilátory C a C++ v průmyslové kvalitě. Pokud potřebujete zobecnění algoritmů (použití OOP), psaní autonomních programů, stabilní práci s OS na úrovni systémových volání, použití externích knihoven v jiných jazycích, portování na jiné platformy přes C/C++, efektivní implementaci (optimální objektový kód), pak je vhodný Oberon-2 ve verzi XDS.
  3. Component Pascal/Component Pascal (Klemens Szyperski, Kuno Pfister, 1997) je evolucí Oberonu a Oberonu-2 směrem ke komponentně orientovanému programování (COP). Funguje dobře pro programování ve velkém. Pokud potřebujete vybudovat rozšiřitelný systém pomocí COP, přístupů softwarového inženýrství a máte přímý přístup k modernímu vývoji pro Win32, .NET a Java Platform, pak potřebujete Component Pascal v implementacích BlackBox a GPCP. BlackBox má ve své implementaci jedinečnou vlastnost dynamického rozšiřování systémů („za běhu“) díky podpoře komponent Oberon, je snadno konfigurovatelný pro řešení problémů jakékoli úrovně složitosti (od výuky informatiky na školách až po složité výzkumné systémy), má prostředky pro vytváření komponent COM s garbage collection (Direct-To-COM Compiler), který získal cenu za technologickou dokonalost na CeB.
  4. Aktivní Oberon (Jürg Gutknecht, Patrick Reali, 2000) je v Oberonu ztělesněním myšlenky aktivních objektů (multiprocesorových systémů pro multiprocesorové konfigurace). Výzkumný projekt skupiny prof. Gutknecht (ETH, Curych). Základní jazyk pro implementaci operačního systému Bluebottle, dalšího vývoje systému Oberon. Podporuje práci ve Win32, na holém počítači (PC), koexistuje s Java a .NET. Prokázal vynikající výkon ve specifických oblastech (multimédia, všudypřítomná výpočetní technika).
  5. Zonnon (Jürg Gutknecht, Evgeny Zuev, 2003) je revizí Modula-2 a Oberonu prizmatem myšlenek z jazyka Mesa (Xerox PARC) a platformy Microsoft .NET. Výzkumný projekt skupiny prof. Gutknecht. Více se zaměřuje na implementační funkce nových jazyků a kompilátorů pro platformu .NET s následnou integrací do Microsoft Visual Studio .NET (2005). Je zajímavý pro výuku ve vyšších ročnících vysokých škol, pro začínající programátory poněkud obtížný, ale docela krásně řeší problémy „mírového soužití“ modulárního programování, OOP a COP. Představitel kompozičního programování.
Přečtěte si více
Polní myš: Nesouvisí s myšmi. kdo to tedy je? Tajemství našeho původního hlodavce | Pikabu

5. Referenční popisy jazyků <br />Oberon-rodina

  1. Oberon
    N. Wirth. Programovací jazyk Oberon (01.10.1990/XNUMX/XNUMX)
  2. Oberon-2
    H. Moessenboeck, N. Wirth. Programovací jazyk Oberon-2 (březen 1995)
  3. Komponenta Pascal
    Mikrosystémy Oberon. Zpráva Component Pascal Language Report (březen 2001)
  4. Aktivní Oberon
    P. Reali. Aktivní jazyková zpráva Oberon (27.10.2004)
  5. Zonnon
    J. Gutknecht, E. Zueff. Zpráva o zónovém jazyce (říjen 2004)

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *

Back to top button