Dr. Kovács János Informatika Tanszék Bevezetés az Információtechnológiába MÉRNÖK- ÉS GAZDASÁGINFORMATIKA ALAPSZAK 2016 7. A SZOFTVER
A PROGRAM szerepe, típusai, fejlődése... 2 Bevezetés az információtechnológiába
Mi a szoftver? a programok összessége, de tkp. minden, ami nem hardver! qprogramok, qadatok, adatbázisok, qdokumentációk qa program: qvéges számú utasítássorozat qa számítógép működését vezérli qcél: egy kívánt feladat végrehajtása 3
Program Általánosan: egy feladat végrehajtásához szükséges utasítások sorozata. Algoritmus: tkp. a feladat (elemi) lépéseinek leírása q matematika algoritmuselmélet,..., q számítástechnika elméleti és gyakorlati megközelítés, q Ada Byron / Charles Babbage, q Alan Turing Turing-gép, q programozás. Számítógépprogram: egy feladat végrehajtásához szükséges, a számítógép által értelmezhető utasítássorozat valójában az algoritmus adott gépi reprezentációra alakítása. 4
Programozás qa számítógép csak központi egység CPU által ismert utasításokat tudja közvetlenül végrehajtani! qutasításkészlet: a processzorba beültetett utasítások halmaza. qgépi kód: gépi utasítás + operandusok. qbármely, ennél magasabb szint: programozási nyelv qalacsony szintű (1:1 típusú nyelv) Autokód, ASS, qmagasszintű (1:N típusú nyelv) pl. Fortran, Pascal, C. qmagasszintű nyelven írt program forráskód fordítás után válik a gép számára érthetővé. 5
A számítógép "működtetése" q Kezdetben volt a program A teljes folyamatot le kellett programozni. qhuzalozott dugaszoló táblák, qgépi nyelv direkt futtatás, qmagas(abb) szint: ass, fortran fordító programok qkésőbb a gép müködtetése és a feladat elválik: qgyakori feladatok pl. I/O kiemelése, vezérlő-, felügyelő programok (monitor) - qegyfelhasználós operációs rendszerek qmultiprogramozás megjelenése fejlett op. rsz-ek. qhálózati op. rsz-ek. 6
Programok szerepe/felosztása qrendszerprogramok qoperációs rendszerek, qrendszerközeli programok qfordítóprogramok, qfejlesztői környezetek, qsegédprogramok, qfelhasználói programok qáltalános célú, qspeciális 7
AZ OPERÁCIÓS RENDSZER - Mi az elefánt? - Egér, operációs rendszerrel. operációs rendszerek - programozási nyelvek 8
Az operációs rendszer qa számítógépet működtető programok összessége. qfeladata: számítógépet csinál a vasból qaz operációs rendszer fejlődésének meghatározói: q hardver fejlődés, q új sw technikák, q felhasználói igények. qszg-generációk hw/sw/vegyes az op.rsz. meghatározó jellemző qfunkciója: qfeladatok ütemezése, kezelése, qerőforrások menedzselése. 9
Az "első", jellemző operációs rendszerek qibm System 360/370 - JCL nyelv qtos - Tape Operating System qdos/360-1966 q OS/360 - q OS/370; MVS; OS/390; z/os qsiemens qbs1000 - batch qbs2000 time-sharing qdec - PDP-10 qtops-10-1968 q ITS - Incompatible Timesharing System - 1969 qvax - 1978: Digital VMS, BSD UNIX 10
Személyi számítógépek operációs rendszerei. qegyszerű monitor + BASIC interpreter, qc64 Basic (később csináltak op-rszt is pl. GEOS), qcp/m rendszer és követői, qdos op. rendszerek (PC-DOS/MS-DOS, Apple DOS), q A Windows először csak grafikus kieg., qnovell, qunix/linux, qmac OS, q... meg volt még sok más. 11
CP/M - CP/M-86 - MP/M qdigital Research qintel 8080 - CP/M, 8 bit - max. 64 Kb qintel 8086/8088 - MP/M, 16 bit qmp/m multi tasking qz80 12
PC DOS, MS DOS q QDOS Seattle Computer Products qms fejlesztette IBM megrendelésre qpc DOS - MS DOS qpc DOS 1.0-1981 - PC DOS 2000 Y2K vkomp. qms DOS 1.25 1982 az első nem IBM vas qms DOS 8.0 2000. szept. 13
Windows q1.0 1985 nov. - 1 év késés q2.0 1987 dec. ikon, ablak már lettek alkalmazások q3.0 1990; 3.1 1992, qnt 1993; 4.0 1996 DOS független q95 q98 már nem dos! q2000... qxp qvista, 7, 10 14
UNIX LINUX qunics Uniplexed Operating and Computing System q1969 Ken Thompson, (PDP 7-re, Ass-ben készült) q1973 C (Dennis Ritchie) qunix rendszerek: qaix IBM qa/ux, MAC OS, qhp-ux qsolaris SUN. qunix-szerű op. rszek: qxenix MS, qlinux. 15
MAC qgui - Graphical user interface - Standford Research Institute, de a MAC 1984 qlisa OS qsystem Software (System és Finder) 1984 qsystem 6-tól egyesített verzió q7.5 verziótól: MAC OS qmac OS 9.2.2-2001 qmac OS X (most:sierra 10.12) 16
PROGRAMOZÁSI NYELVEK 17
Programozási nyelv qegy számítógépprogram megírására alkalmas: qszintaktikai és qszemantikai szabályok, valamint qember által értelmezhető, a számítógép számára közvetlenül nem érthető utasítások halmaza. qa számítógép számára bármilyen programozási nyelven megírt program közvetlenül nem érthető! qcompiler (fordítóprogram) az egész forrásprogramot egyszerre fordítja tárgykód (object) qinterpreter (értelmező) utasításonként ad végrehajtható kódot. 18
Programozási nyelvek fejlődése, generációk q Többféle csoportosítás ezek átfedik egymást. qa nyelv szintje, qszámítási modell, qa nyelv funkciója, qgenerációk, qneumann-elvű nem Neumann-elvű... qa pr.-nyelvek fejlődését a leginkább a generációk GL jellemzik. (ebben is vannak némileg eltérő csoportosítások) q két lényeges eltérés: qa gépi kód és az ASS ugyanabba vagy külön generációba tartozik, qaz előbbivel összefüggésben, a procedurális, a strukturált és az OO nyelvek 1 vagy 2 generációt alkotnak. 19
Programozási nyelvek generációi q1gl: 1:1 típusú nyelvek qgépikód qassembly qautókód q2 GL: magasszintű procedurális qutasításorientált (Basic, Pascal) qkifejezésorientált (C) q3 GL: problémaorientált nyelvek qfunkcionális (LISP) qlogikai (Prolog) qadatbáziskezelő (SQL) qobjektumorientált (C++, Java) q 4 GL: fejlesztőrendszerek, programgenerátorok q5 GL: természetes nyelvek 20
1 GL qegyes nézetek szerint a gépi kód alapú programozás alkotja az 1. generációt. qez viszont nem igazán programnyelv! qa köv. fokozat az un. autokód. qaz első(valódi?) programnyelv az assembly nyelv(ek) qez ui. nem egyetlen nyelv! qannyiféle, ahány utasításkészlet létezik. qaz autokódot és az ass-kódot is le kell fordítani gépikódra. q1:1 típusú nyelvek 1 pr-utasítás egy gépi utasítást eredményez. 21
Alacsony szintű (gépközeli) programozási nyelvek q gépi kód 1:1 q utasításkód "érti" a gép (cpu) processzorfüggő q memória címzés q regiszter(ek) q közvetlen végrehajtás utasításkód A10C q Ass (assembly) 1:1 q emlékeztető kód (mnemonik) utasítás angol nevéből q memóriacím helyett azonosítók q egyszerű fordító assembler utasításkód ADD 1. mem. cím 013B 1. op. azon kutya 2. mem. cím 0023 2. op. azon macska 22
2 GL qide általában a kezdeti időszak magasszintű nyelveit soroljuk. qezek általában egy feladattípus hatékony programozására lettek kifejlesztve. qjellemzőjük: qaz eljárás orientátság procedurális, és qaz adatszerkezet fontossága. 23
2GL műszaki-tudományos qfortran IBM, 1957 FORmula TRANslation, az első magaszintű nyelv qfőleg műszaki és tudományos számítások, qalapszintű i/o-kezelés, qfortran 66, 77, II., IV., V., 90, 2000. qalgol 60 ~1955 ALGOrithmic Language qa FORTRAN vetélytársa, szintén műszaki és tudományos számítások, qszabad formátumú nyelv, qfőleg kutatás és oktatás, qalgol 68 24
2GL adatfeldolgozás qcobol 1963 COmmon Business Oriented Language qcodasyl (Conference on Data Systems Language) bizottság 1959 q1968 ANSI elfogadta, 1974 szabvány, qkötött szerkezetű, qfejlett adatállománykezelés, qmatematikai műveletek alapszintűek, qfejlődik strukturált, ill. OO ma is használják. 25
2GL a BASIC qbasic 1965 Beginner's All-purpose Symbolic Instruction Code qkemény János és Thomas Kurtz, q könnyen tanulható nyelv létrehozása volt a cél, qa FORTRAN egyszerűsített változata, qviszont emberibb, adatkezekés fejlettebb. qinterpreter tesztelésnél jó, de lassabb a futtatás lézenek compilerek is. qfejlődés: QUICK BASIC, GFA BASIC, MS-BASIC, VISUAL BASIC. 26
3 GL qegyes nézetek szerint egy halmaz a 2 GL-el. qtkp. a 2 GL fejlődése, megjelennek qa strukturált, majd qaz objektum orientált nyelvek, qspecializált nyelvek. 27
3GL univerzális nyelvek qpl/1 Programing Language I., IBM, 1964 qstrukturált szerkezet, qsok mindenre jó, qalapszinten könnyű, de qnagyon nagy utásításkészlet, és komplex attributum rendszer qalgol 68, qpascal, qada, qc 1972 magasszintű nyelv, de hw-közeli logika! 28
3GL OO programozási nyelvek qobjektum támogató nyelvek qobjective C qc++, 1986 qdelphi, qvisual Basic, qmodula, q... q(valós) OO nyelvek qjava, qphp, qsimula, q 29
4GL qebben a csoportban tkp. nem programozási nyelvek, inkább komplex fejlesztő eszközök vannak. qegyesítik a procedurális és a non-procedurális nyelvek előnyeit. qnagy hw elsősorban memória igény, qelőtérben nem az algoritmus, hanem a cél, qa kódgenerálást a nyelv végzi. qtípusaik: qlekérdező nyelvek, qprogramgenerátorok, qegyéb modellező nyelvek, formális specifikációs nyelvek,... 30
5 GL qez valójában a jövő. qpárhuzamos programozás, qvizuális nyelvek, qtermészetes nyelvek. 31
A sw készítése qa fejlesztés szakaszai: qelemzés, qtervezés, qkódolás, qtesztelés, qdokumentálás, -!!! q(terjesztés) qkarbantartás. qfejlesztési modellek qvízesés, q"v"-modell (top down bootom up) qprototípus qinkrementális 32
Szoftverkészítést támogató eszközök algoritmizálás A feladat megadása, lépések, összefüggések q szöveges megadás, q matematikai eszközök, q grafikus eszközök q folyamatábrák, q Jackson ábra, q Chapin ábra, q... q pszeudo kód q Pl. folyamatos +, amíg a 0 Start A=1 B=0 ismétlés (A <> 0) bekér A B=B+A ismétlés vége Kiír B Stop 33
Szoftverkészítést támogató eszközök - swtervezés, készítés, dokumentálás, tesztelés qfolyamatábrák, qmodellező eszközök, qcase eszközök, qszövegszerkesztők, qfordító/értelmező programok, qkönyvtárak, qdebugger(ek), qintegrált fejlesztői környezet, 34
Köszönöm a figyelmüket! Vége a 7. résznek. 35