A C++ alacsony, vagy magas szintű nyelv?
Én a mai programozási módszerekhez képest én olyan közepes szintre sorolnám. Minden viszonyítás kérdése. Az assembly-hez képest magas szintű nyelv. Egy Java, C#, Python, stb. nyelvhez képest alacsony szintű. Erre azt a magyarázatot tudom adni, hogy C++-ban a memóriakezelés teljes mértékben a te felelősséged, illetve a compile során előállt bináris nem cross-platform.
Ez csupán az én személyes véleményem persze.
Azért vannak magasszintű tulajdonságai is, és attól hogy a bináris nem crossplatform még a kód lehet az. A python és java esetében se csak úgy mennek a dolgok mindenhol, kell nekik futtatókörnyezet
Az STL-ben tengeteg minden van, amit így nem kell neked megcsinálni (vector, hashmap, keresés, stringek, stb), amit egy alacsonyszintű nyelvben meg kéne.
Modern C++-ban vannak smart pointerek, amikkel lényegében ki lehet váltani a memóriakezelést, de persze ettől csinálhatsz saját memóriakezelő kódot az optimalizálásához.
Ráadásul több programozási paradigmát is támogat, pl. a procedurálisat, mint amilyen a C, az objektumorientáltat, és úgy tudom valamennyire belegyömöszölték már a funkcionális programozást is.
Low, mid, high level language. Ezek a meghatározások nem egzaktak. Nincs pontosan körül írva, hogy mi számít alacsony szintnek, ahogy az sem, mi az ami már magas.
Általános megközelítésben, az alacsony szintű nyelvek gépközeliek, azaz el lehet velük érni a vasat, jellemzően nincs, vagy nem feltétlenül van köztes layer (API) a programozó és a hardver között, bár ez nem kitétel. Ezen túl, az eszközkészletük szegényes*, nem támogatják az OOP-t sem.
A high level nyelvek eszköztára viszont bőséges, velük egy utasítással meg lehet valósítani azt, ami egy low level nyelv esetében tucatnyi, vagy több tucatnyi utasítást igényelne. Pl . split, sort.
A high level nyelvek esetében kényelmesebb a fejlesztés, a kód írására fordított idő lerövidül. Cserébe lassabb, erőforrás-igényesebb kódot kapunk, mintha ugyanazt low level nyelven írtuk, irattuk volna.
A mid level language, mint jelző, a szakmában nem használatos. Ettől függetlenül, beékelhető egy ilyen fogalom is a két előbb jellemzett közé. Talán a C lehet a kivétel, azt nevesíti pár szakkönyv mid level nyelvként. Ha ezt elfogadjuk alap definíciónak, akkor low level nyelv az assembly és high level nyelv a C++.
Más szakmabeliek szerint viszont a C egy alacsony szintű nyelv. Én is ezt vallom.
A C++ egyébként olyan nyelv, ami tartalmazza a low level nyelvekre jellemző lehetőségeken túl a high level nyelvek eszközgazdagságát, multiparadigmusát is.
* A szegényes itt nem a kevésre való utalás, hanem arra, hogy a nyelv egy-egy utasítása, önmagában nem képes, csak alig valamire. Érdemibb dolog, low level nyelven, csak több utasítás egymásra ható felhasználásával, kombinálásával valósítható meg.
További kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!