Content extract
http://www.doksihu A gazdaságinformatika alapjai A rendszerek építıkövei (Programozás 1.) 3. elıadás http://www.doksihu Mire használjuk a számítógépet? ? program A B A gazdaságinformatika alapjai 3. elıadás http://www.doksihu Neumann-elv a gyakorlatban Kettes számrendszer alkalmazása. Címezhetıség: utasítások és adatok sorszámozott memóriarekeszekben. Szekvenciális (egymás után következı) utasításvégrehajtás. Be- és kiviteli egység Vezérlı és mőveletvégrehajtó egység. A gazdaságinformatika alapjai 3. elıadás http://www.doksihu A gépi kódú utasítás Módosítás 1 Mőveleti kód 020 Címrész (operandus) 001200 Nehézségek: abszolút címzés, mőveletelemek alkalmazása A gazdaságinformatika alapjai 3. elıadás http://www.doksihu Assembly nyelv I. 0 020 001200 # trans b c:= b + a Elınyök:könnyebb programozás, # trans b # add a # trans c jobb olvashatóság, dokumentálhatóság
Makro: assembly sorozat A gazdaságinformatika alapjai 3. elıadás http://www.doksihu Az assembly nyelv II. A programok szerkezete: Az utasítások a formális logika leképezései: • adatmozgatás • aritmetikai utasítások • logikai utasítások • ugrások • feltételes ugrások • keret utasítások keret Adatdefiníciók Programutasítások A gazdaságinformatika alapjai 3. elıadás http://www.doksihu Számítási modellek Neumann-elvő nyelvek I Célok, tulajdonságok memória, címezhetı (sorszámmal) a program és az adatok a memóriában vannak a végrehajtás memóriaállapotok sorozata, állapottér (adatok tere), a program leírása szöveges Következmények van változó van értékadás utasítások ismételt végrehajtása lehetséges (ciklus, GOTO) elágazás (GOTO) beolvasás: memória másolás (ld. C64) kiírás: memória másolás (képernyı) A gazdaságinformatika alapjai 3. elıadás http://www.doksihu
Számítási modellek Neumann-elvő nyelvek II Start Bekér i Bekér i Címke: Ciklus eleje Kiír i i=i+1 Ha i<10 ugorj Ciklus elejé-re Vége Ciklus eleje Kiír i i=i+1 i<10 igen nem Vége A gazdaságinformatika alapjai 3. elıadás http://www.doksihu Számítási modellek Neumann-elvő nyelvek III Start Start Start Bekér i Bekér i Bekér i i<10 nem igen igen Kiír i Kiír i Kiír i*2 Kiír i/2 i=i+1 i=i+1 i<10 i<10 igen nem Vége Vége nem Vége A gazdaságinformatika alapjai 3. elıadás http://www.doksihu Számítási modellek Automata-elvő nyelvek Célok, tulajdonságok ( ipari robot) nyelvek az adatok állapotok, illetve bemenetek – fix felosztású memória (pl. festıkar he-lye, fest-e, .): állapottér a végrehajtás egyszerő állapotok sorozata a program egy állapotátmenet-függvény a program elkülönül az állapotoktól tevékenységorientáltság (állapotváltoztatás) Következmények
utasítások általában egy állapotkomponenst változtatnak változó, értékadás nincs (csak névvel ellátott állapotkomponensek) csak primitív (állapot-, vagy paraméter- vagy érzékelıállapot-függı) ciklusok ír-hatók állapot-, vagy paraméter vagy érzékelıállapot-függı elágazás A gazdaságinformatika alapjai 3. elıadás http://www.doksihu Számítási modellek Logikai nyelvek Célok, tulajdonságok a program egy logikai formula (általában nem lehet teljesen általános formula: megszorítások!), a program végrehajtása a logikai formula kiértékelése, erıs matematikai kidolgozottság, a formulákban szerepelhetnek paraméterek, a program és az adatok nem különülnek el (minden adat egy azonosan igaz formula) Következmények nincs változó, értékadás szekvencia = és, elágazás = vagy ciklus nincs, helyette rekurzív formulák vannak feltételes kifejezések elemi utasítás: mintaillesztés beolvasás,
kiírás: mintaillesztés, lehetıség új formulák létrehozására (új utasítás), kiértékelési algoritmus: backtrack csak a MIT? kell leírni A gazdaságinformatika alapjai 3. elıadás http://www.doksihu Számítási modellek Objektum elvre épített nyelvek Célok, tulajdonságok objektum = szerkezet + eljárások típus az adat és a kód nem választható el egymástól (adatdefiniáláskor jönnek létre az ıt kezelı eljárások) objektumtípus=osztály ≡ típust megvalósító modul hivatkozás: objektumtípusú változó.eljárásnév, objektumtípusú változómezınév az objektumok üzenetekkel (eljárások) kommunikálnak egymással, eseményvezérelt programozás öröklés: az új objektum egy másik objektum összes jellemzıjével rendelkezik, ehhez újakat is definiálhat típusszármaztatás (láthatósági kérdések), az örökléssel objektumok hierarchikus rendszere alakítható ki A gazdaságinformatika alapjai 3. elıadás
http://www.doksihu Számítási modellek Objektum elvre épített nyelvek Következmények az objektumok (tárgyak) önálló életet élı dolgok az eljáráshívás a legfontosabb fogalom olyan objektumnak lehet értéket adni, amely ilyen eljárást közöl magáról A gazdaságinformatika alapjai 3. elıadás http://www.doksihu Magasabb szintő programnyelvek Fordító szerkesztı Forrás- Tárgy- program program hibajegyzék futtatás Végrehatható program Eredmények hibajegyzék Szintaktika: nyelvi helyesség, Szemantika: mőködési helyesség A gazdaságinformatika alapjai 3. elıadás http://www.doksihu Interpreter Az értelmezıprogram (interpreter) soronként gépikódú utasításokat állít elı Gépi utasítássor A gazdaságinformatika alapjai 3. elıadás http://www.doksihu Compiler A fordító (Compiler) a programot csak gépi kódra fordítja. Ezután a program bármikor futtatható. Futtatható program A gazdaságinformatika
alapjai 3. elıadás http://www.doksihu A compiler modell Szimbólumtábla Symbol table Lexical Lexikai analysis elemzés Syntactic Szintaktikai analysis elemzés Semantic Szemantikai analysis elemzés Code Kódgenerálás generation A gazdaságinformatika alapjai 3. elıadás http://www.doksihu Nyelvi feldolgozó rendszer Lexikális elemzı Táblázatkezelı Szintaktikai elemzı Absztrakt szintaktikai gráf Szövegelemzı Nyelvtan Definíció Szemantikai elemzı Optimalizáló Kódgeneráló Szimbólum- Output tábla definíció A gazdaságinformatika alapjai 3. elıadás http://www.doksihu Fordító- és értelmezıprogramok Compiler és interpreter Fıbb alkotói: Lexikális elemzı Szintaktikai elemzı Hibakezelı Táblázatkezelı Szemantikai elemzı Globális optimalizáló Kódgeneráló Lokális optimalizáló Végrehajtó csak fordító esetén csak fordító esetén csak értelmezı esetén A gazdaságinformatika alapjai 3.
elıadás http://www.doksihu Programnyelvek különbözı célokra Tudományos számítások (FORTRAN, ALGOL60,.) Adatfeldolgozás (COBOL, RPG) Rendszerprogramozás (C, FORTH, CDL2) Szövegfeldolgozás Folyamatvezérlés (FORTH) Szimuláció (SIMULA-67, GPSS) Oktatás (BASIC, LOGO, Pascal, ELAN, Smalltalk) Általános célú (Ada, Modula-2, PL/I) A gazdaságinformatika alapjai 3. elıadás http://www.doksihu Programozási nyelvek osztályozása (2) Alacsonyszintő nyelvek Gépi nyelvek Minden lehetıség (HW,SW) kihasználható Minden lehetıség (HW,SW) kihasználható Szimbolikus utasítások Kód Azonosító Memóriacím Címkenév Memóriacím Makrók Direktívák Adathelyfoglalás, definiálás A gazdaságinformatika alapjai 3. elıadás http://www.doksihu Programozási nyelvek osztályozása (3) Magasszintő nyelvek Alacsonyszintő nyelvek (feladatorientált) (géporientált) Változó=tartomány változó=kezdıcím kifejezések típus
elágazás, ciklus feltételes vezérlésátadás eljárás eljáráshívás, visszatérés paraméterezés A gazdaságinformatika alapjai 3. elıadás http://www.doksihu Programnyelvek története (körülbelüli dátumok) 1944. Neumann János: egy assembly nyelv terve 1950-es évek: assembly nyelv 1. generáció (1950-1958) – elemi típusok, alapvetı utasítások FORTRAN I, ALGOL 58 Elmélet: assemblerek, kódgenerálás, makroprocesszor – hatékonyság 2. generáció (1957-1966) – szintaxis: alapvetı utasítások, adattípusok, kifejezések (fa, teljesen zárójelezett, lengyel forma) ALGOL 60: programegység, blokkstruktúra, algoritmusleíró nyelv FORTRAN: fordítási egység, kezdıértékadás, unió típus COBOL: rekord, file, adatfeldolgozás PL/I (lezáró nyelv): az elızıek + dinamikus típusok, tömbmőveletek A gazdaságinformatika alapjai 3. elıadás http://www.doksihu Programnyelvek története (körülbelüli dátumok) BASIC:
elsı oktatási célú nyelv Elmélet: nyelvek és automaták, szintaxis, lexikális analízis, kifejezéskiértékelés (fa, teljesen zárójelezett forma, lengyel forma) Nem Neumann-elvő nyelvek: LISP 3. generáció (1967-1975) – típus, strukturált programozás (fıleg ALGOL 60-ra épülı nyelvek), speciális célú nyelvek Simula 67 (objektum), ALGOL 68, Pascal Rendszerprogramozási célú, alacsonyszintőekhez közeli nyelvek: C, CDL2 Elmélet: szemantikadefiniálás, struktúrált programozás, helyességbizonyítás, prog-ramszintézis, szimbolikus végrehajtás "szoftver-krízis„: nem Neumann-elvő nyelvek: pl. PROLOG, A gazdaságinformatika alapjai 3. elıadás http://www.doksihu Programnyelvek története (körülbelüli dátumok) 4. generáció (1974-1990) – modularitás, specifikáció, absztrakt típus (értékhalmaz+mő-veletek) (fıleg Pascal és Simula 67 alapú nyelvek) Modula-2, Ada, (Alphard, CLU, Euclid, Mesa) 5.
generáció (1990- ) – párhuzamosság Többprocesszoros gépek, hálózatok programozása A gazdaságinformatika alapjai 3. elıadás