Ahhoz, hogy programozásról beszéljünk, egyszer az alapokat kell megemlítenünk, vagyis, hogy mi is az a processzor, hogyan tárolódnak az adatok a memóriában, mik is azok az adattípusok.
Alapok
Érdemes azzal az egyszerű kijelentéssel kezdeni, hogy minden kódnyelv, ahhoz, hogy fusson, gépnyelvre fordítódik. Általában minden programozási nyelvnek saját fordítója van, ami a gépnyelvre való fordítást végzi.
Hogy mi is az a gépnyelv? A gépnyelv a processzor által ismert műveletek sokasága. A processzor általában alap műveleteket tud végezni, azt viszont nagyon gyorsan. Például egy 2.4 Ghz -es processzor 2400000000 műveletet végez másadpercenként, de figyelem, ezek a saját, belső műveletei.
A jelenleg is működő, használt programozási nyelv, ami direkt gépi nyelv, vagyis processzorműveleteket tartalmaz, az az Assembler, vagy Assembly nyelv.
1 2 3 4 |
;A:= B+C lwz r2, [num1] lwz r3, [num2] add r4,r3,r2 |
Amint látható a fenti példában, ami két számot ad össze, a kód processzorműveleteket tartalmaz, vagyis nem kell még leforduljon gépi nyelvre, hanem direkt futtatható.
Felmerül a kérdés, hogy a processzor honnan tudja, hogy milyen műveleteket kell végezzen? Ezt a műveleti memória határozza meg. Amikor elindítjuk a számítógépet, a memória feltöltődik az operációs rendszer által meghatározott műveletekkel, és a processzor futás közben azokat hajtja végre. A műveleti memória a teljes memória egy felhasznált része, a többi memória a feldolgozandó adatoknak marad.
A következő kérdés, ami felmerül, hogy miként van az, hogy megy a YouTube a háttérben, közben egy dokumentumot szerkesztek, és még egy játék is fut a háttérben? Ez is nagyon egyszerű. A párhuzamos futás egy számítógépen csak illúzió. Igazából a különböző futó alkalmazások szerre futnak, vagyis egy kevés egyikből, egy kevés a másikból, de csak egymás után. A több magos processzorok esetében is így van, csak a műveletek száma megoszlik.
Adattípusok
Bármilyen programozási nyelvről beszélünk, két dolog mindig jelen van: a változók és a műveletek. A változók azok az izék, amikben az adatainkat tároljuk a program futása allatt. A műveletek pedig az általunk meghatározott teendők.
Amikor a programozás kialakult, szükség volt valami módszerre, amivel a matematikában használt számokat és kifejezéseket le lehetett vetíteni a programozás világába. Megszülettek tehát az alap adattípusok, amelyek a következők: integer, float, double, char, boolean.
Mielőtt bárki megijedne, ezek csak kifejezések arra, hogy egy bizonyos adat miként jelenik meg a memóriában. Mivel a memória 0-1 bitek sokaságából áll, ezeket kell használnunk arra, hogy kifejezzünk egy számot, vagy egy karaktert. Egy adattípus a memóriában általában meghatározott hosszúságú, de ezt legtöbbször a programozási nyelv és annak fordítója határozza meg. Az alap egység a bit, ami után jön a byte. Egy byte 8 bit. Erre alapszanak a többi adattípusok.
Példának egy táblázat a Java nyelv primitív adattípusaival:
Kulcsszó | Leírás | Méret |
---|---|---|
(természetes számok) | ||
byte |
Byte-hosszúságú integer | 8-bit |
short |
Rövid integer | 16-bit |
int |
Integer | 32-bit |
long |
Hosszú integer | 64-bit |
(egész számok) | ||
float |
Egyszeres precizitású lebegőpont | 32-bit IEEE 754 |
double |
Dupla precizitású lebegőpont | 64-bit IEEE 754 |
(más típusok) | ||
char |
Egy karakter | 16-bit Unicode karakter |
boolean |
Boolean érték (igaz vagy hamis ) |
igaz vagy hamis |
A programozásban a változóinknak, amiket használunk, bizonyos adattípusa van. Ezekkel végzünk műveletek, például összeadást, szorzást, vagy épp karakterösszefűzést.
Természetesen a legtöbb programozási nyelv ezeken az alaptípusokon kívül használ más típusokat is, amik vagy saját, alaptípusok, vagy valamelyik primitív típusra épülő adattípusok. Mivel ezek nyelvenként változnak, erre nem tírünk ki.
Valaki fel lehet háborodva most már, hogy hány cikket elolvasott, de még mindig nem fogtunk neki programozni. Csak semmi pánik, oda is elérkezünk lassan, viszont ezek az alapok fontosak ahhoz, hogy értsük, hogy igazából mire is épül a programozás, mi is történik a háttérben.