1 / 21

Oberon

Oberon. Rauno Ots Tartu 2005. Mis on?. Uraani kuu Operatsioonisüsteem Eraldi Teise süsteemi peal Programmeerimiskeel. Programmeerimiskeel Oberon. 1986 Wirth ja J. Gutknecht Institute for Computer Systems, ETH Zürich Haridusotstarbeline

tuan
Télécharger la présentation

Oberon

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Oberon Rauno Ots Tartu 2005

  2. Mis on? • Uraani kuu • Operatsioonisüsteem • Eraldi • Teise süsteemi peal • Programmeerimiskeel

  3. Programmeerimiskeel Oberon • 1986 Wirth ja J. Gutknecht • Institute for Computer Systems, ETH Zürich • Haridusotstarbeline • Võimalikult ohutu – programmeerijad ei saa valesti kasutada omadusi mida ei ole • Väike – minimaalne suurus 200KB

  4. Lühiülevaade • Üks autoritest on Niklaus Wirth (tegi või aitas ka Algoli, Pascali, Modula ja Delphi valmimisel) • Pascali sarnane süntaks • Tugev tüübikontroll • Moodulid • Tüübist sõltuvad protseduurid Oberon-2’s • Struktuuride pärimine, aluseks OOP-le • Käimisaegne tüübikontroll • Automaatsed tüübiteisendused arvutüüpide vahel • Operatsioonid sõnedega • Madala taseme programmeerimine • Kiire kompilaator

  5. Näide MODULE Hello; IMPORT Oberon, Texts; VAR W: Texts.Writer; PROCEDURE World*; BEGIN Texts.WriteString(W, "Hello World!"); Texts.WriteLn(W); Texts.Append(Oberon.Log, W.buf); END World; BEGIN Texts.OpenWriter(W); END Hello.

  6. Andmetüübid • Lihttüübid • Massiivid • Struktuurid • Viidad • Protseduurid

  7. Andmed – Lihttüübid • BOOLEAN väärtustega TRUE ja FALSE • CHAR extended ASCII (0X ... 0FFX) • SHORTINT 1B (täisarvudvahemikus -128..127) • INTEGER 2B (täisarvud-32768..32767) • LONGINT 4B • REAL • LONGREAL • SET täisarvude komplektid

  8. Andmed – Arvutüübid • täisarvud vaikimisi kümnendsüsteemis, aga võib kasutada kuueitestkümnendsüsteemi • 986, 741, 0 • 632H, ABCH • reaalarv sisaldab alati punkti • 12.3 49. 4.567E8 0.52 • 0.57712566D-6 • Arvude hierarhia • LONGREAL > REAL > LONGINT > INTEGER > SHORTINT

  9. Andmed - Massiivid • Indeksid 0..pikkus-1 • Pikkus on konstant • Näited • ARRAY N OF INTEGER • ARRAY 10, 20 OF REALon sama, mis • ARRAY 10 OFARRAY 20 OF REAL

  10. Andmed - Struktuurid • Võivad laiendada olemasolevaid • Näited • RECORD day, month, year: INTEGEREND • RECORDname, firstname: ARRAY 32 OF CHAR;age: INTEGER;salary: REALEND

  11. Operaatorid • Loogilised • OR • & • ~ eitus • Aritmeetilised • + summa • - vahe ja vastandarv • * korrutis • / jagatis • DIV jagatise täisosa (täisarv) • MOD jääk (täisarv)

  12. Operaatorid – Näited • 1987 (INTEGER) • i DIV 3 (INTEGER) • ~p OR q (BOOLEAN) • (i+j) * (i-j) (INTEGER) • s - {8, 9, 13} (SET) • i + x (REAL) • a[i+j] * a[i-j] (REAL) • (0<=i) & (i<100) (BOOLEAN) • t.key = 0 (BOOLEAN) • k IN {i .. j-1} (BOOLEAN) • t IS CenterNode (BOOLEAN)

  13. Operaatorid(2) • Komplektid • + ühend • - vahe või täiend • * ühisosa • / sümmeetriline vahe • Võrdlemine • = võrdne • # mitte võrdne • < • <= • > • >= • IN kas kuulub komplekti • IS tüübi kontroll

  14. Operaatorid – Juurdepääs ja omistamine • Muutuja tüüp peab sisaldama avaldise oma • Näited • p := i = j • x := i + 1 • k := log2(i+j) • F := log2 • s := {2, 3, 5, 7, 11, 13} • a[i] := (x+y) * (x-y) • t.key := i

  15. Tegevuste järjekord • Sama prioriteediga operaatoreid täidetakse vasakult paremale • IF laused • IF (ch >= "A") & (ch <= "Z") THEN ReadIdentifier ELSIF (ch >= "0") & (ch <= "9") THEN ReadNumber ELSIF ch = 22X THEN ReadString ELSE SpecialCharacter END • CASE • CASE ch OF "A" .. "Z": ReadIdentifier | "0" .. "9": ReadNumber | 22X : ReadString ELSE SpecialCharacter END

  16. Tegevuste järjekord – tsüklid • WHILE … END • WHILE j > 0 DO j := j DIV 2; i := i+1 END • REPEAT … UNTIL • LOOP … END • Väljumine EXIT käsuga • Ei ole GOTO’d

  17. Andmete juhtimine • Iga identifikaator peab olema eespool kirjeldatud. • Viit kehtib defineerimisest kuni selle ploki lõpuni (protseduur või moodul) kuhu ta kuulub ja on seega lokaalne. • Võib eksportida

  18. Alamprogrammid • Võivad sisaldada formaalseid parameetreid • Võivad omakorda sisaldada alamprogramme • Kas funktsioonid või protseduurid

  19. Mälukasutus • Prügi eest hoolitsetakse automaatselt • Dünaamiliselt võib mälu juurde võtta

  20. Süntaks ja transleerimine • Kirjeldatakse BNF abil • reservsõnad kirjutatakse 'märkide_vahele' või SUURTE TÄHTEDEGA • Kommentaarid või kirjutada suvaliste sõnade vahele (* algus ja lõpp *) • Programmid kirjutatakse moodulitena

  21. Kasutatud allikad • Oberon Language Reporthttp://www.oberon.ethz.ch/oreport.html • Oberon Programming Languagehttp://www.absoluteastronomy.com/encyclopedia/O/Ob/Oberon_programming_language.htm

More Related