1 / 29

DIAMS-2

DIAMS-2. Programmeerimiskeeled Andres Luuk 03.05.2004. Üldine. Jooksis kolmanda põlvkonna väikearvutil CM-4 Operatsioonisüsteem DIAMS-2 Arvuti võimaldas mitut kasutajat Mälu kasutus: 40 kuni 55 KB – töötamise ajal Kuni 16 KB – iga kasutaja. Üldine.

yosefu
Download Presentation

DIAMS-2

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. DIAMS-2 Programmeerimiskeeled Andres Luuk 03.05.2004

  2. Üldine • Jooksis kolmanda põlvkonna väikearvutil CM-4 • Operatsioonisüsteem DIAMS-2 • Arvuti võimaldas mitut kasutajat • Mälu kasutus: • 40 kuni 55 KB – töötamise ajal • Kuni 16 KB – iga kasutaja

  3. Üldine • Ette nähtud tekstiinfo töötlemiseks ja tööks andmebaasidega • Enne kasutamist tuleb registreeruda (sisse logida) • Programmeerija režiimid: • Dialoogrežiim • Programmirežiim

  4. Andmed • Kõiki andmaid kujutatakse arvutis sõnedena (kodeeringus ДКОИ-7). • Andmete interpretatsioon sõltub kontekstist. • Arvud: Mõned näited arvudest: -256, +4.7, 12E-2, 12.3E-1

  5. Andmed • Tõeväärtused: 1 - “tõene” 0 - “väär” • Sõnekonstandid: Põhisümbolite jada, mis on jutumärkide sees Näiteks: “23. juuni”

  6. Identifikaatorid • Tähtede ja numbrite jada, mis algab tähega • Erandiks teekprogrammid, süsteemi muutujad ja standardfunktsioonid • Kasutatakse: Muutujate tähistena Programminimedena Märgenditena

  7. Muutujad muutujad Kasutaja muutujad Süsteemsed muutujad lokaalsed globaalsed liht- indeksiga liht- indeksiga

  8. Muutujad • Kasutaja muutujad Kasutaja saab teha direktiiviga SET ja hävitada direktiiviga KILL • Süsteemsed muutujad Loob ja korrigeerib operatsioonisüsteem

  9. Muutujad • Lokaalsete muutujate väätust säilitatakse operatiivmälus Kättesaadavad ainult sellel tarbijale selle sessiooni vältel • Globaalseid muutujaid säilitatakse magnetkettal Kättesaadavad kõigile sama identifitseerimiskoodiga kasutajatele

  10. Muutujad: Massiivid • Puudub massiivikirjeldus • Operatsioonisüsteem jaotab mälu dünaamiliselt, vastavalt vajadusele • Kui on olemas elemendid M(1), M(1,2,1), M(2,1), M(2,2) siis hoitakse seda mälus: M M(1) M(2) M(1,2) M(2,1) M(2,2) M(1,21)

  11. Avaldised • Kõiki tehete arvutamisi teostatakse vasakult paremale • NB! Mingit muud tehete prioriteeti ei ole • Tehete järjekorra muutmiseks võib kasutada sulge • Kuna kõiki andmeid hoitakse sõnedena siis andmete interpretatsioon sõltub sellest missugust operanti nõuab tehe.

  12. Avaldised • Sõne interpreteerimine arvuna algab esimesest sümbolist ja kestab, kuni pole leitud sümbolit, mis arvu süntaksiga ei ole kooskõlas. • Näiteks: “1982 juuni” + 1 on samaväärne 1982+1 “juuni 1982” +1 on samaväärne 0+1

  13. Avaldised • Näide tehete järjekorrast: 2<3+1 väärtuseks on 2 sest 2<3 on tõeväärtus “tõene ”ja see on 1, nii et 1+1=2 2<(3+1) väärtuseks on “tõene” (1) sest 3+1=4 ja 2<4

  14. Programmi Struktuur • Programm koosneb ridadest • Iga rida algab sümboliga Ꚗ või märgendiga, millele järgneb Ꚗ • Reas võib olla 1 või mitu direktiivi • Iga direktiivi vahel peab olema täpselt üks tühik • Kui direktiivil pole argumente siis täpselt 2 tühik • Kommentaarid algavad sümboliga ; ja kestavad rea lõpuni • Märgendid ei tarvitse olla unikaalsed

  15. Programmi Struktuur • Iga direktiiv koosneb ingliskeelsest võtmesõnast ja argumentidest • Võtmesõna ja argumentide vahel võib paikneda tingimus • Näiteks: WRITE:N>0 “JAH” • Argumendid eraldatakse komadega • Interpretaator tunneb võtmesõnu esitähe järgi (v.a. Z kus ta tunneb 2 esimese tähe järgi) • Näiteks: WRITE “tere” = W “tere”

  16. Direktiivid: SET • Omistab väärtuse muutujale • Saab omistada lokaalseid, globaalseid, liht- ja indeksiga muutujaid • Näiteks: SET summa=A+B lokaalne muutuja SET ^M=7 globaalne muutuja SET mas(1)=1,mas(2)=3 indeksiga muutuja

  17. Direktiivid: WRITE • Kasutatakse tulemuse väljastamiseks • Automaatselt pärast rea väljastamist reavahetust ei tehta, tuleb käskida erikäsuga ! mine uuele reale = mine uuele leheküljele ?n trüki n-dast positsioonist

  18. Direktiivid: WRITE • Näiteprogramm kirjutamisest: Ꚗ; Teksti trükkimine, kirjutab TIIT A Ꚗ WRITE ?24 “*** * * ***”,! ꚖSET x = “ * * * *” ꚖWRITE ?24,x,!,?24,x ꚖHALT

  19. Direktiivid: DO • Direktiiv programmi täitmiseks. • Programm peab olema terminalilt sisestatud programmi puhvrisse • Näiteks: DO A

  20. Direktiivid: QUIT ja HALT • QUIT Lõpetab programmi töö ja laseb kasutajal arvutiga edasi töötada • HALT pärast programmi töö lõppu registreerib kasutaja arvutist välja

  21. Direktiivid: GOTO • Suunatakse märgendi või programmi nime juurde, mida täita edasi • Võib anda ka suhtelise märgendi • Näiteks: GOTO M GOTO M+1

  22. Direktiivid: FOR • Direktiiv tsüklite programmeerimiseks • Korratakse kõiki käske, mis on samal real peale FOR käsku • Saab anda ette kolm parameetrit: algväärtus, samm ja maksimumväärtus

  23. Direktiivid: IF • IF-i järgi on avaldiste loetelu, eraldatud komadega, kui kõik avaldised on tõesed, siis täidetakse IF järel olev käsk • Kui kõik avaldised on tõesed, omistatakse ka süsteemsele muutujale TEST=1, kui väärad aga TEST=0 • Kui IF-i kasutakse ilma argumentideta, siis täidetakse IF-i järel olev käsk juhul kui TEST=1

  24. Direktiivid: ELSE • ELSE järel olevat käsku täidetakse juhul kui TEST=0 • Näiteks: ꚖIF C=2 WRITE “JAH” ꚖELSE WRITE “EI” ꚖIF WRITE “TEIST KORDA JAH” ꚖSET C=C+1

  25. Silumisest • Programmi silumine on keeles DIAMS-2 raske ja keeruline • Selleks saab kasutada mõnda süsteemset käsku ja Redaktorit(autor Raivo Käi)

  26. Alamprogrammid • DIAMS-2 lubab ka alamprogramme • Nende poole pöördutakse programmi seest: DO rea_number ^programmi nimi • DO ja GOTO vahe on see, et pärast DO-ga välja kutsutud programmi lõppu naastakse vanasse programmi. • Alamprogrammi ja põhiprogrammi vahel käib andmete vahetus ainult muutujate vahendusel

  27. Mittetäielik süntaks • Kui on kasutatud globaalset muutujat ^AB(1,1) ja siis on vaja omistada muutujale B globaalse muutuja ^AB(1,2) väärtust, siis saab seda teha: SET B= ^(2) • Või kui on vaja ^AB(1,2,1) väärtust SET A=^(2,1)

  28. Kaudne nimi, šabloon või argument • Kasutatakse elementide dünaamiliseks ette andmiseks • Näiteks: SET A=“X1”, @A=4 muutujale X1 omistatakse väärtus 4 SET B=“MAR” GOTO @B+2 Antakse juhtimine 2 ritta alates märgendist MAR

  29. Näidisprogramm Programm nimega KESKM: M1 Ꚗ;15 hinde keskmise arvutmine ꚖREAD “HINDED: ” SET S=0 FOR J=1:1:15 READ A(J) SET S=S+A(J) ;Hinnete sisestamine ja summeerimine ꚖSET K=S/15 QUIT ;Alamprogrammi lõpp Programm nimega KOOND: MꚖ;Nimede ja keskmiste hinnete trükk ꚖREAD “N=”,N,! FOR I=1:1:N READ NIMI(I) WRITE NIMI(I) DO ^KESKM WRITE ?20,K,! ꚖQUIT ;Põhiprogrammi lõpp

More Related