Programozási nyelv

A HupWiki-ből...

Tartalomjegyzék

História

Miután az embernek már volt gépe, már csak a programok hiányoztak. Kezdetben csak a kiváltságosok lehettek programozók, és ők értették is a dolgukat. A mérnöki pulton bepötyögték (jobb esetben behelyezték a pen-driveot, akarom mondani lyukkártyát) az operációs rendszert, és/vagy a programokat, majd megnyomták a nagy piros gombot es várták a csodát. 3 napi várakozás után kiderült, hogy elírtak egy opkódot.

Aztán egyszer csak jött az assembly, azaz egy nyelv ami leegyszerűsítette a progamok irását, mert az utasítások és paraméterek (operandusok) számolgatása helyett már utasítások (mnemonicok) segítségével lehetett programot írni, majd a gép (vagy a programozó) lefordította (azaz kiszámolta) és futtatta.

No de mivel az ember nyugtalan, a számítógép meg egyre nagyobb teret hódított magának, újabb dolgokat kellett kitalálni. Ekkor jöttek létre a formális nyelvek.

FIXME

Osztályozás

Programozási nyelvet sok szempont alapján lehet osztályozni. Lehet szempont például az a folyamat, aminek hatására a program a számítógép által végrehajtható utasítások sorozatává válik:

  • compiler (fordító): a forráskódot egy fordítóval LEFORDÍTJUK a számítógép számára értelmezhető utasításokra
  • interpreter (értelemező): a "forráskód" (ilyen esetben inkább a script szót használjuk) a végrehajtás ideje alatt kerül értelmezésre folyamatosan, ahogy szükség van rá

Persze itt egyik nem zárja ki a másikat, pl számtalan nyelvre létezik compiler és interpreter is. A compiler gyorsabb programot eredményez, de minden változás után újra kell fordítani a programot és a hibakeresés is nehézkesebb. Az interpretált nyelveknél a fejlesztés egyszerűbb és gyorsabb, de maga a program lassabb lesz.

Másik osztályozási szempont lehet a programozási nyelv absztrakciója a gépi nyelvhez képest, ez a nem teljesen körülhatárolható definíció alapján beszélünk pl. alacsony szintű és magas szintű programozási nyelvekről. Az assembly-t általában még az alacsony szint legaljára vesszük, sőt külön csoportnak tekintjük, mivel az "csak" a gépi nyelv reprezentációja ember számára könnyebben emészthető formában, az absztrakció foka igen alacsony (bár mondjuk egy makroassembler esetén ez már nem egészen igaz).

Aztán például osztályozhatunk nyelveket a kód és adat viszonya alapján. Ahol a kód és adat egy egységet alkot, és ezeket tovább lehet adni (örököltetni), ott objektumorientált programozásról (OOP) beszélünk, tipikus példája ennek a C++ vagy a Java. Az OOP sok ember és cég számára az egyszerűbb és gyorsabb programozást testesíti meg, de hozzá kell tenni, hogy ennek igen magas ára van: sokkal nehezebb jó fordítót írni egy OOP nyelvre mint egy nem OOP-re, pont azért, mert az absztrakció szintje OOP esetén sokkal nagyobb. Pont az OOP és a GUIs fejlesztőrendszerek elterjedése az egyik felelős azért, hogy manapság olyan dolgokhoz is egy "erőmű" kell, amihez régen egy Commodore 64 is bõven elég volt.

Nyelvek

A teljesség igénye nélkül íme néhány nyelv:

Imperatív Nyelvek

Objektum-orientált nyelvek

Funkcionális Nyelvek

Párhuzamos programozási nyelvek

Leíró nyelvek

Szkriptnyelvek

Speciális célú/Hova soroljam nyelvek

Lásd még a Programozás szócikket

FIXME