Vita:Programozási nyelv/Archív01

message: Mi az akadálya, hogy a Javát besoroljuk a bájtkód alapú interpretált nyelvek közé? --thSoft 2006. július 14., 18:55 (CEST)
thread_title:  Java 

message: Ez a szöveg beledolgozható a cikkbe, de előtte ellenőrizendő, hogy nem lopott-e valahonnan....
* Az alábbi cikk a zeus.nyf.hu/~etelka/prognyelvfejl.doc tartalma, ahogy elnéztem egy az egyben --BeR 2004 február 11, 20:07 (CET)
=== Programozási nyelvek ===
A problémák megfogalmazása, leírása során különös figyelmet kellett fordítani arra, hogy a műveletek milyen sorrendben követik egymást, mivel az automatikus működésű számítógép (számolómű) sorban hajtotta végre az utasításokat, tehát mindig tudni kellett, mi a következő lépés.  Az első programot tulajdonképpen Lady Byron írta Charles Babbage differenciál-gépéhez, s ez a mai assembly-nyelv őse.) 1952-ben készült el Neumann János tervei alapján az EDVAC nevet viselő számítógép, amely az első [[Neumann János]Neumann]]-elvek alapján épített gép volt. Innen kezdődik a programozási nyelvek története.  Az EDVAC volt az első számítógép, amelyen „programot lehetett végrehajtani”, elsősorban matematikai problémák megoldására specializálva. A programozás kezdeti időszakára jellemző volt, hogy a programok általában csak azon a gépen futottak le, amely gépen elkészítették őket, azaz a programok „gép-függőek” voltak. A továbbiakban bővült a számítógép által megoldandó problémák köre, egyre több területen kezdtek el számítógépet használni, és az újabb alkalmazási területek újabb problémákat vetettek fel. Az igényekhez igazodva az évek folyamán a programozási munka könnyítése, gyorsítása érdekében a programozási technikák és eszközök (programozási nyelvek) is fejlődni kezdtek. 
Kezdetben a programozási nyelvek nagyon közel álltak a gépi problémamegoldás logikájához, a programozás tulajdonképpen nem volt más, mint a gépnek adott utasítások sorozatának leírása, amely a gép nyelvén történt. Az első programok megírása igen sok időt vett igénybe, nem beszélve arról, amikor a programot javítani, módosítani kellett. A ’60-as években egyre több számítógép került a nagyvállalatokhoz, ahol már nemcsak a számítások elvégzésére volt az igény, más nem csak számolást igénylő feladatot is meg szerettek volna oldani. A hosszú, nehéz munkával készített programok igen gyorsan elavultak, és máris lehetett hozzákezdeni a következő írásához. Tehát új, gyorsabb, egyszerűbb programfejlesztési módszerekre volt szükség. Ebben az időben jelentek meg az első magas szintű programozási nyelvek, amelyek az emberi gondolkodáshoz közelebb álló logika alapján próbálták a problémákat megközelíteni. A fejlesztések, kutatások eredményeképpen új programozási módszerek, technikák, filozófiák jelentek meg. Megjelentek az általános célú és a specializált programozási nyelvek, a ’70-es évek elején új módszerként jelentkezett a strukturált programozás.
A ’90-es évekre komoly teret nyertek a számítógépek az élet valamennyi területén. Komoly igény volt arra, hogy a szoftverpiac követni tudja az egyre szélesebb körű igényeket, tehát új eszközökre volt szükség, amelyek segítségével a programozók gyorsan tudnak hatékony és megbízható alkalmazásokat írni. A gyors programfejlesztés céljait egy az emberi gondolkodáshoz közel álló módszer teszi lehetővé, ugyanakkor a programnak nem szabad hatékonyságát elveszítenie, tehát minél elemibb egységekből kell felépíteni. Mindkét igényt kielégítette az objektum-orientált programozási technika, amely a valódi tárgyakhoz hasonlóan képes kezelni a rendszer absztrakt elemeit. Azaz a programozónak rendelkezésére állnak az előre definiált programelemek, amelyekből összeállíthatja a működőképes programot, természetesen az egyes elemek tulajdonságait a programozó tetszése szerint módosíthatja.
Az évek során igen sok programozási nyelv alakult ki, amelyeket szemléletük, fontosabb jellemzőik alapján négy generációba soroltak:
=== Első generációs programozási nyelv: ===
Az első programozási nyelv a gépi kód volt. Ennek a nyelvnek az utasításait a számítógép képes volt közvetlenül, minden átalakítás nélkül végrehajtani, értelmezni. A problémákat nagyon precízen kellett megfogalmazni, lépésekre bontani. Emellett a nyelv erősen gépfüggő volt, hiszen minden gépen más és más utasításokat használt, az adott problémát minden géptípus esetén másképpen kellett leírni, megfogalmazni, alkalmazkodva a számolóegység sajátosságaihoz Hátrányai mellett néhány előnyt is meg kell említenünk: A leggyorsabb programot eredményezi, mivel nem tartalmaz felesleges utasításokat. Az egyes utasítások egységes (egy vagy kétcímes) formában vannak leírva. Példa egy gép kódú utasításra: 0B0A 0C0E 0D00  (Az első négy helyen az utasítás, majd az első memóriacím, és ezt követi a második memóriacím.)
A gépi kódú lehetőségekhez képest komoly előrelépést jelentett az Assembly nyelvek megjelenése, amelyek tulajdonképpen segédeszközt jelentettek a gépi kódú utasítások egyszerűbb megfogalmazásában. Az egyes gépi kódú utasításokhoz egy-egy mneomnikus kódot rendeltek hozzá, a tárcímeket pedig a memória kezdetéhez viszonyított relatív címekkel számították. Szintén újdonságnak számított, hogy az egyes memóriacímeket egy-egy szimbolikus névvel lehetett helyettesíteni.  Egy összeadás Assembly nyelven:
  ADD X, Y
Az ADD szócska az összeadásra (addition) utal, az X és Y pedig memóriacímeket szimbolizálnak. Tehát az Assembly egy olyan alacsony szintű programozási nyelv, amelynél a művelet és a tárcím szimbolikusan megadható. Természetesen, ha egy Assembly programot szeretnénk futtatni, azt mindig meg kell előznie egy átalakítási, fordítási műveletnek, amikor az Assembly utasításokat gépi utasításokká alakítjuk át. A fordítóprogramok „compiler” típusúak voltak. Az Assembly legtöbb utasítása egyetlen gépi utasítást reprezentált, azaz az Assembly 1:1 tipusú nyelv. Volt néhány utasítás, amely több gépi kódú utasítást jelentett, ezeket makróknak nevezték.  Az Assembly nyelv a gépi kódú programozás után igen nagy előrelépést jelentett, általa sokkal kényelmesebbé vált a programfejlesztési munka. Napjainkra az alacsony szintű programozási nyelvek háttérbe szorultak. Az Assembly-t ma már csak olyan feladatok esetén használják, ahol hardver szintű vezérlést kell megvalósítani. 
=== Második generációs programozási nyelvek: ===
A számítógépek alkalmazási területének bővülése szükségessé tette a programok fejlesztési idejének csökkentését, azaz felmerült az igény, hogy a programokat minél gyorsabban írják meg a programozók. A gépi kód és az Assembly nehézkessége, géphez igazodása miatt nem volt erre alkalmas. A 60-as évek elején jelentek meg az első magas szintű programozási nyelvek. Az új nyelvek struktúrája már nem a számítógép sajátosságaihoz, hanem a problémához igazodott, a programozóknak itt már nem kellett a gépi végrehajtással foglalkoznia. A magas szintű programozási nyelvek 1:N típusú nyelvek, azaz egyetlen magas szintű programnyelvi utasítás több gépi kódú utasítást reprezentál. Természetesen a magas szintű nyelven írt programokat is le kell fordítani - az Assembly-hez hasonlóan - de komoly előny, hogy ezeknél a nyelveknél már sokkal kisebb a hibalehetőség, a forrásprogram sokkal áttekinthetőbb.
==== FORTRAN ====
Az első magas szintű programozási nyelv az IBM cég által kidolgozott FORTRAN volt. 1957-ben jelent meg, elsősorban a műszaki-tudományos számítások legősibb nyelve. Nevét a Formula Translation szavak összevonásából kapta. Elsősorban matematikai formulákat tartalmazó elágazások kezelésére volt alkalmas, a numerikus algoritmusok széles körét támogatta, viszont az I/O műveletek, és a karakteres adathalmazok kezelése szempontjából nem bizonyult hatékony nyelvnek. Az I/O műveleteket mindössze alapvető függvények által valósította meg, a nyelv elsődleges célja a matematikai problémák megoldása volt, ehhez a speciális területhez azonban nagyon hatékony eszköznek bizonyult. A nyelv szerkezetét vizsgálva azt tapasztaljuk, hogy a programok két részből állnak: főprogramból, amely a PROGRAM és END utasítások között helyezkedik el. egymásba nem ágyazható alprogramokból, szubrutinokból, amelyek a FUNCTION...END, illetve a SUBROUTIN...END utasítások között helyezkednek el.      A fordítóprogram az egyes szerkezeti elemeket külön fordítja, a különböző tárgyprogramokat kell összeszerkeszteni, hogy futtatható programot kapjunk. A FORTRAN képességeinek növelésén a fejlesztők igen sokat fáradoztak. A nyelvnek igen sok szabványosított változata jelent meg. 1966-ban a FORTRAN 66, 1977-ben a FORTRAN 77 ANSI, és ezek mellett készültek el a FORTRAN II., IV. és V. változatok. Az utolsó szabványosított változat a FORTRAN 90 volt, amelyet ma is használnak a tudományos számítások programozására. Bár napjaink igényei az univerzális nyelvek felé mutatnak, a FORTRAN mégis megmaradt a műszaki és tudományos számítások nyelvének. Jelenleg folyamatban van - vagy már elkészült - a legújabb verzió, a FORTRAN 2000.
==== ALGOL ====
A FORTRAN-hoz hasonlóan, úttörő nyelv volt a magas szintű nyelvek sorában. 1955-ben fejlesztették ki, a matematikai, műszaki számítások célnyelveként. Az első véglegesnek tekintett változatot 1960-ban fogadták el egy párizsi konferencián, neve ALGOL 60 volt. Később, több lépcsőben történő fejlesztés után megjelent a nyelv egy újabb változata, az ALGOL 68. Mindkét változat támogatta a moduláris programozást és a dinamikus tárolóelhelyezést (hasonló a mai mutatókhoz). Új lehetősége volt a rekurzív alprogramok írása.
Az ALGOL viszonylag kis utasításkészlettel rendelkezett, azonban szintaktikája nagyon hasonlított az eeri beszédre (Bacus-Naur Forma). A nyelv szimbólumrendszere azonos volt a matematikában alkalmazott szimbólumrendszerrel, ami az ilyen jellegű problémák programozását nagyon megkönnyítette. A programban lévő blokkok önálló egységeket képviseltek, az alprogramokat egymásba lehetett ágyazni. Az ALGOL szabad formátumú nyelv, az utasítások tetszőleges helyre írhatók. Minden utasítást „;”-vel kell lezárni. A főprogram kezdetét a PROCEDURE szó jelzi, a program végét az END. Mindkettő után meg kell adni a program nevét. A programban használt változókat deklarálni kell, a deklarációk a blokkok elején helyezkednek el. Az ALGOL nyelv elsősorban a kutatómunkában és az oktatás területén terjedt el. Első számú alkalmazási területe az informatikai kutatás volt. Jelentősége azonban vitathatatlan, mivel számos később kialakult programozási nyelv alapjaként szolgált. Pld: PASCAL.
==== COBOL ====
Az eddigiekben tárgyalt programozási nyelvek elsősorban a matematikai, műszaki számítások területét támogatták sikeresen. Szükség lett volna egy olyan nyelvre is, amely az adatfeldolgozást, az információs rendszerek kezelését segíti, támogatja. Az Amerikai Védelmi Minisztérium finanszírozásával 1959-ben létrejött a CODASYL (Conference on Data Systems Language) bizottság, és lefektette az alapokat egy új, a gazdasági, kereskedelmi életben jól használható adatfeldolgozás-orientált programozási nyelv kifejlesztéséhez. 1963-ban született meg a COBOL (Common Business Oriented Language), amely alkalmasnak látszott a gazdasági életben való alkalmazásra is. Az Amerikai Szabványügyi Hivatal (ANSI) 1968-ban elfogadta, majd újabb fejlesztések után 1974-ben szabványossá nyilvánította a nyelvet. A COBOL megjelenése után hamar népszerűvé vált, mert minden számítógéptípuson alkalmazható nyelv volt. Kiterjedt lehetőségeket biztosított az adatállományok létrehozására, karbantartására és lekérdezésére. A COBOL kötött szerkezetű programozási nyelv volt, 4 szerkezeti blokkból épült fel:
Identification Division:
Azonosító rész. Olyan információkat tartalmaz, mint a program és a programozó neve, készítési időpontja stb. 
Environment Division:
Környezethívó rész. A futási környezet meghatározását, az alkalmazandó perifériák hivatkozásait tartalmazza. 
Data Division:
Adatleíró rész. Az alkalmazandó állományok és adatstruktúrák leírását tartalmazza. 
Procedure Division:
Az eljáráshívó rész. A feldolgozandó adatokkal végzett műveletek, utasítások leírása. 
A COBOL nyelvet ma is használják az adatfeldolgozás területén. Az első változathoz képest a nyelv igen nagy változásokon ment keresztül, nagyon sokat fejlesztették az évek során. 1989-ben jelent meg a strukturált, néhány évvel később az objektumorientált változata. A COBOL nyelv előnyeként meg kell említeni a kiváló dokumentálási lehetőségeket, a komplex adathalmazok kezelésének jelentős könnyítését. Hátránya viszont, hogy a programok mérete igen nagy lesz, és az alapvető matematikai műveleteken túl nem támogatja a bonyolultabb számítási feladatokat.
==== BASIC ====
A BASIC nyelv kialakulása a programozási nyelvek fejlődésének bölcsőjéhez vezet vissza, amikor a magyar származású Kemény János és munkatársa, Thomas Kurtz elhatározták, hogy kidolgoznak egy olyan programozási nyelvet, amelynek segítségével a programozás könnyen oktatható és tanulható. A köztudatban a BASIC nyelv a kezdő programozók nyelveként vált ismertté. Az ötlet a 60-as évek elején született, amikor megjelentek az első Time-sharing (időbeosztásos) rendszerek, és a központi számítógépen tárolt adatokhoz egyre több felhasználó férhetett hozzá. A felhasználóknak szükségük volt egy olyan programozási nyelvre, amelynek segítségével megvalósíthatták a központi adatokhoz való interaktív hozzáférést. A FORTRAN és COBOL nyelvek batch üzemmódban készültek, ezért nem voltak alkalmasak az adatok dialogikus feldolgozására, igény volt egy általános célú, interaktív, eljárás-orientált programozási nyelv létrehozására. Az első ilyen interpreter típusú nyelv a BASIC volt, amely nagymértékben egyszerűsítette a programok írását és tesztelését. A BASIC (Beginners All-Purpose Symbolic Instruction Code) nyelv első működő változata 1963-ban jelent meg. A nyelv valójában a FORTRAN egyszerűsített változata volt, korlátozott utasításkészlettel és egyszerű szimbólumrendszerrel. Az első változatok utasításkészlete még nem tette lehetővé a struktúrált programozást, gyakran kellett alkalmazni az ugró utasításokat (GOTO). A BASIC-ben a programok végrehajtása utasításonként történt (INTERPRETER módban), ami gyakorlatilag nagyon megkönnyítette a programok tesztelését. Az első változattól kezdve a nyelv nagyon sok változtatáson ment keresztül, nagyon sok változata jelent meg, újabb és újabb lehetőségekkel bővítve a nyelvet. A fontosabb változatok a QUICK BASIC, GFA BASIC, MS-BASIC, és a Pascal elemet is tartalmazó VISUAL BASIC. A változatok közül egyedül a VISUAL BASIC-et tekintjük strukturált programozási nyelvnek, a programblokkok és eljárások, függvények kezelése miatt. 
=== Harmadik generációs programozási nyelvek: ===
A második generáció programozási nyelvei már lényegesen függetlenebbek voltak a gépi logikától, mint az első generációs nyelvek, az elkészített programokat többféle gépen is használni lehetett. Azonban a  nyelvek többsége egy-egy problémacsoport megoldására specializálódott, ami a programok fejlesztése, javítása során igen komoly akadályokat jelentett.
A 60-as évek derekán kíséreltek meg először olyan programozási nyelvet fejleszteni, amely rendelkezik az előző nyelvek jó tulajdonságaival, emellett többféle problémacsoport megoldására alkalmas, univerzális. Az új korszakot a procedurális programozási szemlélet és az adatok struktúrájának hangsúlyozása jellemezte.
A nyelveket három csoportra oszthatjuk: 
* általános célú, magas szintű nyelvek 
* objektum-orientált nyelvek 
* specializált nyelvek 
Az általános célú programozási nyelvek családjába tartozó nyelvek széleskörűen alkalmazhatók a gazdasági számításoktól a rendszerprogramozási fejlesztésekig, széles a lehetőségek skálája. Néhány ismertebb, szélesebb körben elterjedt  programozási nyelv: PL/1, APL, PASCAL, Modula-2, ADA, C.
==== PL/1 (Programming Language I.): ====
A PL/1 programozási nyelvet az IBM cég fejlesztette ki, az első változata 1964-ben jelent meg. Ez a nyelv még nem igazán sorolható a harmadik generációs programozási nyelvek közé. A PL/1 szabad formátumú nyelv, amely a FORTRAN, az ALGOL és a COBOL nyelvek előnyeit egyesíti magában. Egyaránt alkalmas az adat-feldolgozási és a számítási problémák megoldására, emellett a program szerkezete egyszerű és követhető, formai előírásai nem túl szigorúak. A programok blokk-szerkezetű felépítése már a strukturáltság koncepcióját vetíti előre. A program tartalmaz egy főprogram részt, amely külön blokkokban több alprogramot foglalhat magába, az alprogramok egymásba ágyazhatók. A fordító a deklarációkat utólag helyezi el a program elején.
A PL/1 előnyei: 
* könnyen tanulható, egyszerű nyelv 
* bonyolult feladatok megoldására is alkalmas 
* szabad formátumú programozást tesz lehetővé 
* blokkszerkezete jól illeszkedik a struktúrált programozási szemlélethez, az eljárások, függvények jól elválaszthatók egymástól 
Az első verziót újabb és újabb változatok követték, 1976-ban jelent meg az oktatáshoz is jól alkalmazható változata a PL/C. Bár a PL/1 univerzális programozási nyelv, mégis csak az IBM gépek alkalmazói körében terjedt el, aminek oka a megjelenés időpontjában keresendő. Ekkorra már a programozók többsége megismerte a FORTRAN és a COBOL használatát, és nem kívántak egy újabb nyelvre áttérni, főleg mivel ez a nyelv az előző kettő integrációjának tekinthető, igaz tartalmaz néhány újdonságot.
==== APL (A Programming Language): ====
Az APL egy a matematikai problémák megoldására orientálódott, többcélú (de nem általános) programozási nyelv volt. A nyelvet Kenneth Iverson, amerikai matematikus dolgozta ki, elsősorban műszaki, tudományos alkalmazások fejlesztése céljából. Az APL programok egyik sajátossága, hogy kezelik a görög betűket, beépített (implicit) lehetőségei közé tartoznak az egy- és többdimenziós tömbökkel végzett műveletek. A nyelv szimbólumrendszere és szerkezete szabad formátumú. Az APL programok írásához speciális billentyűzetre van szükség (a görög betűk és a speciális operátorok miatt). Az APL nyelv nem támogatja a struktúrált programozást, így nagyobb feladatok megoldását nehézkessé teszi, de a nagy számban rendelkezésre álló beépített operandussal kiválóan alkalmas prototípusok gyors készítésére. A 70-es, 80-as években műszaki, tudományos és gazdasági problémák megoldásra egyaránt hatékonyan használták. Az újabb változatok (APLG) támogatják a grafikus feldolgozást is, manapság a numerikus számítógépek működésének leírásához használják.
==== PASCAL ====
A PASCAL nyelv volt az első igazi és legteljesebb körű megvalósítása a struktúrált szemléletű programozás elveinek. Niklaus Wirth professzor, a zürichi Műszaki Főiskola oktatója dolgozta ki a nyelvet a 70-es években, és Blaise Pascal francia matematikus-filozófusról nevezte el. Wirth professzor az ALGOL programozási nyelv alapján definiálta a PASCAL szabályait, a cél egy az ALGOL-hoz hasonló, de általános célú programozási nyelv elkészítése volt. A PASCAL általános célú programozási nyelv, amelyet elsősorban az oktatásban, a műszaki-tudományos számítások területén és a komplex programrendszerek fejlesztése során alkalmaznak elterjedten. Szabad formátumú nyelv, mely viszonylag kevés utasítást tartalmaz. A programok szerkezete kötött, szigorú előírások vonatkoznak rá. A PASCAL programok blokkokból épülnek fel, a blokkok a begin foglalt szóval kezdődnek és az end foglalt szóval érnek véget. Minden utasítás végére „ ; „ -t kell tenni. A PASCAL nyelv támogatja a moduláris programozást, függvények és eljárások definiálhatók a function és a procedure foglalt szavak segítségével. A függvények, eljárások egymásba ágyazhatók, sőt a nyelv támogatja a rekurziót is. A PASCAL erősen típusos nyelv. A programban használni kívánt változókat a főprogram előtt elhelyezkedő deklarációs részben fel kell tüntetni. A PASCAL fordítók compiler típusú fordítók. A programok szabályos, szigorú, egyértelmű felépítése miatt a nyelv az oktatás kedvelt programozási nyelve. A PASCAL nagyon jó alapot biztosít más programozási nyelvek tanulásához, a struktúrált programozás alapelveinek megértéséhez.
==== MODULA-2 ====
Amint a nevéből is lehet következtetni, olyan programozási nyelvről van szó, amely igen magas szinten támogatja a moduláris programozás módszerét, azaz a feladatok részfeladatokra bonthatók és az egyes részeket külön lehet programozni, fejleszteni. Az egyes modulok az utasítások mellett tartalmazzák a modul során felhasznált adatokat, változókat, konstansokat is.      A modulok hierarchikus felépítésűek, tehát egymásba ágyazhatók. Célszerű élni ezzel a lehetőséggel, annak érdekében, hogy az egyes alprogramok egymással megfelelően tudjanak kommunikálni. A nyelv támogatja a rekurzív alprogramok mellett, a párhuzamos vezérlőszerkezetek készítését is. Ez utóbbi lehetőség a versenyhelyzetben álló folyamatok programozásánál lehet hasznos (multitasking). A nyelv egyik nagy előnye, hogy a moduláris felépítésű programok könnyen áttekinthetők, értelmezhetők egy esetleges módosításkor. Manapság is népszerű nyelv, majdnem minden operációs rendszerhez beszerezhető a fordítóprogramja.
==== ADA ====
A ’70-es évek közepén fejlesztették ki ezt a Pascal-hoz hasonló nyelvet, amely nagyon hatékonyan alkalmazható mind a rendszerszintű programok írása során, mind a komplex gazdasági számítások megoldásakor. A nyelv Augusta Ada Byron-ról kapta a nevét, akit Charles Babbage munkatársaként az első női programozóként említ az informatika története. Az ADA nyelv fejlesztésének célja egy hatékony, teljes gépfüggetlenséget biztosító programozási nyelv létrehozása volt. Éppen ezen törekvések miatt az ADA nyelv nagyon sok lehetőséget biztosít, a fontosabbak: multitasking, kommunikáció, megszakítás-kezelés. Az ADA programok moduláris felépítésűek, az egyes modulokat Package-nek nevezzük. Ezek az egységek gyakorlatilag egymástól függetlenül elkészíthetők és lefordíthatók. A modulok hivatkozhatnak egymásra a USE kulcsszó segítségével. A nyelv sajátossága, hogy az egymástól csak néhány ponton eltérő modulokat a GENERIC és NEW kulcsszavak segítségével egymásból származtathatjuk. Ez a tulajdonság már az objektum-orinentált nyelvek irányába mutat előre. A nyelv előnye, hogy támogatja a multitaskos működést, amely ma már alapvető követelménynek számít. A megírt program áttekinthető, könnyen módosítható, a moduláris felépítés miatt. A nyelv szerteágazó lehetőségei szinte minden területen használhatóvá teszik, ugyanakkor ebben a komplexitásban kereshető a nyelv hibája is. Az ADA egyik gyenge pontja, hogy bonyolult és sajátságos szemantikával rendelkezik, amely más nyelvek esetén nem jellemző, ezért tanulása elég nehéz feladat. 
==== C nyelv: ====
A rendszerprogramozás fejlődése során mérföldkőnek tekinthetjük az 1972-ben megjelent C nyelvet. Megalkotója Dennis Ritchie, aki eredetileg a UNIX rendszerek fejlesztőeszközének szánta. Később különleges hatékonyságát és sokoldalú felhasználási lehetőségét látva más operációs rendszerekhez kidolgozták a C nyelvű fordítóprogramokat.  A nyelv különlegessége, hogy egyesíti magában a hardverközeli programozás és a magasszintű nyelvek előnyeit, ilyen módon jól kihasználhatjuk a hardver adta lehetőségeket – javul a futási idő – mégis gyorsan tudunk új programokat írni, mivel logikájában a magas szintű nyelvek formáját követi a C is. A Pascal-hoz hasonlóan viszonylag kevés utasítást tartalmaz, a legtöbb műveletet előre definiált függvények segítségével oldja meg. A C nyelv támogatja az alprogramok készítését, de csak a függvény típusú modulokat ismeri. Az eljárásokat visszatérési érték nélküli függvényként definiálhatjuk. Lehetőség van rekurzív alprogramok készítésére is. A C nyelv nagyon erősen támaszkodik a mutatókra. Előnyös a C programok írása során kihasználni a mutatók adta lehetőségeket, mert programunk ezáltal gyorsabb, hatékonyabb lehet. Típuselőírásai sokkal engedékenyebbek, mint azt a Pascal nyelv esetén tapasztaltuk, bár az automatikus típusdeklarációt nem támogatja, a konverziók terén igen nagy szabadságot biztosít a programozónak. A C nyelv utasításai mindössze a struktúrált programok készítéséhez szükséges utasításokra korlátozódnak: 
* Összetartozó utasítások (utasításblokk {}) 
* Kétirányú elágazási szerkezet (if … else) 
* Esetszétválasztás (switch … case … ) 
* Ciklusszervező utasítások 
A C nyelvet 1989-ben fogadta el az Amerikai Szabványügyi Hivatal. Ekkor jelent meg az ANSI-C, az első szabványos C fordító. A későbbi változatok ennek lehetőségeire építkeztek. A C nyelvet ma is széles körben használják, első számú alkalmazási területe a rendszerprogramozás. A mai követelményeknek megfelelő C változatok a C++, az objektum-orientált lehetőségekkel bővített C nyelv, és a Concurent C, a párhuzamos folyamatok programozását segítő eszköz. 
 
==== Objektum-orientált programozási nyelvek: ====
Az utóbbi években kezdett széleskörűen elterjedni egy új szemléletű programozási technika, az objektum-orientált programozás, amely az elődeinél egyszerűbbé, hatékonyabbá, biztonságosabbá teszi a programkészítési munkát. Az objektum-orientált programozási nyelvek absztrakt adattípusokkal és a hozzájuk tartozó előre definiált algoritmusokkal segítik a programozó munkáját. Az objektum-orientált nyelvek az adatokat és az őket kezelő eljárásokat, függvényeket egységbe foglaltan ún. objektumként kezelik. Az objektum-orientált programozás lényege, hogy a programozás során felhasznált elemeket a nyelv előre definiálja, és különböző tulajdonságokkal ruházza fel. Amikor a programozó használni szeretné az egyik elemet, csak a tulajdonságait kell egyéni ízlése – illetve a feladatnak megfelelő elvárások szerint – Ez a programozási technika sokkal közelebb áll az emberi gondolkodáshoz, mint a procedurális programozás. Az objektum-orientált programozás elterjedésével sok új nyelv jött létre, amelyek tiszta objektum-orientált nyelvek, más technikát egyáltalán nem támogatnak. Sok nyelvet kibővítettek az objektum-orientált technika alkalmazásának lehetőségével, ezek az ún. vegyes nyelvek. 
Tiszta objektum-orientált nyelvek:
==== SmallTalk ====
A ’70-es évek elején fejlesztette ki Adele Coldberg és munkatársa Alan Kay azzal a céllal, hogy egy rugalmas, felhasználóbarát programozási környezetet biztosítson a fejlesztők számára. Manapság is széles körben használt programozási nyelv.
==== Eiffel ====
1988-ban dolgozta ki a nyelvet Bertold Meyer. Objektum-orientált, erősen típusos nyelv. A hordozhatóság érdekében a megírt programot C nyelvre is le lehet fordítani. A szakemberek szerint az egyik legjobb objektum-orientált programozási nyelv.
 
Vegyes nyelvek:
==== Turbo Pascal ====
A Turbo Pascal 5.5 verziójától kezdve támogatja az objektumok létrehozásának és kezelésének lehetőségét. A 6.0 verzióba már került egy előre definiált objektumrendszer – TVISION – is, amely a szöveges felületű programok készítése során használható fel hatékony segédeszközként.
==== Borland C++ ====
A C++ elnevezés a hagyományos C nyelv objektum-orientált lehetőségekkel bővített változatát jelenti. A Borland C++ 3.1 verzió már támogatja az objektum-orientált technika alkalmazását. Hasonló környezetet és objektumrendszert biztosít, mint a Turbo Pascal 6.0.
==== Specializált programozási nyelvek: ====
Ma már a számítógépet a tudományos és kutatómunka igen sok területén is felhasználják. Ezek a területek olyan speciális igényeket támasztanak a számítógépekkel szemben, amelyek megoldásához hasonlóan speciális eszközökre van szükség. A problémák támogatása érdekében fejlesztették ki a specializált programozási nyelveket, amelyek sokszor csak igen szűk problémacsoportok megoldására alkalmasak. Ez mégsem említhető hátrányként, hiszen éppen ezért alkották őket: egy-egy probléma megoldásához hatékony segítséget biztosítanak. Nézzünk meg néhány ilyen speciális területet:
==== Rendszer- és fordítóprogramok fejlesztése: ====
A programfordítók fejlesztéséhez olyan magasszintű programozási nyelvre van szükség, amely hatékonyan támogatja az alacsony szintű programozás és az operatív tár közvetlen kezelését egyaránt, lehetővé teszi a bitenkénti műveletek végzését, mégis rendelkezik a magasszintű nyelvek előnyeivel. Ilyen nyelvek: B, C, BCPL, Pascal.
==== Formulakezelő nyelvek: ====
Nagy pontosságot igénylő, bonyolult matematikai, műszaki számítások számítógép által történő elvégzéséhez biztosítanak segítséget ezek a nyelvek. Például: FORMAC, REDUCE, MACSYMA.
==== Szimbólum-feldolgozó nyelvek: ====
Nagy mennyiségű szöveges információk, hosszú listaadatok értékelésére, elemzésére kidolgozott célnyelvek. Felhasználási területük az információkutatás, a matematikai kutatások. Például: PROLOG, CONVERT, LISP, SNOBOL, COGENT.
==== Szimulációs nyelvek:====
Nagyon sok területen használatos nyelvek, kísérletek, folyamatok eredményeinek előrejelzését segítő eszközök. Például: SIMSCRIPT, SIMULA, GPSS.
==== Adatbázis-kezelő nyelvek: ====
Adatbázisokban tárolt adatok kezelését segítő programozási nyelvek. Segítségükkel lekérdezhetjük, módosíthatjuk, karbantarthatjuk az adatbázisban tárolt adatokat. A szabványosított és legjobban elterjedt ilyen nyelv az SQL, melyet ma szinte minden adatbank ismer.
==== Kiterjeszthető programnyelvek: ====
A harmadik generációs programozási nyelvek legfejlettebb változatai. A programozási feladat megoldásához a nyelv csak egy minimális bázist definiál előre. A hiányzó eszközöket azonban a programozó maga állíthatja elő a már létező elemek segítségével. Például: LOGO, FORTH.
=== Negyedik generációs programozási nyelvek: ===
A XX. század második felében a számítástechnika forradalmi változáson ment keresztül. A Neumann elvek megjelenése és az első memóriában tárolt gépi nyelvű program lefuttatása után alig ötven évvel már információs rendszerek, központilag vezérelt számítógép hálózatok programozása, döntéshozást támogató rendszerek fejlesztése a célunk. Nyilvánvaló, hogy ilyen jellegű munkák elvégzésére a hagyományos programozási nyelvek által biztosított eszközök nem megfelelőek. A hardver eszközök rohamos fejlődésére támaszkodva kezdett kialakulni a programozás során egy új szemlélet, mely az eddigi alapelvekkel szöges ellentétben állt.
Meg kell említenünk a nyelvek nyilvánvaló előnyei mellett néhány rossz tulajdonságot is. A program hatékonyságának növekedésével egyenes arányban nő a program hardverigénye – elsősorban memória – igénye is, a lefordított program méretéről nem is beszélve.
Nyelvek 
A következő nyelvel a legelterjedtebbek a világszerte használt több millió programozó körében: 
*Ada 
*COBOL 
*C 
*C++ 
*C# 
*ColdFusion 
*Java 
*JavaScript 
*FORTRAN 
*QBASIC 
*Visual Basic 
*Delphi 
*Perl 
*PHP 
*Postscript
*Python 
*Ruby 
*Scheme -Smalltalk 
*Tcl 
*COBRA
thread_title:  "programnyelvek"-ből elmentve 

message: A problémák megfogalmazása, leírása során különös figyelmet kellett fordítani arra, hogy a műveletek milyen sorrendben követik egymást, mivel az automatikus működésű számítógép (számolómű) sorban hajtotta végre az utasításokat, tehát mindig tudni kellett, mi a következő lépés.  Az első programot tulajdonképpen Lady Byron írta Charles Babbage differenciál-gépéhez, s ez a mai assembly-nyelv őse.) 1952-ben készült el Neumann János tervei alapján az EDVAC nevet viselő számítógép, amely az első [[Neumann János]Neumann]]-elvek alapján épített gép volt. Innen kezdődik a programozási nyelvek története.  Az EDVAC volt az első számítógép, amelyen „programot lehetett végrehajtani”, elsősorban matematikai problémák megoldására specializálva. A programozás kezdeti időszakára jellemző volt, hogy a programok általában csak azon a gépen futottak le, amely gépen elkészítették őket, azaz a programok „gép-függőek” voltak. A továbbiakban bővült a számítógép által megoldandó problémák köre, egyre több területen kezdtek el számítógépet használni, és az újabb alkalmazási területek újabb problémákat vetettek fel. Az igényekhez igazodva az évek folyamán a programozási munka könnyítése, gyorsítása érdekében a programozási technikák és eszközök (programozási nyelvek) is fejlődni kezdtek. 
Kezdetben a programozási nyelvek nagyon közel álltak a gépi problémamegoldás logikájához, a programozás tulajdonképpen nem volt más, mint a gépnek adott utasítások sorozatának leírása, amely a gép nyelvén történt. Az első programok megírása igen sok időt vett igénybe, nem beszélve arról, amikor a programot javítani, módosítani kellett. A ’60-as években egyre több számítógép került a nagyvállalatokhoz, ahol már nemcsak a számítások elvégzésére volt az igény, más nem csak számolást igénylő feladatot is meg szerettek volna oldani. A hosszú, nehéz munkával készített programok igen gyorsan elavultak, és máris lehetett hozzákezdeni a következő írásához. Tehát új, gyorsabb, egyszerűbb programfejlesztési módszerekre volt szükség. Ebben az időben jelentek meg az első magas szintű programozási nyelvek, amelyek az emberi gondolkodáshoz közelebb álló logika alapján próbálták a problémákat megközelíteni. A fejlesztések, kutatások eredményeképpen új programozási módszerek, technikák, filozófiák jelentek meg. Megjelentek az általános célú és a specializált programozási nyelvek, a ’70-es évek elején új módszerként jelentkezett a strukturált programozás.
A ’90-es évekre komoly teret nyertek a számítógépek az élet valamennyi területén. Komoly igény volt arra, hogy a szoftverpiac követni tudja az egyre szélesebb körű igényeket, tehát új eszközökre volt szükség, amelyek segítségével a programozók gyorsan tudnak hatékony és megbízható alkalmazásokat írni. A gyors programfejlesztés céljait egy az emberi gondolkodáshoz közel álló módszer teszi lehetővé, ugyanakkor a programnak nem szabad hatékonyságát elveszítenie, tehát minél elemibb egységekből kell felépíteni. Mindkét igényt kielégítette az objektum-orientált programozási technika, amely a valódi tárgyakhoz hasonlóan képes kezelni a rendszer absztrakt elemeit. Azaz a programozónak rendelkezésére állnak az előre definiált programelemek, amelyekből összeállíthatja a működőképes programot, természetesen az egyes elemek tulajdonságait a programozó tetszése szerint módosíthatja.
Az évek során igen sok programozási nyelv alakult ki, amelyeket szemléletük, fontosabb jellemzőik alapján négy generációba soroltak:
thread_title:  Programozási nyelvek 

message: Az első programozási nyelv a gépi kód volt. Ennek a nyelvnek az utasításait a számítógép képes volt közvetlenül, minden átalakítás nélkül végrehajtani, értelmezni. A problémákat nagyon precízen kellett megfogalmazni, lépésekre bontani. Emellett a nyelv erősen gépfüggő volt, hiszen minden gépen más és más utasításokat használt, az adott problémát minden géptípus esetén másképpen kellett leírni, megfogalmazni, alkalmazkodva a számolóegység sajátosságaihoz Hátrányai mellett néhány előnyt is meg kell említenünk: A leggyorsabb programot eredményezi, mivel nem tartalmaz felesleges utasításokat. Az egyes utasítások egységes (egy vagy kétcímes) formában vannak leírva. Példa egy gép kódú utasításra: 0B0A 0C0E 0D00  (Az első négy helyen az utasítás, majd az első memóriacím, és ezt követi a második memóriacím.)
A gépi kódú lehetőségekhez képest komoly előrelépést jelentett az Assembly nyelvek megjelenése, amelyek tulajdonképpen segédeszközt jelentettek a gépi kódú utasítások egyszerűbb megfogalmazásában. Az egyes gépi kódú utasításokhoz egy-egy mneomnikus kódot rendeltek hozzá, a tárcímeket pedig a memória kezdetéhez viszonyított relatív címekkel számították. Szintén újdonságnak számított, hogy az egyes memóriacímeket egy-egy szimbolikus névvel lehetett helyettesíteni.  Egy összeadás Assembly nyelven:
  ADD X, Y
Az ADD szócska az összeadásra (addition) utal, az X és Y pedig memóriacímeket szimbolizálnak. Tehát az Assembly egy olyan alacsony szintű programozási nyelv, amelynél a művelet és a tárcím szimbolikusan megadható. Természetesen, ha egy Assembly programot szeretnénk futtatni, azt mindig meg kell előznie egy átalakítási, fordítási műveletnek, amikor az Assembly utasításokat gépi utasításokká alakítjuk át. A fordítóprogramok „compiler” típusúak voltak. Az Assembly legtöbb utasítása egyetlen gépi utasítást reprezentált, azaz az Assembly 1:1 tipusú nyelv. Volt néhány utasítás, amely több gépi kódú utasítást jelentett, ezeket makróknak nevezték.  Az Assembly nyelv a gépi kódú programozás után igen nagy előrelépést jelentett, általa sokkal kényelmesebbé vált a programfejlesztési munka. Napjainkra az alacsony szintű programozási nyelvek háttérbe szorultak. Az Assembly-t ma már csak olyan feladatok esetén használják, ahol hardver szintű vezérlést kell megvalósítani.
thread_title:  Első generációs programozási nyelv: 

message: A számítógépek alkalmazási területének bővülése szükségessé tette a programok fejlesztési idejének csökkentését, azaz felmerült az igény, hogy a programokat minél gyorsabban írják meg a programozók. A gépi kód és az Assembly nehézkessége, géphez igazodása miatt nem volt erre alkalmas. A 60-as évek elején jelentek meg az első magas szintű programozási nyelvek. Az új nyelvek struktúrája már nem a számítógép sajátosságaihoz, hanem a problémához igazodott, a programozóknak itt már nem kellett a gépi végrehajtással foglalkoznia. A magas szintű programozási nyelvek 1:N típusú nyelvek, azaz egyetlen magas szintű programnyelvi utasítás több gépi kódú utasítást reprezentál. Természetesen a magas szintű nyelven írt programokat is le kell fordítani - az Assembly-hez hasonlóan - de komoly előny, hogy ezeknél a nyelveknél már sokkal kisebb a hibalehetőség, a forrásprogram sokkal áttekinthetőbb.
==== FORTRAN ====
Az első magas szintű programozási nyelv az IBM cég által kidolgozott FORTRAN volt. 1957-ben jelent meg, elsősorban a műszaki-tudományos számítások legősibb nyelve. Nevét a Formula Translation szavak összevonásából kapta. Elsősorban matematikai formulákat tartalmazó elágazások kezelésére volt alkalmas, a numerikus algoritmusok széles körét támogatta, viszont az I/O műveletek, és a karakteres adathalmazok kezelése szempontjából nem bizonyult hatékony nyelvnek. Az I/O műveleteket mindössze alapvető függvények által valósította meg, a nyelv elsődleges célja a matematikai problémák megoldása volt, ehhez a speciális területhez azonban nagyon hatékony eszköznek bizonyult. A nyelv szerkezetét vizsgálva azt tapasztaljuk, hogy a programok két részből állnak: főprogramból, amely a PROGRAM és END utasítások között helyezkedik el. egymásba nem ágyazható alprogramokból, szubrutinokból, amelyek a FUNCTION...END, illetve a SUBROUTIN...END utasítások között helyezkednek el.      A fordítóprogram az egyes szerkezeti elemeket külön fordítja, a különböző tárgyprogramokat kell összeszerkeszteni, hogy futtatható programot kapjunk. A FORTRAN képességeinek növelésén a fejlesztők igen sokat fáradoztak. A nyelvnek igen sok szabványosított változata jelent meg. 1966-ban a FORTRAN 66, 1977-ben a FORTRAN 77 ANSI, és ezek mellett készültek el a FORTRAN II., IV. és V. változatok. Az utolsó szabványosított változat a FORTRAN 90 volt, amelyet ma is használnak a tudományos számítások programozására. Bár napjaink igényei az univerzális nyelvek felé mutatnak, a FORTRAN mégis megmaradt a műszaki és tudományos számítások nyelvének. Jelenleg folyamatban van - vagy már elkészült - a legújabb verzió, a FORTRAN 2000.
==== ALGOL ====
A FORTRAN-hoz hasonlóan, úttörő nyelv volt a magas szintű nyelvek sorában. 1955-ben fejlesztették ki, a matematikai, műszaki számítások célnyelveként. Az első véglegesnek tekintett változatot 1960-ban fogadták el egy párizsi konferencián, neve ALGOL 60 volt. Később, több lépcsőben történő fejlesztés után megjelent a nyelv egy újabb változata, az ALGOL 68. Mindkét változat támogatta a moduláris programozást és a dinamikus tárolóelhelyezést (hasonló a mai mutatókhoz). Új lehetősége volt a rekurzív alprogramok írása.
Az ALGOL viszonylag kis utasításkészlettel rendelkezett, azonban szintaktikája nagyon hasonlított az eeri beszédre (Bacus-Naur Forma). A nyelv szimbólumrendszere azonos volt a matematikában alkalmazott szimbólumrendszerrel, ami az ilyen jellegű problémák programozását nagyon megkönnyítette. A programban lévő blokkok önálló egységeket képviseltek, az alprogramokat egymásba lehetett ágyazni. Az ALGOL szabad formátumú nyelv, az utasítások tetszőleges helyre írhatók. Minden utasítást „;”-vel kell lezárni. A főprogram kezdetét a PROCEDURE szó jelzi, a program végét az END. Mindkettő után meg kell adni a program nevét. A programban használt változókat deklarálni kell, a deklarációk a blokkok elején helyezkednek el. Az ALGOL nyelv elsősorban a kutatómunkában és az oktatás területén terjedt el. Első számú alkalmazási területe az informatikai kutatás volt. Jelentősége azonban vitathatatlan, mivel számos később kialakult programozási nyelv alapjaként szolgált. Pld: PASCAL.
==== COBOL ====
Az eddigiekben tárgyalt programozási nyelvek elsősorban a matematikai, műszaki számítások területét támogatták sikeresen. Szükség lett volna egy olyan nyelvre is, amely az adatfeldolgozást, az információs rendszerek kezelését segíti, támogatja. Az Amerikai Védelmi Minisztérium finanszírozásával 1959-ben létrejött a CODASYL (Conference on Data Systems Language) bizottság, és lefektette az alapokat egy új, a gazdasági, kereskedelmi életben jól használható adatfeldolgozás-orientált programozási nyelv kifejlesztéséhez. 1963-ban született meg a COBOL (Common Business Oriented Language), amely alkalmasnak látszott a gazdasági életben való alkalmazásra is. Az Amerikai Szabványügyi Hivatal (ANSI) 1968-ban elfogadta, majd újabb fejlesztések után 1974-ben szabványossá nyilvánította a nyelvet. A COBOL megjelenése után hamar népszerűvé vált, mert minden számítógéptípuson alkalmazható nyelv volt. Kiterjedt lehetőségeket biztosított az adatállományok létrehozására, karbantartására és lekérdezésére. A COBOL kötött szerkezetű programozási nyelv volt, 4 szerkezeti blokkból épült fel:
Identification Division:
Azonosító rész. Olyan információkat tartalmaz, mint a program és a programozó neve, készítési időpontja stb. 
Environment Division:
Környezethívó rész. A futási környezet meghatározását, az alkalmazandó perifériák hivatkozásait tartalmazza. 
Data Division:
Adatleíró rész. Az alkalmazandó állományok és adatstruktúrák leírását tartalmazza. 
Procedure Division:
Az eljáráshívó rész. A feldolgozandó adatokkal végzett műveletek, utasítások leírása. 
A COBOL nyelvet ma is használják az adatfeldolgozás területén. Az első változathoz képest a nyelv igen nagy változásokon ment keresztül, nagyon sokat fejlesztették az évek során. 1989-ben jelent meg a strukturált, néhány évvel később az objektumorientált változata. A COBOL nyelv előnyeként meg kell említeni a kiváló dokumentálási lehetőségeket, a komplex adathalmazok kezelésének jelentős könnyítését. Hátránya viszont, hogy a programok mérete igen nagy lesz, és az alapvető matematikai műveleteken túl nem támogatja a bonyolultabb számítási feladatokat.
==== BASIC ====
A BASIC nyelv kialakulása a programozási nyelvek fejlődésének bölcsőjéhez vezet vissza, amikor a magyar származású Kemény János és munkatársa, Thomas Kurtz elhatározták, hogy kidolgoznak egy olyan programozási nyelvet, amelynek segítségével a programozás könnyen oktatható és tanulható. A köztudatban a BASIC nyelv a kezdő programozók nyelveként vált ismertté. Az ötlet a 60-as évek elején született, amikor megjelentek az első Time-sharing (időbeosztásos) rendszerek, és a központi számítógépen tárolt adatokhoz egyre több felhasználó férhetett hozzá. A felhasználóknak szükségük volt egy olyan programozási nyelvre, amelynek segítségével megvalósíthatták a központi adatokhoz való interaktív hozzáférést. A FORTRAN és COBOL nyelvek batch üzemmódban készültek, ezért nem voltak alkalmasak az adatok dialogikus feldolgozására, igény volt egy általános célú, interaktív, eljárás-orientált programozási nyelv létrehozására. Az első ilyen interpreter típusú nyelv a BASIC volt, amely nagymértékben egyszerűsítette a programok írását és tesztelését. A BASIC (Beginners All-Purpose Symbolic Instruction Code) nyelv első működő változata 1963-ban jelent meg. A nyelv valójában a FORTRAN egyszerűsített változata volt, korlátozott utasításkészlettel és egyszerű szimbólumrendszerrel. Az első változatok utasításkészlete még nem tette lehetővé a struktúrált programozást, gyakran kellett alkalmazni az ugró utasításokat (GOTO). A BASIC-ben a programok végrehajtása utasításonként történt (INTERPRETER módban), ami gyakorlatilag nagyon megkönnyítette a programok tesztelését. Az első változattól kezdve a nyelv nagyon sok változtatáson ment keresztül, nagyon sok változata jelent meg, újabb és újabb lehetőségekkel bővítve a nyelvet. A fontosabb változatok a QUICK BASIC, GFA BASIC, MS-BASIC, és a Pascal elemet is tartalmazó VISUAL BASIC. A változatok közül egyedül a VISUAL BASIC-et tekintjük strukturált programozási nyelvnek, a programblokkok és eljárások, függvények kezelése miatt.
thread_title:  Második generációs programozási nyelvek: 

message: Az első magas szintű programozási nyelv az IBM cég által kidolgozott FORTRAN volt. 1957-ben jelent meg, elsősorban a műszaki-tudományos számítások legősibb nyelve. Nevét a Formula Translation szavak összevonásából kapta. Elsősorban matematikai formulákat tartalmazó elágazások kezelésére volt alkalmas, a numerikus algoritmusok széles körét támogatta, viszont az I/O műveletek, és a karakteres adathalmazok kezelése szempontjából nem bizonyult hatékony nyelvnek. Az I/O műveleteket mindössze alapvető függvények által valósította meg, a nyelv elsődleges célja a matematikai problémák megoldása volt, ehhez a speciális területhez azonban nagyon hatékony eszköznek bizonyult. A nyelv szerkezetét vizsgálva azt tapasztaljuk, hogy a programok két részből állnak: főprogramból, amely a PROGRAM és END utasítások között helyezkedik el. egymásba nem ágyazható alprogramokból, szubrutinokból, amelyek a FUNCTION...END, illetve a SUBROUTIN...END utasítások között helyezkednek el.      A fordítóprogram az egyes szerkezeti elemeket külön fordítja, a különböző tárgyprogramokat kell összeszerkeszteni, hogy futtatható programot kapjunk. A FORTRAN képességeinek növelésén a fejlesztők igen sokat fáradoztak. A nyelvnek igen sok szabványosított változata jelent meg. 1966-ban a FORTRAN 66, 1977-ben a FORTRAN 77 ANSI, és ezek mellett készültek el a FORTRAN II., IV. és V. változatok. Az utolsó szabványosított változat a FORTRAN 90 volt, amelyet ma is használnak a tudományos számítások programozására. Bár napjaink igényei az univerzális nyelvek felé mutatnak, a FORTRAN mégis megmaradt a műszaki és tudományos számítások nyelvének. Jelenleg folyamatban van - vagy már elkészült - a legújabb verzió, a FORTRAN 2000.
thread_title:  FORTRAN 

message: A FORTRAN-hoz hasonlóan, úttörő nyelv volt a magas szintű nyelvek sorában. 1955-ben fejlesztették ki, a matematikai, műszaki számítások célnyelveként. Az első véglegesnek tekintett változatot 1960-ban fogadták el egy párizsi konferencián, neve ALGOL 60 volt. Később, több lépcsőben történő fejlesztés után megjelent a nyelv egy újabb változata, az ALGOL 68. Mindkét változat támogatta a moduláris programozást és a dinamikus tárolóelhelyezést (hasonló a mai mutatókhoz). Új lehetősége volt a rekurzív alprogramok írása.
Az ALGOL viszonylag kis utasításkészlettel rendelkezett, azonban szintaktikája nagyon hasonlított az eeri beszédre (Bacus-Naur Forma). A nyelv szimbólumrendszere azonos volt a matematikában alkalmazott szimbólumrendszerrel, ami az ilyen jellegű problémák programozását nagyon megkönnyítette. A programban lévő blokkok önálló egységeket képviseltek, az alprogramokat egymásba lehetett ágyazni. Az ALGOL szabad formátumú nyelv, az utasítások tetszőleges helyre írhatók. Minden utasítást „;”-vel kell lezárni. A főprogram kezdetét a PROCEDURE szó jelzi, a program végét az END. Mindkettő után meg kell adni a program nevét. A programban használt változókat deklarálni kell, a deklarációk a blokkok elején helyezkednek el. Az ALGOL nyelv elsősorban a kutatómunkában és az oktatás területén terjedt el. Első számú alkalmazási területe az informatikai kutatás volt. Jelentősége azonban vitathatatlan, mivel számos később kialakult programozási nyelv alapjaként szolgált. Pld: PASCAL.
thread_title:  ALGOL 

message: Az eddigiekben tárgyalt programozási nyelvek elsősorban a matematikai, műszaki számítások területét támogatták sikeresen. Szükség lett volna egy olyan nyelvre is, amely az adatfeldolgozást, az információs rendszerek kezelését segíti, támogatja. Az Amerikai Védelmi Minisztérium finanszírozásával 1959-ben létrejött a CODASYL (Conference on Data Systems Language) bizottság, és lefektette az alapokat egy új, a gazdasági, kereskedelmi életben jól használható adatfeldolgozás-orientált programozási nyelv kifejlesztéséhez. 1963-ban született meg a COBOL (Common Business Oriented Language), amely alkalmasnak látszott a gazdasági életben való alkalmazásra is. Az Amerikai Szabványügyi Hivatal (ANSI) 1968-ban elfogadta, majd újabb fejlesztések után 1974-ben szabványossá nyilvánította a nyelvet. A COBOL megjelenése után hamar népszerűvé vált, mert minden számítógéptípuson alkalmazható nyelv volt. Kiterjedt lehetőségeket biztosított az adatállományok létrehozására, karbantartására és lekérdezésére. A COBOL kötött szerkezetű programozási nyelv volt, 4 szerkezeti blokkból épült fel:
Identification Division:
Azonosító rész. Olyan információkat tartalmaz, mint a program és a programozó neve, készítési időpontja stb. 
Environment Division:
Környezethívó rész. A futási környezet meghatározását, az alkalmazandó perifériák hivatkozásait tartalmazza. 
Data Division:
Adatleíró rész. Az alkalmazandó állományok és adatstruktúrák leírását tartalmazza. 
Procedure Division:
Az eljáráshívó rész. A feldolgozandó adatokkal végzett műveletek, utasítások leírása. 
A COBOL nyelvet ma is használják az adatfeldolgozás területén. Az első változathoz képest a nyelv igen nagy változásokon ment keresztül, nagyon sokat fejlesztették az évek során. 1989-ben jelent meg a strukturált, néhány évvel később az objektumorientált változata. A COBOL nyelv előnyeként meg kell említeni a kiváló dokumentálási lehetőségeket, a komplex adathalmazok kezelésének jelentős könnyítését. Hátránya viszont, hogy a programok mérete igen nagy lesz, és az alapvető matematikai műveleteken túl nem támogatja a bonyolultabb számítási feladatokat.
thread_title:  COBOL 

message: A BASIC nyelv kialakulása a programozási nyelvek fejlődésének bölcsőjéhez vezet vissza, amikor a magyar származású Kemény János és munkatársa, Thomas Kurtz elhatározták, hogy kidolgoznak egy olyan programozási nyelvet, amelynek segítségével a programozás könnyen oktatható és tanulható. A köztudatban a BASIC nyelv a kezdő programozók nyelveként vált ismertté. Az ötlet a 60-as évek elején született, amikor megjelentek az első Time-sharing (időbeosztásos) rendszerek, és a központi számítógépen tárolt adatokhoz egyre több felhasználó férhetett hozzá. A felhasználóknak szükségük volt egy olyan programozási nyelvre, amelynek segítségével megvalósíthatták a központi adatokhoz való interaktív hozzáférést. A FORTRAN és COBOL nyelvek batch üzemmódban készültek, ezért nem voltak alkalmasak az adatok dialogikus feldolgozására, igény volt egy általános célú, interaktív, eljárás-orientált programozási nyelv létrehozására. Az első ilyen interpreter típusú nyelv a BASIC volt, amely nagymértékben egyszerűsítette a programok írását és tesztelését. A BASIC (Beginners All-Purpose Symbolic Instruction Code) nyelv első működő változata 1963-ban jelent meg. A nyelv valójában a FORTRAN egyszerűsített változata volt, korlátozott utasításkészlettel és egyszerű szimbólumrendszerrel. Az első változatok utasításkészlete még nem tette lehetővé a struktúrált programozást, gyakran kellett alkalmazni az ugró utasításokat (GOTO). A BASIC-ben a programok végrehajtása utasításonként történt (INTERPRETER módban), ami gyakorlatilag nagyon megkönnyítette a programok tesztelését. Az első változattól kezdve a nyelv nagyon sok változtatáson ment keresztül, nagyon sok változata jelent meg, újabb és újabb lehetőségekkel bővítve a nyelvet. A fontosabb változatok a QUICK BASIC, GFA BASIC, MS-BASIC, és a Pascal elemet is tartalmazó VISUAL BASIC. A változatok közül egyedül a VISUAL BASIC-et tekintjük strukturált programozási nyelvnek, a programblokkok és eljárások, függvények kezelése miatt.
thread_title:  BASIC 

message: A második generáció programozási nyelvei már lényegesen függetlenebbek voltak a gépi logikától, mint az első generációs nyelvek, az elkészített programokat többféle gépen is használni lehetett. Azonban a  nyelvek többsége egy-egy problémacsoport megoldására specializálódott, ami a programok fejlesztése, javítása során igen komoly akadályokat jelentett.
A 60-as évek derekán kíséreltek meg először olyan programozási nyelvet fejleszteni, amely rendelkezik az előző nyelvek jó tulajdonságaival, emellett többféle problémacsoport megoldására alkalmas, univerzális. Az új korszakot a procedurális programozási szemlélet és az adatok struktúrájának hangsúlyozása jellemezte.
A nyelveket három csoportra oszthatjuk: 
* általános célú, magas szintű nyelvek 
* objektum-orientált nyelvek 
* specializált nyelvek 
Az általános célú programozási nyelvek családjába tartozó nyelvek széleskörűen alkalmazhatók a gazdasági számításoktól a rendszerprogramozási fejlesztésekig, széles a lehetőségek skálája. Néhány ismertebb, szélesebb körben elterjedt  programozási nyelv: PL/1, APL, PASCAL, Modula-2, ADA, C.
==== PL/1 (Programming Language I.): ====
A PL/1 programozási nyelvet az IBM cég fejlesztette ki, az első változata 1964-ben jelent meg. Ez a nyelv még nem igazán sorolható a harmadik generációs programozási nyelvek közé. A PL/1 szabad formátumú nyelv, amely a FORTRAN, az ALGOL és a COBOL nyelvek előnyeit egyesíti magában. Egyaránt alkalmas az adat-feldolgozási és a számítási problémák megoldására, emellett a program szerkezete egyszerű és követhető, formai előírásai nem túl szigorúak. A programok blokk-szerkezetű felépítése már a strukturáltság koncepcióját vetíti előre. A program tartalmaz egy főprogram részt, amely külön blokkokban több alprogramot foglalhat magába, az alprogramok egymásba ágyazhatók. A fordító a deklarációkat utólag helyezi el a program elején.
A PL/1 előnyei: 
* könnyen tanulható, egyszerű nyelv 
* bonyolult feladatok megoldására is alkalmas 
* szabad formátumú programozást tesz lehetővé 
* blokkszerkezete jól illeszkedik a struktúrált programozási szemlélethez, az eljárások, függvények jól elválaszthatók egymástól 
Az első verziót újabb és újabb változatok követték, 1976-ban jelent meg az oktatáshoz is jól alkalmazható változata a PL/C. Bár a PL/1 univerzális programozási nyelv, mégis csak az IBM gépek alkalmazói körében terjedt el, aminek oka a megjelenés időpontjában keresendő. Ekkorra már a programozók többsége megismerte a FORTRAN és a COBOL használatát, és nem kívántak egy újabb nyelvre áttérni, főleg mivel ez a nyelv az előző kettő integrációjának tekinthető, igaz tartalmaz néhány újdonságot.
==== APL (A Programming Language): ====
Az APL egy a matematikai problémák megoldására orientálódott, többcélú (de nem általános) programozási nyelv volt. A nyelvet Kenneth Iverson, amerikai matematikus dolgozta ki, elsősorban műszaki, tudományos alkalmazások fejlesztése céljából. Az APL programok egyik sajátossága, hogy kezelik a görög betűket, beépített (implicit) lehetőségei közé tartoznak az egy- és többdimenziós tömbökkel végzett műveletek. A nyelv szimbólumrendszere és szerkezete szabad formátumú. Az APL programok írásához speciális billentyűzetre van szükség (a görög betűk és a speciális operátorok miatt). Az APL nyelv nem támogatja a struktúrált programozást, így nagyobb feladatok megoldását nehézkessé teszi, de a nagy számban rendelkezésre álló beépített operandussal kiválóan alkalmas prototípusok gyors készítésére. A 70-es, 80-as években műszaki, tudományos és gazdasági problémák megoldásra egyaránt hatékonyan használták. Az újabb változatok (APLG) támogatják a grafikus feldolgozást is, manapság a numerikus számítógépek működésének leírásához használják.
==== PASCAL ====
A PASCAL nyelv volt az első igazi és legteljesebb körű megvalósítása a struktúrált szemléletű programozás elveinek. Niklaus Wirth professzor, a zürichi Műszaki Főiskola oktatója dolgozta ki a nyelvet a 70-es években, és Blaise Pascal francia matematikus-filozófusról nevezte el. Wirth professzor az ALGOL programozási nyelv alapján definiálta a PASCAL szabályait, a cél egy az ALGOL-hoz hasonló, de általános célú programozási nyelv elkészítése volt. A PASCAL általános célú programozási nyelv, amelyet elsősorban az oktatásban, a műszaki-tudományos számítások területén és a komplex programrendszerek fejlesztése során alkalmaznak elterjedten. Szabad formátumú nyelv, mely viszonylag kevés utasítást tartalmaz. A programok szerkezete kötött, szigorú előírások vonatkoznak rá. A PASCAL programok blokkokból épülnek fel, a blokkok a begin foglalt szóval kezdődnek és az end foglalt szóval érnek véget. Minden utasítás végére „ ; „ -t kell tenni. A PASCAL nyelv támogatja a moduláris programozást, függvények és eljárások definiálhatók a function és a procedure foglalt szavak segítségével. A függvények, eljárások egymásba ágyazhatók, sőt a nyelv támogatja a rekurziót is. A PASCAL erősen típusos nyelv. A programban használni kívánt változókat a főprogram előtt elhelyezkedő deklarációs részben fel kell tüntetni. A PASCAL fordítók compiler típusú fordítók. A programok szabályos, szigorú, egyértelmű felépítése miatt a nyelv az oktatás kedvelt programozási nyelve. A PASCAL nagyon jó alapot biztosít más programozási nyelvek tanulásához, a struktúrált programozás alapelveinek megértéséhez.
==== MODULA-2 ====
Amint a nevéből is lehet következtetni, olyan programozási nyelvről van szó, amely igen magas szinten támogatja a moduláris programozás módszerét, azaz a feladatok részfeladatokra bonthatók és az egyes részeket külön lehet programozni, fejleszteni. Az egyes modulok az utasítások mellett tartalmazzák a modul során felhasznált adatokat, változókat, konstansokat is.      A modulok hierarchikus felépítésűek, tehát egymásba ágyazhatók. Célszerű élni ezzel a lehetőséggel, annak érdekében, hogy az egyes alprogramok egymással megfelelően tudjanak kommunikálni. A nyelv támogatja a rekurzív alprogramok mellett, a párhuzamos vezérlőszerkezetek készítését is. Ez utóbbi lehetőség a versenyhelyzetben álló folyamatok programozásánál lehet hasznos (multitasking). A nyelv egyik nagy előnye, hogy a moduláris felépítésű programok könnyen áttekinthetők, értelmezhetők egy esetleges módosításkor. Manapság is népszerű nyelv, majdnem minden operációs rendszerhez beszerezhető a fordítóprogramja.
==== ADA ====
A ’70-es évek közepén fejlesztették ki ezt a Pascal-hoz hasonló nyelvet, amely nagyon hatékonyan alkalmazható mind a rendszerszintű programok írása során, mind a komplex gazdasági számítások megoldásakor. A nyelv Augusta Ada Byron-ról kapta a nevét, akit Charles Babbage munkatársaként az első női programozóként említ az informatika története. Az ADA nyelv fejlesztésének célja egy hatékony, teljes gépfüggetlenséget biztosító programozási nyelv létrehozása volt. Éppen ezen törekvések miatt az ADA nyelv nagyon sok lehetőséget biztosít, a fontosabbak: multitasking, kommunikáció, megszakítás-kezelés. Az ADA programok moduláris felépítésűek, az egyes modulokat Package-nek nevezzük. Ezek az egységek gyakorlatilag egymástól függetlenül elkészíthetők és lefordíthatók. A modulok hivatkozhatnak egymásra a USE kulcsszó segítségével. A nyelv sajátossága, hogy az egymástól csak néhány ponton eltérő modulokat a GENERIC és NEW kulcsszavak segítségével egymásból származtathatjuk. Ez a tulajdonság már az objektum-orinentált nyelvek irányába mutat előre. A nyelv előnye, hogy támogatja a multitaskos működést, amely ma már alapvető követelménynek számít. A megírt program áttekinthető, könnyen módosítható, a moduláris felépítés miatt. A nyelv szerteágazó lehetőségei szinte minden területen használhatóvá teszik, ugyanakkor ebben a komplexitásban kereshető a nyelv hibája is. Az ADA egyik gyenge pontja, hogy bonyolult és sajátságos szemantikával rendelkezik, amely más nyelvek esetén nem jellemző, ezért tanulása elég nehéz feladat. 
==== C nyelv: ====
A rendszerprogramozás fejlődése során mérföldkőnek tekinthetjük az 1972-ben megjelent C nyelvet. Megalkotója Dennis Ritchie, aki eredetileg a UNIX rendszerek fejlesztőeszközének szánta. Később különleges hatékonyságát és sokoldalú felhasználási lehetőségét látva más operációs rendszerekhez kidolgozták a C nyelvű fordítóprogramokat.  A nyelv különlegessége, hogy egyesíti magában a hardverközeli programozás és a magasszintű nyelvek előnyeit, ilyen módon jól kihasználhatjuk a hardver adta lehetőségeket – javul a futási idő – mégis gyorsan tudunk új programokat írni, mivel logikájában a magas szintű nyelvek formáját követi a C is. A Pascal-hoz hasonlóan viszonylag kevés utasítást tartalmaz, a legtöbb műveletet előre definiált függvények segítségével oldja meg. A C nyelv támogatja az alprogramok készítését, de csak a függvény típusú modulokat ismeri. Az eljárásokat visszatérési érték nélküli függvényként definiálhatjuk. Lehetőség van rekurzív alprogramok készítésére is. A C nyelv nagyon erősen támaszkodik a mutatókra. Előnyös a C programok írása során kihasználni a mutatók adta lehetőségeket, mert programunk ezáltal gyorsabb, hatékonyabb lehet. Típuselőírásai sokkal engedékenyebbek, mint azt a Pascal nyelv esetén tapasztaltuk, bár az automatikus típusdeklarációt nem támogatja, a konverziók terén igen nagy szabadságot biztosít a programozónak. A C nyelv utasításai mindössze a struktúrált programok készítéséhez szükséges utasításokra korlátozódnak: 
* Összetartozó utasítások (utasításblokk {}) 
* Kétirányú elágazási szerkezet (if … else) 
* Esetszétválasztás (switch … case … ) 
* Ciklusszervező utasítások 
A C nyelvet 1989-ben fogadta el az Amerikai Szabványügyi Hivatal. Ekkor jelent meg az ANSI-C, az első szabványos C fordító. A későbbi változatok ennek lehetőségeire építkeztek. A C nyelvet ma is széles körben használják, első számú alkalmazási területe a rendszerprogramozás. A mai követelményeknek megfelelő C változatok a C++, az objektum-orientált lehetőségekkel bővített C nyelv, és a Concurent C, a párhuzamos folyamatok programozását segítő eszköz. 
 
==== Objektum-orientált programozási nyelvek: ====
Az utóbbi években kezdett széleskörűen elterjedni egy új szemléletű programozási technika, az objektum-orientált programozás, amely az elődeinél egyszerűbbé, hatékonyabbá, biztonságosabbá teszi a programkészítési munkát. Az objektum-orientált programozási nyelvek absztrakt adattípusokkal és a hozzájuk tartozó előre definiált algoritmusokkal segítik a programozó munkáját. Az objektum-orientált nyelvek az adatokat és az őket kezelő eljárásokat, függvényeket egységbe foglaltan ún. objektumként kezelik. Az objektum-orientált programozás lényege, hogy a programozás során felhasznált elemeket a nyelv előre definiálja, és különböző tulajdonságokkal ruházza fel. Amikor a programozó használni szeretné az egyik elemet, csak a tulajdonságait kell egyéni ízlése – illetve a feladatnak megfelelő elvárások szerint – Ez a programozási technika sokkal közelebb áll az emberi gondolkodáshoz, mint a procedurális programozás. Az objektum-orientált programozás elterjedésével sok új nyelv jött létre, amelyek tiszta objektum-orientált nyelvek, más technikát egyáltalán nem támogatnak. Sok nyelvet kibővítettek az objektum-orientált technika alkalmazásának lehetőségével, ezek az ún. vegyes nyelvek. 
Tiszta objektum-orientált nyelvek:
==== SmallTalk ====
A ’70-es évek elején fejlesztette ki Adele Coldberg és munkatársa Alan Kay azzal a céllal, hogy egy rugalmas, felhasználóbarát programozási környezetet biztosítson a fejlesztők számára. Manapság is széles körben használt programozási nyelv.
==== Eiffel ====
1988-ban dolgozta ki a nyelvet Bertold Meyer. Objektum-orientált, erősen típusos nyelv. A hordozhatóság érdekében a megírt programot C nyelvre is le lehet fordítani. A szakemberek szerint az egyik legjobb objektum-orientált programozási nyelv.
 
Vegyes nyelvek:
==== Turbo Pascal ====
A Turbo Pascal 5.5 verziójától kezdve támogatja az objektumok létrehozásának és kezelésének lehetőségét. A 6.0 verzióba már került egy előre definiált objektumrendszer – TVISION – is, amely a szöveges felületű programok készítése során használható fel hatékony segédeszközként.
==== Borland C++ ====
A C++ elnevezés a hagyományos C nyelv objektum-orientált lehetőségekkel bővített változatát jelenti. A Borland C++ 3.1 verzió már támogatja az objektum-orientált technika alkalmazását. Hasonló környezetet és objektumrendszert biztosít, mint a Turbo Pascal 6.0.
==== Specializált programozási nyelvek: ====
Ma már a számítógépet a tudományos és kutatómunka igen sok területén is felhasználják. Ezek a területek olyan speciális igényeket támasztanak a számítógépekkel szemben, amelyek megoldásához hasonlóan speciális eszközökre van szükség. A problémák támogatása érdekében fejlesztették ki a specializált programozási nyelveket, amelyek sokszor csak igen szűk problémacsoportok megoldására alkalmasak. Ez mégsem említhető hátrányként, hiszen éppen ezért alkották őket: egy-egy probléma megoldásához hatékony segítséget biztosítanak. Nézzünk meg néhány ilyen speciális területet:
==== Rendszer- és fordítóprogramok fejlesztése: ====
A programfordítók fejlesztéséhez olyan magasszintű programozási nyelvre van szükség, amely hatékonyan támogatja az alacsony szintű programozás és az operatív tár közvetlen kezelését egyaránt, lehetővé teszi a bitenkénti műveletek végzését, mégis rendelkezik a magasszintű nyelvek előnyeivel. Ilyen nyelvek: B, C, BCPL, Pascal.
==== Formulakezelő nyelvek: ====
Nagy pontosságot igénylő, bonyolult matematikai, műszaki számítások számítógép által történő elvégzéséhez biztosítanak segítséget ezek a nyelvek. Például: FORMAC, REDUCE, MACSYMA.
==== Szimbólum-feldolgozó nyelvek: ====
Nagy mennyiségű szöveges információk, hosszú listaadatok értékelésére, elemzésére kidolgozott célnyelvek. Felhasználási területük az információkutatás, a matematikai kutatások. Például: PROLOG, CONVERT, LISP, SNOBOL, COGENT.
==== Szimulációs nyelvek:====
Nagyon sok területen használatos nyelvek, kísérletek, folyamatok eredményeinek előrejelzését segítő eszközök. Például: SIMSCRIPT, SIMULA, GPSS.
==== Adatbázis-kezelő nyelvek: ====
Adatbázisokban tárolt adatok kezelését segítő programozási nyelvek. Segítségükkel lekérdezhetjük, módosíthatjuk, karbantarthatjuk az adatbázisban tárolt adatokat. A szabványosított és legjobban elterjedt ilyen nyelv az SQL, melyet ma szinte minden adatbank ismer.
==== Kiterjeszthető programnyelvek: ====
A harmadik generációs programozási nyelvek legfejlettebb változatai. A programozási feladat megoldásához a nyelv csak egy minimális bázist definiál előre. A hiányzó eszközöket azonban a programozó maga állíthatja elő a már létező elemek segítségével. Például: LOGO, FORTH.
thread_title:  Harmadik generációs programozási nyelvek: 

message: A PL/1 programozási nyelvet az IBM cég fejlesztette ki, az első változata 1964-ben jelent meg. Ez a nyelv még nem igazán sorolható a harmadik generációs programozási nyelvek közé. A PL/1 szabad formátumú nyelv, amely a FORTRAN, az ALGOL és a COBOL nyelvek előnyeit egyesíti magában. Egyaránt alkalmas az adat-feldolgozási és a számítási problémák megoldására, emellett a program szerkezete egyszerű és követhető, formai előírásai nem túl szigorúak. A programok blokk-szerkezetű felépítése már a strukturáltság koncepcióját vetíti előre. A program tartalmaz egy főprogram részt, amely külön blokkokban több alprogramot foglalhat magába, az alprogramok egymásba ágyazhatók. A fordító a deklarációkat utólag helyezi el a program elején.
A PL/1 előnyei: 
* könnyen tanulható, egyszerű nyelv 
* bonyolult feladatok megoldására is alkalmas 
* szabad formátumú programozást tesz lehetővé 
* blokkszerkezete jól illeszkedik a struktúrált programozási szemlélethez, az eljárások, függvények jól elválaszthatók egymástól 
Az első verziót újabb és újabb változatok követték, 1976-ban jelent meg az oktatáshoz is jól alkalmazható változata a PL/C. Bár a PL/1 univerzális programozási nyelv, mégis csak az IBM gépek alkalmazói körében terjedt el, aminek oka a megjelenés időpontjában keresendő. Ekkorra már a programozók többsége megismerte a FORTRAN és a COBOL használatát, és nem kívántak egy újabb nyelvre áttérni, főleg mivel ez a nyelv az előző kettő integrációjának tekinthető, igaz tartalmaz néhány újdonságot.
thread_title:  PL/1 (Programming Language I.): 

message: Az APL egy a matematikai problémák megoldására orientálódott, többcélú (de nem általános) programozási nyelv volt. A nyelvet Kenneth Iverson, amerikai matematikus dolgozta ki, elsősorban műszaki, tudományos alkalmazások fejlesztése céljából. Az APL programok egyik sajátossága, hogy kezelik a görög betűket, beépített (implicit) lehetőségei közé tartoznak az egy- és többdimenziós tömbökkel végzett műveletek. A nyelv szimbólumrendszere és szerkezete szabad formátumú. Az APL programok írásához speciális billentyűzetre van szükség (a görög betűk és a speciális operátorok miatt). Az APL nyelv nem támogatja a struktúrált programozást, így nagyobb feladatok megoldását nehézkessé teszi, de a nagy számban rendelkezésre álló beépített operandussal kiválóan alkalmas prototípusok gyors készítésére. A 70-es, 80-as években műszaki, tudományos és gazdasági problémák megoldásra egyaránt hatékonyan használták. Az újabb változatok (APLG) támogatják a grafikus feldolgozást is, manapság a numerikus számítógépek működésének leírásához használják.
thread_title:  APL (A Programming Language): 

message: A PASCAL nyelv volt az első igazi és legteljesebb körű megvalósítása a struktúrált szemléletű programozás elveinek. Niklaus Wirth professzor, a zürichi Műszaki Főiskola oktatója dolgozta ki a nyelvet a 70-es években, és Blaise Pascal francia matematikus-filozófusról nevezte el. Wirth professzor az ALGOL programozási nyelv alapján definiálta a PASCAL szabályait, a cél egy az ALGOL-hoz hasonló, de általános célú programozási nyelv elkészítése volt. A PASCAL általános célú programozási nyelv, amelyet elsősorban az oktatásban, a műszaki-tudományos számítások területén és a komplex programrendszerek fejlesztése során alkalmaznak elterjedten. Szabad formátumú nyelv, mely viszonylag kevés utasítást tartalmaz. A programok szerkezete kötött, szigorú előírások vonatkoznak rá. A PASCAL programok blokkokból épülnek fel, a blokkok a begin foglalt szóval kezdődnek és az end foglalt szóval érnek véget. Minden utasítás végére „ ; „ -t kell tenni. A PASCAL nyelv támogatja a moduláris programozást, függvények és eljárások definiálhatók a function és a procedure foglalt szavak segítségével. A függvények, eljárások egymásba ágyazhatók, sőt a nyelv támogatja a rekurziót is. A PASCAL erősen típusos nyelv. A programban használni kívánt változókat a főprogram előtt elhelyezkedő deklarációs részben fel kell tüntetni. A PASCAL fordítók compiler típusú fordítók. A programok szabályos, szigorú, egyértelmű felépítése miatt a nyelv az oktatás kedvelt programozási nyelve. A PASCAL nagyon jó alapot biztosít más programozási nyelvek tanulásához, a struktúrált programozás alapelveinek megértéséhez.
thread_title:  PASCAL 

message: Amint a nevéből is lehet következtetni, olyan programozási nyelvről van szó, amely igen magas szinten támogatja a moduláris programozás módszerét, azaz a feladatok részfeladatokra bonthatók és az egyes részeket külön lehet programozni, fejleszteni. Az egyes modulok az utasítások mellett tartalmazzák a modul során felhasznált adatokat, változókat, konstansokat is.      A modulok hierarchikus felépítésűek, tehát egymásba ágyazhatók. Célszerű élni ezzel a lehetőséggel, annak érdekében, hogy az egyes alprogramok egymással megfelelően tudjanak kommunikálni. A nyelv támogatja a rekurzív alprogramok mellett, a párhuzamos vezérlőszerkezetek készítését is. Ez utóbbi lehetőség a versenyhelyzetben álló folyamatok programozásánál lehet hasznos (multitasking). A nyelv egyik nagy előnye, hogy a moduláris felépítésű programok könnyen áttekinthetők, értelmezhetők egy esetleges módosításkor. Manapság is népszerű nyelv, majdnem minden operációs rendszerhez beszerezhető a fordítóprogramja.
thread_title:  MODULA-2 

message: A ’70-es évek közepén fejlesztették ki ezt a Pascal-hoz hasonló nyelvet, amely nagyon hatékonyan alkalmazható mind a rendszerszintű programok írása során, mind a komplex gazdasági számítások megoldásakor. A nyelv Augusta Ada Byron-ról kapta a nevét, akit Charles Babbage munkatársaként az első női programozóként említ az informatika története. Az ADA nyelv fejlesztésének célja egy hatékony, teljes gépfüggetlenséget biztosító programozási nyelv létrehozása volt. Éppen ezen törekvések miatt az ADA nyelv nagyon sok lehetőséget biztosít, a fontosabbak: multitasking, kommunikáció, megszakítás-kezelés. Az ADA programok moduláris felépítésűek, az egyes modulokat Package-nek nevezzük. Ezek az egységek gyakorlatilag egymástól függetlenül elkészíthetők és lefordíthatók. A modulok hivatkozhatnak egymásra a USE kulcsszó segítségével. A nyelv sajátossága, hogy az egymástól csak néhány ponton eltérő modulokat a GENERIC és NEW kulcsszavak segítségével egymásból származtathatjuk. Ez a tulajdonság már az objektum-orinentált nyelvek irányába mutat előre. A nyelv előnye, hogy támogatja a multitaskos működést, amely ma már alapvető követelménynek számít. A megírt program áttekinthető, könnyen módosítható, a moduláris felépítés miatt. A nyelv szerteágazó lehetőségei szinte minden területen használhatóvá teszik, ugyanakkor ebben a komplexitásban kereshető a nyelv hibája is. Az ADA egyik gyenge pontja, hogy bonyolult és sajátságos szemantikával rendelkezik, amely más nyelvek esetén nem jellemző, ezért tanulása elég nehéz feladat.
thread_title:  ADA 

message: A rendszerprogramozás fejlődése során mérföldkőnek tekinthetjük az 1972-ben megjelent C nyelvet. Megalkotója Dennis Ritchie, aki eredetileg a UNIX rendszerek fejlesztőeszközének szánta. Később különleges hatékonyságát és sokoldalú felhasználási lehetőségét látva más operációs rendszerekhez kidolgozták a C nyelvű fordítóprogramokat.  A nyelv különlegessége, hogy egyesíti magában a hardverközeli programozás és a magasszintű nyelvek előnyeit, ilyen módon jól kihasználhatjuk a hardver adta lehetőségeket – javul a futási idő – mégis gyorsan tudunk új programokat írni, mivel logikájában a magas szintű nyelvek formáját követi a C is. A Pascal-hoz hasonlóan viszonylag kevés utasítást tartalmaz, a legtöbb műveletet előre definiált függvények segítségével oldja meg. A C nyelv támogatja az alprogramok készítését, de csak a függvény típusú modulokat ismeri. Az eljárásokat visszatérési érték nélküli függvényként definiálhatjuk. Lehetőség van rekurzív alprogramok készítésére is. A C nyelv nagyon erősen támaszkodik a mutatókra. Előnyös a C programok írása során kihasználni a mutatók adta lehetőségeket, mert programunk ezáltal gyorsabb, hatékonyabb lehet. Típuselőírásai sokkal engedékenyebbek, mint azt a Pascal nyelv esetén tapasztaltuk, bár az automatikus típusdeklarációt nem támogatja, a konverziók terén igen nagy szabadságot biztosít a programozónak. A C nyelv utasításai mindössze a struktúrált programok készítéséhez szükséges utasításokra korlátozódnak: 
* Összetartozó utasítások (utasításblokk {}) 
* Kétirányú elágazási szerkezet (if … else) 
* Esetszétválasztás (switch … case … ) 
* Ciklusszervező utasítások 
A C nyelvet 1989-ben fogadta el az Amerikai Szabványügyi Hivatal. Ekkor jelent meg az ANSI-C, az első szabványos C fordító. A későbbi változatok ennek lehetőségeire építkeztek. A C nyelvet ma is széles körben használják, első számú alkalmazási területe a rendszerprogramozás. A mai követelményeknek megfelelő C változatok a C++, az objektum-orientált lehetőségekkel bővített C nyelv, és a Concurent C, a párhuzamos folyamatok programozását segítő eszköz.
thread_title:  C nyelv: 

message: Az utóbbi években kezdett széleskörűen elterjedni egy új szemléletű programozási technika, az objektum-orientált programozás, amely az elődeinél egyszerűbbé, hatékonyabbá, biztonságosabbá teszi a programkészítési munkát. Az objektum-orientált programozási nyelvek absztrakt adattípusokkal és a hozzájuk tartozó előre definiált algoritmusokkal segítik a programozó munkáját. Az objektum-orientált nyelvek az adatokat és az őket kezelő eljárásokat, függvényeket egységbe foglaltan ún. objektumként kezelik. Az objektum-orientált programozás lényege, hogy a programozás során felhasznált elemeket a nyelv előre definiálja, és különböző tulajdonságokkal ruházza fel. Amikor a programozó használni szeretné az egyik elemet, csak a tulajdonságait kell egyéni ízlése – illetve a feladatnak megfelelő elvárások szerint – Ez a programozási technika sokkal közelebb áll az emberi gondolkodáshoz, mint a procedurális programozás. Az objektum-orientált programozás elterjedésével sok új nyelv jött létre, amelyek tiszta objektum-orientált nyelvek, más technikát egyáltalán nem támogatnak. Sok nyelvet kibővítettek az objektum-orientált technika alkalmazásának lehetőségével, ezek az ún. vegyes nyelvek. 
Tiszta objektum-orientált nyelvek:
thread_title:  Objektum-orientált programozási nyelvek: 

message: A ’70-es évek elején fejlesztette ki Adele Coldberg és munkatársa Alan Kay azzal a céllal, hogy egy rugalmas, felhasználóbarát programozási környezetet biztosítson a fejlesztők számára. Manapság is széles körben használt programozási nyelv.
thread_title:  SmallTalk 

message: 1988-ban dolgozta ki a nyelvet Bertold Meyer. Objektum-orientált, erősen típusos nyelv. A hordozhatóság érdekében a megírt programot C nyelvre is le lehet fordítani. A szakemberek szerint az egyik legjobb objektum-orientált programozási nyelv.
 
Vegyes nyelvek:
thread_title:  Eiffel 

message: A Turbo Pascal 5.5 verziójától kezdve támogatja az objektumok létrehozásának és kezelésének lehetőségét. A 6.0 verzióba már került egy előre definiált objektumrendszer – TVISION – is, amely a szöveges felületű programok készítése során használható fel hatékony segédeszközként.
thread_title:  Turbo Pascal 

message: A C++ elnevezés a hagyományos C nyelv objektum-orientált lehetőségekkel bővített változatát jelenti. A Borland C++ 3.1 verzió már támogatja az objektum-orientált technika alkalmazását. Hasonló környezetet és objektumrendszert biztosít, mint a Turbo Pascal 6.0.
thread_title:  Borland C++ 

message: Ma már a számítógépet a tudományos és kutatómunka igen sok területén is felhasználják. Ezek a területek olyan speciális igényeket támasztanak a számítógépekkel szemben, amelyek megoldásához hasonlóan speciális eszközökre van szükség. A problémák támogatása érdekében fejlesztették ki a specializált programozási nyelveket, amelyek sokszor csak igen szűk problémacsoportok megoldására alkalmasak. Ez mégsem említhető hátrányként, hiszen éppen ezért alkották őket: egy-egy probléma megoldásához hatékony segítséget biztosítanak. Nézzünk meg néhány ilyen speciális területet:
thread_title:  Specializált programozási nyelvek: 

message: A programfordítók fejlesztéséhez olyan magasszintű programozási nyelvre van szükség, amely hatékonyan támogatja az alacsony szintű programozás és az operatív tár közvetlen kezelését egyaránt, lehetővé teszi a bitenkénti műveletek végzését, mégis rendelkezik a magasszintű nyelvek előnyeivel. Ilyen nyelvek: B, C, BCPL, Pascal.
thread_title:  Rendszer- és fordítóprogramok fejlesztése: 

message: Nagy pontosságot igénylő, bonyolult matematikai, műszaki számítások számítógép által történő elvégzéséhez biztosítanak segítséget ezek a nyelvek. Például: FORMAC, REDUCE, MACSYMA.
thread_title:  Formulakezelő nyelvek: 

message: Nagy mennyiségű szöveges információk, hosszú listaadatok értékelésére, elemzésére kidolgozott célnyelvek. Felhasználási területük az információkutatás, a matematikai kutatások. Például: PROLOG, CONVERT, LISP, SNOBOL, COGENT.
thread_title:  Szimbólum-feldolgozó nyelvek: 

message: Nagyon sok területen használatos nyelvek, kísérletek, folyamatok eredményeinek előrejelzését segítő eszközök. Például: SIMSCRIPT, SIMULA, GPSS.
thread_title:  Szimulációs nyelvek:

message: Adatbázisokban tárolt adatok kezelését segítő programozási nyelvek. Segítségükkel lekérdezhetjük, módosíthatjuk, karbantarthatjuk az adatbázisban tárolt adatokat. A szabványosított és legjobban elterjedt ilyen nyelv az SQL, melyet ma szinte minden adatbank ismer.
thread_title:  Adatbázis-kezelő nyelvek: 

message: A harmadik generációs programozási nyelvek legfejlettebb változatai. A programozási feladat megoldásához a nyelv csak egy minimális bázist definiál előre. A hiányzó eszközöket azonban a programozó maga állíthatja elő a már létező elemek segítségével. Például: LOGO, FORTH.
thread_title:  Kiterjeszthető programnyelvek: 

message: A XX. század második felében a számítástechnika forradalmi változáson ment keresztül. A Neumann elvek megjelenése és az első memóriában tárolt gépi nyelvű program lefuttatása után alig ötven évvel már információs rendszerek, központilag vezérelt számítógép hálózatok programozása, döntéshozást támogató rendszerek fejlesztése a célunk. Nyilvánvaló, hogy ilyen jellegű munkák elvégzésére a hagyományos programozási nyelvek által biztosított eszközök nem megfelelőek. A hardver eszközök rohamos fejlődésére támaszkodva kezdett kialakulni a programozás során egy új szemlélet, mely az eddigi alapelvekkel szöges ellentétben állt.
Meg kell említenünk a nyelvek nyilvánvaló előnyei mellett néhány rossz tulajdonságot is. A program hatékonyságának növekedésével egyenes arányban nő a program hardverigénye – elsősorban memória – igénye is, a lefordított program méretéről nem is beszélve.
Nyelvek 
A következő nyelvel a legelterjedtebbek a világszerte használt több millió programozó körében: 
*Ada 
*COBOL 
*C 
*C++ 
*C# 
*ColdFusion 
*Java 
*JavaScript 
*FORTRAN 
*QBASIC 
*Visual Basic 
*Delphi 
*Perl 
*PHP 
*Postscript
*Python 
*Ruby 
*Scheme -Smalltalk 
*Tcl 
*COBRA
thread_title:  Negyedik generációs programozási nyelvek: