Kezdőoldal » Számítástechnika » Programozás » Hogyan készítették el az első...

Hogyan készítették el az első programozási nyelvet?

Figyelt kérdés
Nemrég azon kezdtem el agyalni, hogy ugyebár ma már van többféle programozási nyelv is, melyekkel egy egész szoftver vagy akár játékot is elkészíthetünk karakteres jelekkel. Azon tűnődtem, vajon a számítógép kezdetén, amikor azok a hatalmas gépek elfoglaltak egy egész szobát, azokat hogyan programozták? Tudom, hogy Charles Babbage volt az első (ha tévedek bocs!), aki a gépeire programokat írt. Az a kérdésem, hogy ezeket a programokat hogyan írta meg? Biztosan nem C-ben vagy Phytonban. Mire jött ő rá, hogyan tudja a képernyőre vinni a betűket és a számokat? És hogyan tudta elkészíteni az első programozási nyelvet?
2012. nov. 2. 01:00
 1/6 SimkoL ***** válasza:
80%

Annak idején az első programok gépi kódban, tehát közvetlenül a géphez "szólóan" készültek. Volt egy mérnöki pult amin keresztül be lehetett vinni az utasításokat a gépbe, valamint a lyukszalag. Ez 8 bites volt értelemszerüen. Ezzel megoldották a kezdetleges adattárolást. Utána jött a mágnesszalag stb.....

Az első "számítógépeknél" nem volt még monitor.

Azt, hogy hogyan lehet a képernyőre kiíratni akármit is az nem kimondottan programozási "dolog". Meg kellett oldani, hogy a "számítógép" által küldött üzenetek egy monitoron jelenjenek meg. Ehhez kellett egy megfelelő hardwert készíteni ami a digitális jelekből videó jelet generál megfelelő formátumban.


Legyen az akármilyen programozási, nyelv fordítás után gépi kódban ad utasításokat a processzornak.

Regiszter, akkumlátor, megszakítás, memóriacím stb... mindnek van egy gép által értelmezhető formája.


Tehát az első nyelv úgy készült, hogya "bácsi" szépen gépi kódban bepötyögte a fordítóhoz szükséges kódot.


Ha megnézed az assembly nyelvet láthatod, hogy nem is olyan nagy dolog, így utólag :)

2012. nov. 2. 06:05
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:
100%

Hát ez részben egyszerű részben bonyolult...

Több fajta formális nyelv is létezik, mint a Turing Gép, Determinisztikus automaták, Non-determinisztikus automaták, Generatív nyelvek... Gondolom a mai általános RAM gép elvére gondolsz.

A RAM gép biztosan tudod úgy van megvalósítva, hogy 1 és 0 az ábécéje. Ezek a processzorban helyezkednek el és generálódnak parancsok által, innen lehet mozgatni regiszterből regiszterbe, regiszterből memóriába, módosítani értéküket pl: összeadni, kivonni... Ezek a műveletek a processzorban áramkör szinten, vagy mikro programozott szinten vannak megvalósítva, ezek adottak, CISC és RISC típusú processzorok.

Nos a parancsokat az oszcillátor ritmizálja mikor azt mondják 3ghz-es a proci akkor ilyen sebességgel végez el egy műveletet (ez azért nem pont így van, mert kicsit próbálnak csalni vele a pipeline-al, io-processzorral, GPU-val), de a lényeg, hogy egy ilyen utasítás operátor operandus lista formában léteznek, és a processzor tudja, hogy melyik regiszterhez kell nyúlni. Valami ilyesmi 8 bit-en:

1011011110011011 ebből az ember sok idegeskedés után vesz ki valamit ezért először átváltják 16-os számrendszerbe: B79B így azért már olvashatóbb. De felmerült az ötlet, hogy ilyen módon lehetne írni egy nagyon egyszerű programot ahol a B7 ami mondjuk a szorzás azt keljen beírni MUL a programunk meg fordítsa át B7-re, majd 10110111-re, tehát az eredmény:

MUL 9B -lett, mennyivel egyszerűbb nem? ez tudják a programozók, hogy a MUL szorozza az egyik regiszter tartalmát 9B-vel, majd az egyik regiszterben megjelenik az eredmény. Ezt úgy nevezték el, hogy mnemonic. A következő lépésként még ugyan ezen az elven csináltak subrutin hívást, címkét, amely memóriacímre mutat... és létrejött az Assembly. Innentől kezdve már sokkal egyszerűbb volt, írtak egy két oldalas Assembly programot ami a kiíratásért felel, és a fordító tudja, hogy az a 2 oldalnyi kódot kell a fordítónak behelyettesíteni, és a programozónak elég volt begépelni, hogy print(""); ... létrejött a C, Pascal...

Na valahogy így kell elképzelni, de csak úgy vázlatosan írtam le, és még így is sok lett.

2012. nov. 2. 06:21
Hasznos számodra ez a válasz?
 3/6 iostream ***** válasza:
Azt azért tegyük hozzá a második válaszhoz, hogy a gép nem binárisan gondolkodik, egyszerre mindig egy nagyobb egységet néz, gép utasításszélességétől függően. A memóriában sem tudsz bitet címezni.
2012. nov. 2. 09:23
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:
Természetesen a automaták a nyelv ábécéjéből szavakat fogadnak el, általános gépnél elfogad bájtot, szót, duplaszót...
2012. nov. 2. 16:58
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:

Charles Babbage gépe egyfajta assemblerrel működött volna, ha megépül. Ada Byron írta hozzá a programokat. Nem láttam a terveket, de monitora biztos nem volt a gépnek.

Később egy német készített egy sakkozógépet, amit a Plankalkül assemblerrel programozott be.

Ők valószínűleg minden egyes utasítást közvetlenül kapcsoltak a működéshez.

A továbbiakban volt az a történet, hogy az előzőekről nem sokat tudva különféle kódokat alakítottak ki a bitekkel végzett műveletekre.

Aztán kialakították az első magas szintű programnyelveket, amelyek az 1950-es évek végétől jelentek meg. Ezek közül néhány még mindig használatban van, lásd Fortran és Lisp.

2012. nov. 2. 18:22
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
Értem köszönöm szépen! :)
2012. nov. 3. 00:03

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!