Programozási nyelvek.

Slides:



Advertisements
Hasonló előadás
Készítette: Kun Béla.  Operációs rendszernek nevezzük a számítástechnikában a számítógépeknek azt az alapprogramját, mely közvetlenül kezeli a hardvert,
Advertisements

Programozási feladatok
Definíciók: Algoritmus: bármely véges sok lépéssel leírható tevékenység. Olyan pontos előírás, amely megmondja, hogy egy adott típushoz tartozó feladat.
Összefoglalás Hardver,szoftver,perifériák Memóriák fajtái
Algoritmusok.
Hatékonyságvizsgálat, dokumentálás
3. A programozás eszközei, programozás-technikai alapismeretek
Budapesti Műszaki és Gazdaságtudományi Egyetem Elektronikus Eszközök Tanszéke A programozás alapjai 1. (VIEEA100) 9. előadás.
Programozás.
Az első program, avagy ismerkedés a nyelvvel
Programozás alapjai.
Programozási nyelvek.
Algoritmusok Az algoritmus fogalma:
Készítette: Pető László
Programozás módszertan
Algoritmizálás Göncziné Kapros Katalin humaninformatika.ektf.hu.
Programozás I. Horváth Ernő.
Java programozási nyelv 2. rész – Vezérlő szerkezetek
Fordítóprogramok FORD01 Programozó matematikus III. évf. Miskolci Egyetem 1 Fordítóprogramok 1 Programozó matematikus szak 2003/2004-es tanév II. félév.
CISC - RISC processzor jellemzők
C++ Alapok, első óra Elemi típusok Vezérlési szerkezetek
Szombathely Dinamikus WEB programozás: PHP és JSP.
ISZAM III.évf. részére Bunkóczi László
A programozás alapjai A számítógép számára a feladat meghatá- rozását programozásnak nevezzük. Ha a processzor utasításait használjuk a feladat meghatározásához,
Programozás. fordító (compiler): a program forrásszövegéből egy gépi kódú, futtatható programot (pl. EXE) állít elő, vagyis a programot lefordítja a gép.
Az algoritmusok áttekinthető formában történő leírására szolgáló eszközök Páll Boglárka.
Algoritmusok.
ALGORITMUS.
Algoritmusok.
ALGORITMUSOK.
Tömbök és programozási tételek
Programozási nyelvek, Pascal
Szintaktikai, szemantikai szabályok
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
Algoritmus szerkezetek
Nevezetes algoritmusok
Programozás. Programozási nyelvek: Gépi nyelv A számítástechnika őskorában egyedüli lehetőség volt a gép bitsorozattal való programozása. Minden processzor.
Algoritmusok.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Podoski Péter és Zabb László. Bevezető Algoritmus-vizualizáció témakörében végeztünk kutatásokat és fejlesztéseket Felmértük a manapság ismert eszközök.
Objektum orientált programozás
Az algoritmuskészítés alapjai
A Visual Basic nyelvi elemei
ProgramozásProgramozás célja hosszabb számítások elvégzése ill. kiíratása akkor érdemes programot írni, ha sok számolni való van illetve ha ugyanazt az.
Programozás, programtervezés
Török Katalin és Marosi Nóra 11/c. Pascal: Az es években megjelent magas szintű programozási nyelv, közel áll az emberi gondolkodáshoz. Nevét.
Algoritmusok. Az algoritmus meghatározott sorrendben elvégzendő műveletek előírása, mint azonos típusú (matematikai, logikai) feladatok megoldására alkalmas.
Software - Ismeretek Avagy mitől megy a Hardware.
Összeállította: Sashalmi Tibor
Algoritmizálás, adatmodellezés
Adatszerkezetek és algoritmusok 2008/ Algoritmus Az algoritmus szó eredete a középkori arab matematikáig nyúlik vissza, egy a i.sz. IX. században.
kialakulása, fejlődése, generációk
Programok készítése és futtatása. Integrált fejlesztői környezet (IDE) tartalmaz:  szövegszerkesztőt a program forráskódjának szerkesztésére,  fordítóprogramot.
Programozási nyelvek csoportosítása.
Programozás alapjai Készítette: Csiszár Nóra Anita
kialakulása, fejlődése, generációk
Adatstruktúrák Algoritmusok Objektumok
Programozási nyelvek Programozási alapismeretek
Programozási alapok.
Programozási alapismeretek
Compiler illetve interpreter nyelvek
Algoritmizálás.
Bevezetés a programozásba Algoritmikus gondolkodás
Programozási nyelvek alapfogalmai
Algoritmusok Az algoritmus fogalma:
Számítógépes algoritmusok
Programozási nyelvek Talata István.
Programozási nyelvek Talata István.
Informatikai gyakorlatok 11. évfolyam
1. Bevezetés A programozásba
Előadás másolata:

Programozási nyelvek

Programozás feladatok megfogalmazása számítógép számára végrehajtója a számítógép hardvere és operációs rendszere bináris alakban, 0 – 1 sorozat formában kerül végrehajtásra egy program programozási nyelv: a szabályrendszer, amelyben megírják a feladatot (programot) a számítógép számára

Alacsony szintű programnyelvek gépi kód bájtok sorozataként kerül megírásra a program, adatokat konkrét regiszterek között mozgatva tipikusan 10-es számrendszerben is be lehet vinni a bájtok értékeit példa gépi kódú programra: 180, 2, 178, 65, 205, 33, 205, 32 assembly a gépi kódú programstruktúra megőrződik, de angol szavak rövidítéseivel helyettsítik az utasításkódokat és karakterkombinációkkal a regiszterek számait példa assembly utasításra: mov ah, 2 assembler lefordítja gépi kódba használat előtt makroassembly: amikor már több gépi kódú utasítás sorozatának felel meg egy assembly utasítás (makro)

Magas szintű programnyelvek számítógépkonfigurációtól független a feladat leírása a szabályrendszerében Fajtái: általános célú programnyelvek cél: sokféle feladat programozására lehessen használni speciális célú programnyelvek speciális feladatokat lehet vele egyszerűen megoldani pl.: SQL – adatbáziskezelésre kifejlesztett A továbbiakban magas szintű, általános célú programnyelvekkel foglalkozunk

A programozás menete forrásprogram megírása (kötött szintaktika) ennek lefordítása (fordítóprogram – compiler segítségével) hibakezelés kapjuk: tárgyprogram felhasznált segédprogramok, rutinok hozzácsatolása (linkage editor) kapjuk: végrehajtható program futtatás eredmények

A forrásprogram elkészítésének folyamata algoritmus megfogalmazása Főbb építőelemek: szekvencia (egymás utániság) elágazás (feltételes utasítás) lehet logikai értékvizsgálattól függő kétirányú vagy változó értékétől függö többszörös elágazás ciklus (visszacsatolás) lehet elöltesztelő vagy hátultesztelő a programnyelv utasításaira való átfogalmazás utasítások leírására tipikusan elég ASCII szövegszerkesztő praktikusabb egy fejlesztői környezetben írni a programot (beépített segítség utasításkészlethez, szintaktikai kiemelés ill. ellenőrzés)

Algoritmus megfogalmazása Lehetséges megvalósítási módjai: szöveges megfogalmazás folyamatábra D-diagram (D=Dijkstra) több részdiagramból áll össze csak egy kimenő él van egy elemi szerkezetben áttekinthetőbb blokkdiagram (téglalapokra írva minden lépés, téglalapok egymáson belül is elhelyezkedhetnek) struktogram (esetleg vonalakkal felosztott téglalap-részek elágazásoknál, fentről lefelé vannak az egymás után következő lépések)

folyamatábra blokkdiagram beolvas: p beolvas: p q=1 q=1 Ismételd q=2q q=2q amíg q < p q<p Eredmény: q igaz hamis Eredmény: q

A programozási nyelvek fejlődése Mondatszerű algoritmusleírás pl.: COBOL, egy utasítására példa: ADD A TO B GIVING C Strukturált programozás pl.: Pascal, ebben eljárások és függvények blokkjainak a megadásából jön létre a program Hordozható assembly pl.: C, memóriacímek (mutatók) és memóriafoglalás rugalmas kezelése Objektumorientált programozás pl.: C++, SmallTalk, Java objektumok tulajdonságokkal / állapotokkal, objektum-hierarchia: objektumok osztályokhoz tartoznak, osztályok közöti hierarchiát öröklődés határozza meg Egyéb: logikai programozás (pl.: Prolog), funkcionális programozás (pl. Clean)

Alapnyelvek Pascal ALGOL (ALGOrithmic Language) 1960-as évektől, tudományos számításokra tervezték BASIC (Beginner’s All purpose Symbolic Instruction Code) 1964-től, kezdetben egyetemisták részére fejlesztették ki C 1970-es évek eleje, UNIX kifeljesztéséhez hozta Dennis Ritchie létre COBOL (COmmon Business Oriented Language) 1959, nyilvántartások kezeléséhez fejlesztették ki FORTRAN (FORmula TRANslator)) 1957, numerikus számításokhoz, manapság is elterjedt Pascal 1970, ALGOL alapján hozták létre

További nyelvek Ada 95: Pascalból, objektumorientált C++: C-ből, objektumorientált C#: C + + ötvözve MS Visual Basic elemekkel, objektumorientált Clean: 1987, funkcionális nyelv Delphi: 1995, Turbo Pascal 7.0-ból, objektumorientált Eiffel: 1980-as évek második fele, ALGOL-ból, szoftverfejlesztéshez termelési környezetekben Java: 1996, virtuális gépre van hozzá szükség, objektumorientált Digitális tévét vezérlö apró készülékek programozásához jött létre – ez a projekt elhalt, a WWW születése utén a Netscape és a Microsoft is beépítette böngészőjébe, népszerű lett. LISP: 1950-es évektől, az első funkcionális nyelv. Modula-2 (1970-es évek), Modula-3 (1980-as évek): Pascalból Perl: 1991, szövegfeldolgozásra PHP: hypertext preprocessor: Java, C, Perl nyelvekre épül

Szabványosítás Egy programnyelv szabályai különböző disztribucíók esetén kissé eltérhetnek egymástól pl.: a Borland Turbo Pascal több utasítást ismer, mint a Pascal A szabványoknak két fő típusa van: szabadalmaztatott szabványok (cégek esetén) konszenzusos szabványok (szabványok létrehozásával foglalkozó szervezetek, pl. ANSI, IEEE alakítják ki) Előnye a konszenzusos szabványnak, hogy segítségével könnyebben létrehozhatók jobban hordozható programok A legtöbb nyelvnek több verziója van (kiadási évhez kötődően, pl. ALGOL 68), előre be szokták jelenteni, hogy a következő verzióban jópár év múlva mi fog megszünni, hogy a programozók erre felkészülhessenek DIM P(100)

GOTO feltétel nélküli vezérlésátadás (ugrás) nem elegáns használni több nyelvben már nem is létezik ez az utasítás vagy csupán végtelen ciklusból való kiugrásra lehetséges a használata a probléma vele többrétű átláthatatlanná teheti a programstruktúrát , hibakeresést megnehezíti a fordítóprogram nem tudja miatta jól meghatározni a program erőforrás- vagy memóriaigényét kivételkezelés programnyelvi támogatása kiválthatja a szükségességét FORTRAN0 vezette be, COBOL támogatja Pascalban cimkére ugorhat blokkon belül, C-ben cimkére ugorhat fügvényen belül Modula-3-ban nincs GOTO (de van RETURN visszatérni elájrásokból, függvényekből), Java-ban nincs GOTO

BASIC ún. P-kód (pszeudo kód) készül a fordítás során ezt interpreter értelmezi minden futtatás során – ezért a futás relatíve lassú Visual BASIC 5.0-tól kezdve már gépi kódú fordítást is lehet készíteni A Visual BASIC objektumalapú nyelv, és csak részben objektumorientált nyelv (nincs benne osztályhierarchia) BASIC alapokra épít, egyszerű felépítésű nagyban függ a hardvertől és az operációs rendszertől (pl. MS Visual BASIC csak MS Windowsos platformon működik)

BASIC példaprogram 10 REM NEGYZETSZAMOK OSSZEGE 20 REM LEGFELJEBB 100-IG TERJEDO SZAMOK 30 DIM P(100), Q(100) 40 A=0 50 INPUT P 60 INPUT Q 70 FOR J=INT(P) TO INT(Q) 80 A=A+J^2 90 NEXT J 100 PRINT A 110 END

Pascal példaprogram program lnko; {legnagyobb közös osztó} var x, y: integer;            { a két szám tárolására} begin   readln(x, y);       { beolvas}   write('LNKO(', x, ',', y, ')=');  { bemenõ adatok}   while x <> y do begin     if x > y then x:= x - y     else y:= y - x;   end;   writeln(x);                { eredmény kiírása } end.

C példaprogram #include <stdio.h> #define ESZ 7 int main (void) { int i, j, s; int tomb[ESZ] = {23, 12, 100, 6, 55, 24, 2}; for (i=ESZ-2; i>=0; i--) { for (j=0; j<=i; j++) { if (tomb[j] > tomb[j+1]) { s = tomb[j]; tomb[j] = tomb[j+1]; tomb[j+1] = s; } printf("A rendezett tomb:\n\n"); for (i=0; i<ESZ; i++) printf("%d ", tomb[i]); return 0;