Kezdőoldal » Számítástechnika » Programozás » A középszintű programnyelvek...

A középszintű programnyelvek (pl C++, Pascal) zöme assemblyben, és/vagy gépi kódban íródott, vagy gyakoribb az egymástól alapvetően eltérő nyelvek közötti cross-compiler megoldás? Vagy több nyelv kombója által készültek? Vagy szinte csak assemblyben?

Figyelt kérdés

Különösen a középszintű és általános célú nyelvek esetén érdekel mint C, C++, Pascal.


A félreértés elkerülésére jelzem:

alapvetően NEM a compiler illetve interpreter megoldások módjaira vonatkozik a kérdésem, hanem hogy pl aki feltalálta a Pascal nyelvet, miben írta meg? Assembly-ben? Gépi kódban? Máshogyan nem tudom elképzelni, mint ezek egyikében, vagy mindkettőben, esetleg jellemzőbb, hogy assembly ill gépi kód mellett inkább korábbi középszintű nyelvek evolúciója / továbbfejlesztése a jellemzőbb?


Elsősorban tehát általánoságban a középszintű és alacsony szintű nyelvekről szól a kérdésem, nem csak a Pascal-ról.


(Mellékkérdés: a magas szintű nyelvek mint pl a basic illetve fortran változatai: a gépi kód és assembly mellett -vagy helyett?- inkább más nyelvek által íródtak, utóbbiak továbbfejlesztése gyanánt? Ez mennyire általános vajon, ezeknél?)



márc. 8. 17:48
1 2
 1/18 anonim ***** válasza:
72%

Szerintem csak a legalapvetőbb funkciókat írják gépi kódban. Utána az így létrehozott parancsokra építve hoznak létre újabb magasabb rendű parancsokat és rutinokat


Mert miért is kéne az egészet gépi kódban megszívni?

márc. 8. 17:57
Hasznos számodra ez a válasz?
 2/18 A kérdező kommentje:

#1 nem lehet, hogy a kérdésemet úgy érteted, mintha a programozás jellegéről szólna? Bocsi, lehet, hogy nem értetted félre, csupán tisztáznám.


Mindenesetre nem a prg-ozás jellegéről írtam ki a kérdésemet, hanem érdekel, hogy pl minden (szinte minden) Pascal parancs gépi kódban / assembly-ben készült?


Tehát nem arra vonatkozik a kérdésem, hogyan írunk pl Pascal programokat.


Hanem hogy pl maga a Pascal prg-ozási nyelv (és annak utasításai stb) hogyan jött létre, miből? Cak gépi kódokból / assembly-ből?


Vagy a középszintű programnyelvek, mint pl a Pascal inkább evolúció eredménye?


Általában kb hány %-a gépi kód / assembly a legtöbb középszintű

programnyelvnek?



Nem szőrszálhasogatásmból mondom, de félreértést elkerülendő, jelzem:


A Pascal program nem azonos a Pascal programnyelvvel,

épp úgy, ahogy

a beszélő robot szavai nem azonosak a beszélő robot beszédét megalkotó program nyelvvel.

márc. 8. 18:18
 3/18 A kérdező kommentje:

Köszi az illetőnek, aki priviben válaszolt, de én nem arról írtam a kérdésem, hogy a fordítókat vajon miben írják. Hanem magukat a középszintű programNYELVEKET miben írják? Inkább csak assemblyben / gépi kódban vajon, vagy inkább "evolúciós" eredmény?


Tehát se nem programokról ( / szubrutinokról) szól a kérdésem, hogy vajon azokat miben írják, se nem fordítókról szól, hogy azokat vajon miben írják.

márc. 8. 18:55
 4/18 anonim ***** válasza:
81%

A programnyelveket nem írják semmiben sem, a programnyelv egy absztrakt fogalom. Amit te programnyelvnek nevezel, az minimum egy lexer/parser, tokenizer, compiler és/vagy interpreter együttmőködése.

Ezeket manapság valamilyen létező nyelven írják, de az ritkán assembly, jellemzően inkább C, C++, OCaml.

Aztán ha a nyelv fordított (kompilált), akkor egy idő múlva eléri azt a szintet, hogy a sajat fordítóját is meg lehet írni benne, onnantól az adott nyelv self-hosted. A Rustot pl. OCaml-ban kezdték el írni LLVM segítségével 2006-ban, és 2011-ben lett self-hosted.

márc. 8. 19:39
Hasznos számodra ez a válasz?
 5/18 A kérdező kommentje:

"Ezeket manapság valamilyen létező nyelven írják, de az ritkán assembly, jellemzően inkább C, C++, OCaml"


Na de épp az a kérdésem lényege, hogy eredetileg milyen nyelven írták, tehát akkor a C-t milyen nyelven írták?

márc. 8. 19:56
 6/18 anonim ***** válasza:
0%
Angolul többnyire
márc. 8. 20:35
Hasznos számodra ez a válasz?
 7/18 A kérdező kommentje:

#6 tessék??

Programnyelvekről van szó. A C nyelvet miben írják meg? Assembly, gépi kód, más, vagy ezek kombói?

márc. 8. 20:37
 8/18 anonim ***** válasza:

Egy compilert bármilyen nyelvben meg lehet írni. Az első compilerek gépi kódban voltak, majd a többi a korábban elkészült compilerek segítségével felsőbb rendű nyelvekben.

A FreePascal compilert pl Pascalban írták és le tudja fordítani önmagát.

márc. 8. 21:06
Hasznos számodra ez a válasz?
 9/18 A kérdező kommentje:
#8 , ezek szerint valamiféle evolúció jellemző, ugye? És nem feltétlen ragaszkodnak ahhoz, hogy gépi kódban / assemlby-ben írják meg a magasabb szintű nyelveket?
márc. 8. 21:12
 10/18 anonim ***** válasza:
70%

Erre nehéz pontos választ adni.


Az első C compilert tulajdonképpen C nyelven írták. Itt az első ismert C fordító forrása: [link]


De az az igazság, hogy az akkori C nyelv eléggé különbözött még a korai K&R C-től is. Szintaktikailag a történet valahol az 1960-as években kezdődött, a TMG nyelvvel. Ken Thompson kifejlesztette a B nyelvet a TMG segítségével, abből kifejlesztették a BCPL-t, abból az NB-t (NewB-t). Nehéz pontos határvonalat húzni a B, az NB és a C között, főképp, mivel ezek a nyelvek folyamatosan formálódtak. Az NB pl. olyan rövid életű volt, hogy leírás sem készült róla.

Szóval az akkori C lehet, hogy közelebb állt a B-hez, ezért sok helyen azt lehet olvasni, hogy az C fordítót B nyelven írták. És ha azt olvasod, hogy az első C compilert assembly nyelven írták, abban is van igazság, ugyanis ezen nyelvek (B, BCPL, NB, C) fordítása úgy történt, hogy egy nagyon minimális assembly fordító lefordította a nyelv egy részhalmazát, épp annyit, amennyi elég volt ahhoz, hogy a nyelv onnantól self-hosted legyen. Szóval mondhatod, hogy az első C fordítót assembly nyelven írták, de ez sem fedi le a teljes igazságot.


Az első Pascal fordítót FORTRAN nyelven írták, de az a történet nem volt túl sikeres, úgyhogy inkább átportolták egy C-stílusú nyelvre (Scallop), ezután a Pascal is elég gyorsan self-hosted lett.

márc. 8. 21:22
Hasznos számodra ez a válasz?
1 2

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!