Hogyan készült az első számítógépes program, ha nem volt milyen programmal megírni?
Sziasztok!
A világhálón semmit sem találtam :/
Megvannak a magam teóriái, de szeretném a valóságot megtudni. /Ne tudom elképzelni, lehet hülyének nevezni, jogosan 😅/ Nagyon kíváncsi vagyok, a válaszokat (az okosakét, (nem az okoskodókét)+ az értelmesebbek válaszát) előre is megköszönöm :)
Így: [link]
Megfelelő kábelek bedugásával, és/vagy kapcsolók megfelelő helyzetbe állításával alakították ki a programkódot. Ehhez persze ismerni kellett a feldolgozóegységet (amit ma (mikro)processzornak neveznénk), és előre pontosan meg kellett tervezni, hogy mit, mivel kell összekötni, hogy a papíron megtervezett kód létrejöjjön.
Később már lyukkártyákra, vagy lyukszalagokra lyukasztották (általában kézzel) a kódot. Általában ez is gépi kódban történt, a programozó "kézzel" alakította át az utasításokat gépi kóddá, majd azt rályukasztotta a kártyára/szalagra, amit aztán később a gép beolvasott.
Az első programokat Ada Lovelace írta, nyilván tollal, papírra, még az 1800-as években. Egy olyan masinára készültek ezek, amely soha nem épült meg teljesen /differencial engine/.
Ami már működött is, az Conrad Zuse gépén futott /193?/. Ez a program a gép átvezetékezésével került bele a masinába.
A leggyakoribb a kapcsolókkal, dugasz-táblákkal történő programozás volt, ezt követte a lyukkártya, majd a lyukszalag. Ezeken lehetett először úgy tárolni programot, hogy azt később is be lehetett olvasni. A kártyákon, szalagon a megfelelő pozícióban lévő lyukak vagy azok hiánya jelentette a bináris értéket. Innen már csak egy lépés volt a mágneses elvű, elektronikus tárolás.
Azt érdemes figyelembe venni, hogy ekkoriban a számítógépeket még valóban csak számítások elvégzésére használták.
A programokat matematikusok írták, saját maguknak és többnyire operátornők végezték a dugaszolást, a programok gépbe táplálását.
„nem volt milyen programmal megírni”
A program nem azonos sem a valamilyen programnyelvű megfogalmazásával, sem pedig ennek a szövegszerkesztőbe való beírásával. A processzor egy számsorozatot vár, amelynek tagjai részben az általa ismert műveletek sorszámát, részben az ezekhez szükséges adatok értékét jelentik. Ezt ma valóban a fordítóprogramok állítják össze a számára, de 𝘦𝘭𝘷𝘪𝘭𝘦𝘨 semmi akadálya, hogy bármilyen más eszközt használj a bevitelre: Lyukkártyát, lyukszalagot, magnót, vagy akár számbillentyűzeten való bepötyögést. Ha tudod, hogy a processzor milyen műveletek elvégzésére képes, beírhatod annak a számát, meg a végrehajtásához esetleg szükséges adatokat. Maga a program ezen adatok bevitelének a megfelelő sorrendje, amit adott esetben egy sajtcédulára is fölfirkanthatsz magadnak. Műveletek alatt persze ne olyan bonyolult tevékenységeket érts, mint „írd a képernyőre, hogy "HÜLYE"”, vagy „hozz létre egy tíz elemű tömböt”, inkább efféléket: „cseréld meg A és B regiszter tartalmát”, „lépj vissza három utasítást”, „írd az A regiszterbe olvasott memóriacímre B értékét”. Az ehhez hasonló elemi utasítások bele vannak építve a processzorba, és a megfelelő számérték hatására végrehajtódnak. Azt sem szabad elfelejteni, hogy a régi processzorok utasításkészlete jóval szűkösebb volt a maiakénál, és az okos emberek a számkódok java részét fejben tudták tartani.
Manapság persze nehéz elképzelni, hogy ilyen gépi kódok sorba rakásával értelmes programot lehessen összeállítani, de a kezdet kezdetén nem olyasmivel foglalkoztak a programozók, hogy átzsírosodott kalapú cowboyok hogyan zuhannak sikoltozva a tábortűzbe, vagy robban le hitelesen a mutáns medúzaember feje, hanem elsősorban csakugyan matematikai számításokra használták a gépet, és egy sokszoros hatványozást, átlagolást, pályagörbeadatokat meg hasonlókat össze lehetett ügyeskedni ilyen módon is – lehet, hogy ennél ma már minden zsebszámológép többre képes, de minden kezdet nehéz...
A gépi kódú utasításokkal természetesen olyan programokat lehet írni, amelyek egyéb hasznos dolgokat végeznek, például a kapott értékeket nem közvetlenül használják fel, hanem bizonyos adatcsoportok alapján maguk állítják össze a processzornak küldendő adatokat. Ilyenek az assemblerek, amelyek a programozó számára jóval megjegyezhetőbb és olvashatóbb rövidítéseket tartalmazó karaktercsoportokat (mnemonik) írják át gépi kódra - itt máris megmutatkozik az immár nem is olyan nehezen megírható szövegszerkesztő használatának előnye, kivált, hogy a fejlődés nem állt meg. Az assembly nagyjából megfeleltethető a gépi utasításkészletnek, ezért a programok igen aprólékos tagolását kívánja, amire általában nincs szükség: Egy-egy bevált algoritmus az elemi utasítások tömegét kívánhatja, ezeket célszerű nagyobb csoportokba foglalni, amelyekre saját, a gépi alapoktól már független megnevezésekkel lehet hivatkozni; Ezt csinálják a különféle programnyelvek. Amikor egy programnyelvi utasítást leírsz, már eszedbe sem jut azzal foglalkozni, hogy egy jelzőbit hogyan billen át, vagy mi van egy regiszterben (és hogy egyáltalán léteznek ilyesmik), hanem a programnak csak az általad látott, magasabb szintű tevékenységével foglalkozol, például, hogy olvasson be egy sort, rajzoljon ki egy ablakot három gombbal, vagy beállítható fenyegetési tényezővel mondja ki a „Megdöglesz, Géza!” mondatot. Ha az adott programnyelven ez megírható, semmi egyébbel nem kell törődnöd. Mindez azt az illúziót kelti, mintha a programozásnak eleve magától értetődő részei volnának ezek a lehetőségek, és innen nézve teljes képtelenségnek tűnik, hogy a számítástechnika hajnalán is lehetett programot írni. A folyamat ismeretében viszont nincsen benne más csoda, mint az emberi elme leleményessége. Igaz, az se piskóta...
"Azt sem szabad elfelejteni, hogy a régi processzorok utasításkészlete jóval szűkösebb volt a maiakénál,"
Ez az egy kijelentésed korrekcióra szorul.
A régi időkben is, amikor a processzorok tulajdonképpen összehuzalozott logikák voltak, bizony akadtak komoly, sok utasítást ismerő, nagy bitszélességen /12,18,24,36/ dolgozó processzorok is.
Az 1974-75 környékén megjelenő, otthoni gépekbe épített, 8 bites CPU-k eredendően kontrollernek lettek kifejlesztve, vezérlési, mérési célokra és nem számítógép központi elemeként. Persze azért megszületett az ALTAIR, az APPLE I, a VIC20, a ZX80, stb.
A 'komoly' szakemberek ezeket le is nézték, a mikrogépeket nem tekintették igazi számítógépeknek. Innen, ebből a korból ered a mondás is: Ne bízz olyan számítógépben, amelyet egymagad is fel tudsz emelni.
Az első népszerűbb, szériában gyártott, több szekrény méretű gépek, a PDP sorozat egyes tagjai pl. 18 bites szóhosszal bírtak és ezek voltak a kor kisgépei. Na ehhez képest az 1981-ben debütáló IBM PC későbbi, advanced verziója /ez volt az AT/ is csak 16 bites processzort kapott.
😀
(#5, igen, tudom, csak elfelejtettem idéző jelbe tenni 😅)
#2, kifejtenéd bővebben?
#A többi komment(elő), köszönöm, hogy időt szántatok rám ilyen hosszú szövegekkel. Tényleg nagyon sokat segített amegértésben! :)
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!