Programozási nyelvek
Gépi kód A gépi kód 1-esek és 0-ák sorozata A processzor közvetlenül csak a gépi kódot érti Ezért minden magasabb szintű nyelven írt programot gépi kódú programmá kell alakítani
Gépi kódú program elkészítése Compiler - fordító Az egész programot egyben lefordítja gépi kódú programmá Ha szintaktikai hiba van valahol, hibaüzenetet ad Pl.: Pascal Interpreter – értelmező Soronként értelmezi a programot, és végrehajtja Nem biztos, hogy kiderül a szintaktikai hiba Pl.: Basic
Magasabb szintű programnyelvek Végrehajtható program Forrásprogram Tárgyprogram Compiler Linkage Editor A forrásprogram az adott nyelv szintaktikája (formai szabályai) szerint készül el. (Pl. Pascal forrásprogram)
A forrásprogramot a fordító (compiler) tárgyprogrammá kísérli meg átalakítani. Szintaktikai ellenőrzés Ha hiba van ki kell javítani. Nem végzi el a compiler a fordítást. Ha szintaktikailag hibátlan a program a compiler lefordítja a forrásprogramot. Keletkezik egy tárgyprogram. A tárgyprogram még önmagában nem futtatható. A Linkage Editor szerkeszti össze a tárgyprogramot az adott programnyelv és a rendszerszoftver egyéb, a futtatáshoz szükséges rutinjaival (egyéb alprogramjaival).
Ha a végrehajtható program fut, megkezdődhet a program tesztelése: Futtatás várható, normál körülmények között Igen nagy és igen kicsi állományokra való reagálás Szélsőséges értékek fogadása Nem megfelelő típusú, illetve értékű adatok bevitele (Pl.: szám helyett szöveg bevitele) A program szakszerűtlen futtatása Reagálás hardver hibákra
Assembly Eggyel magasabb szint, mint a gépi kód Igék, változók könnyítik meg a programozást Egy gépi kódú utasításnak egy assembly utasítás felel meg Jobb a program olvashatósága, ezáltal a hibakeresés, módosítás lényegesen egyszerűbb Kell hozzá egy assembler, ami lefordítja a forráskódot gépi kódra
Az assembler legfontosabb feladata, hogy műveleti kódokkal, illetve címekkel helyettesítse az assemblyben megfogalmazott utasításokat. A makroassemblerek megjelenésével lehetővé vált, hogy egy parancs kiadásával több elemi lépés is végrehjtódhasson. A makro egy tárolt assembly utasítássorozat. A rendszerszoftverek egy része assembly nyelven készül (készült), de egyre szűkül ez a kör. A UNIX C nyelven történt megfogalmazása óta egyre gyakrabban készülnek rendszerszoftverek magasabb szintű programnyelvek felhasználásával.
Általános célú klasszikus programnyelvek FORTRAN COBOL PL / 1 BASIC PASCAL
FORTRAN Egyszerű, alkalmas az algoritmizálási alapok elsajátítására Számos korábbi program, programkönyvtár FORTRAN-ban készült, így a felhasználó elérheti ezeket
Kiválóan alkalmas olyan feladatok programozására, melyeknél összetett, bonyolult az eljárás maga, de adatstruktúrája viszonylag egyszerű Az adatleírások csak az adatátviteli utasításoknak alárendelten jelennek meg. Összetettebb adatstruktúrák kezelésére gyakorlatilag alkalmatlan. Műszaki alkalmazások területén használják. Sok előre megírt függvénykönyvtárat tartalmaz
Cobol A FORTRAN-nal szemben az összetett, igényes adatstruktúra dominál a viszonylag egyszerűbb eljárással szemben. Az ügyviteli, gazdasági alkalmazások döntő többsége ilyen. Bonyolult az adatstruktúra, de nem szükséges összetett számítási igény. Nagyfokú stabilitás. Adatbázis-kezelő alkalmazások alap programozási nyelve volt.
PL / 1 Azzal a céllal hozták létre, hogy egyesítse a FORTRAN és a COBOL jó tulajdonságait. Ez sikerült is. Jó struktúrálhatóság. Összetett, nagyméretű nyelv.
BASIC Eredetileg oktatási célból fejlesztették ki. Eredetileg csak interpreterje volt a nyelvnek, és ez nem ritkán a ROM-ba került (pl.: Commodore). Nagy fejlődésen ment keresztül. A legmodernebb változata a Visual Basic. A Visual Basic programnyelv támogatja a grafikus felhasználói felületet, és a különböző fejlesztési segédleteket.
PASCAL Eredetileg ezt is oktatási célra fejlesztették ki. A nyelvnek compilere (fordítója) van Szigorúan típusos nyelv: a használni kívánt változókat és típusukat előre deklarálni kell. A változók értékadásakor csak azonos típusú adatok szerepelhetnek. Szigorúan kötött szerkezet Az Object Pascal nyelvet a Delphi használja
Speciális célú programnyelvek A speciális célú programnyelvek feladata valamilyen speciális feladatosztály programozása. Ezek általában valamilyen kibővített eljárásgyűjteményből emelkedtek ki önálló nyelvvé. Ezen számos nyelvek közül kettővel foglalkozunk: GPSS / ARENA PROLOG
GPSS / ARENA (General Purpose Simulation System) - Általános célú szimulációs rendszer A GPSS egyik legmodernebb változata az ARENA, mely a korszerű technika minden eszközével igyekszik a nyelv használatát minél vonzóbbá tenni, pl.: grafikus felületek, animáció A valós életet könnyen modellező programozási nyelv megteremtése volt a cél. A modellt vizuálisan is megfigyelhetjük.
Prolog (PROgramming LOGic) Az emberi gondolkodást próbálja meg gépi úton követni. A nyelv legerősebb tulajdonsága a az információ adott részei közötti logikai kapcsolatok kezelése Kiválóan alkalmazható a nyelv a matematikai logika, szakértői rendszerek, természetes nyelvek vizsgálatára, s egyéb szakterületeken.
PROLOG példa: Szabó János népszerűbb - than Johann Shneider Johann Sneider népszerűsége - as John Tailor PROLOG lekérdezés: is (Szabó János népszerűbb - than John Tailor) A válasz YES lesz. Ennél azért sokkal bonyolultabb logikai kapcsolatok is léteznek.
JAVA Egyszerű: a nyelv szintaxisa és szemantikája nagyban hasonlít a sokak által ismert C illetve C++ programozási nyelvhez Objektum orientált: a Jáva a C++ objektumorientált tulajdonságait tartalmazza Architektúra független: a lefordított program változtatás nélkül futtatható különböző hardver architektúrákon. A fordítóprogram a programot nem egy konkrét processzor gépi kódjára, hanem egy képzeletbeli hardver - virtuális gép (virtual machine) - utasításrendszerére fordítja le (Java Virtual Machine) Egy új architektúrán akkor futtathatók a Java programok, ha már implementálták rá a virtuális gépet.
Kísérletek folynak, hogy a Sun a Jáva virtuális gépet sziliciumon is megvalósítsa. Hamarosan kaphatók olyan mikroprocesszorok, amelyek a Jáva Byte kódot közvetlenül futtatják. Robosztusság: a robusztusság nyelvi szinten a szigorú, statikus típusosságban jelenik meg. Minden adatnak fordításkor jól definiált típusa van, nincsenek automatikus konverziók . Biztonság: a biztonság (security) a robusztussággal kezdődik, a fordító csak korrektül viselkedő programokat ad ki magából. Többszálú: a programok jelentős része párhuzamosan végrehajtható részletekre - vezérlési szálakra - bontható. Így jobban kihasználható a számítógép központi egysége.
DELPHI A Borland 1995-ben mutatta be a Delphi programfejlesztési rendszer első verzióját. A Delphi nem egy új nyelv, hanem a Pascal egy nagyon erőteljesen kibővített verziója. A Delphit a fejlesztők kifejezetten a gyors, hatékony és megbízható Windows alapú programozás elősegítésére tervezték, ezen belül is nagy súlyt helyeztek az adatbázis alkalmazások készítése. A nyelv az Objektum Orientált Programozás (OOP) alapjain nyugszik. Itt már nem egy kiegészítő eszköz az OOP - mint a Turbo Pascal 7.0-ban - hanem a nyelv szerves része!
A DLL - ek használatával elérhetjük, hogy ugyanazt a programkódot több alkalmazás is használhassa megosztva. A Delphi ezek létrehozására is lehetőséget nyújt. A vizuális tervezés és a kódgenerálás szervesen összekapcsolódott, a párbeszédpanelek (újabb kifejezéssel űrlapok) tervezése integrált része lett a rendszernek. Komponensek felhasználása a programozás során. A komponens egy osztály, amely valamely látható (pl. párbeszédpanel vezérlőelemek) vagy nem látható (pl. adatbázis elemek, nyomtató, rendszereszközök, kivételek, sőt maga az alkalmazás) erőforrás interface-ét valósítja meg.