Kezdőoldal » Számítástechnika » Programozás » Lehet könnyebben egy compiler...

Lehet könnyebben egy compiler programot írni?

Figyelt kérdés

Mármint úgy, hogy nem egyből gépi kódra/assemblyre fordít, hanem C-re és azt a gcc-vel .exe-vé alakítja.

Értelmes válaszokat, légyszi!



2015. jún. 13. 10:31
1 2
 1/14 anonim ***** válasza:
77%
Miért ne lehetne? Nagyon kell tudnod hozzá Céül és a forrásnyelvet is ismerned kell. Azonban nem vagyok benne biztos, hogy ez sokkal könnyebb lenne.
2015. jún. 13. 10:36
Hasznos számodra ez a válasz?
 2/14 A kérdező kommentje:
Aha, értem. De még mindig nem kell annyit kínlódni a gépi kóddal...
2015. jún. 13. 10:39
 3/14 anonim ***** válasza:
A gcc is assamblyre fordít, majd onnan gépi kódra. Amit te akarsz azt inkább interpreternek hívnak. Attól függ miben irják őket, de pl. Egy c nyelven irt basic interpreter is c függvényelet hív meg, igaz interpreter jellege miatt végre is hajtja azokat.
2015. jún. 13. 10:56
Hasznos számodra ez a válasz?
 4/14 anonim ***** válasza:
Szerintem ez inkább még nehezebb is lenne, mint gépi kódra fordítani.
2015. jún. 13. 10:59
Hasznos számodra ez a válasz?
 5/14 anonim ***** válasza:

Ez lehetséges. Nem tudom mit ír itt a #3-as valami interpreterről, mert ez nem az. Pl. a Vala fordító így működik, ezért oda-vissza C kompatibilis.


[link]

2015. jún. 13. 11:56
Hasznos számodra ez a válasz?
 6/14 anonim ***** válasza:
Az Eiffel nyelv fordítója így van megírva.
2015. jún. 13. 11:58
Hasznos számodra ez a válasz?
 7/14 tabaki ***** válasza:
Hát ennek szerintem sincs sok köze az interpreterhez, akkor inkább már valami rutinkönyvtár vagy efféle. Egyébként ez nem compilerkészítés -- ha belegondolsz valami csupa szövegműveletet végző szerkesztő- és átalakítóprogramról volna szó. Az, hogy a programod ezenfelül még képes a kész kódot átadni a külső fordítónak, még nem avatja compilerré. A fentebb említetteken kívül Gereöffy Árpádék BAPC nyelve volt még ehhez hasonló a DOS-időkben. Ez a magasabb szintű nyelvekből ismert áttekinhetőbb módszerekkel fölépített programszöveget Turbo Assemblerrel fordítható assembly-kódra írta át.
2015. jún. 13. 20:33
Hasznos számodra ez a válasz?
 8/14 anonim ***** válasza:

Nekem C-re fordító compilert könnyebb lenne írni mint gépi kódra fordítót. Egyrészt azért mert meg kéne tanulnom az adott hardveren assembly-be programozni, pontosan ismernem kéne az adott hardver utasításkészletét. C-ben meg nem kéne megtanulnom, mert már megtanultam. Másrészt könnyebb C-ben gondolkodni mint assemlyben/gépi kódokban.


"Egyébként ez nem compilerkészítés -- ha belegondolsz valami csupa szövegműveletet végző szerkesztő- és átalakítóprogramról volna szó."


Ha holnapra kiderülne, hogy piacra dobtak olyan processzort melynek a gépi kódja pontosan a C nyelv, akkor már compilernek tekintenéd? (Egyébként pénzbelileg nem érné meg és nagyon bonyolult lenne kivitelezni, de meg lehetne csinálni.)

Ha gépi kódra fordít és nem másik prog. nyelvre, akkor mi a különbség, az mitől nem "csupa szövegműveletet végző szerkesztő" ? Attól, hogy a kimenetnek nem olyan a szerkezete mint egy sima text fájlnak? Akkor vegyük pl az Ms word-öt ami doc, docx stb szöveges fájlt csinál. Annak a szerkezete sem textfile. Továbbá semmi nem tiltja hogy egy hardver gépi kódja egy az egybe sima textfile-ba írható legyen, az más kérdés hogy nem szokás.


"A fordítóprogram (angolul compiler) olyan számítógépes program, amely valamely programozási nyelven írt programot képes másik nyelv szabályaira lefordítani, például gépi kódra, köztes kódra, vagy egy másik programozási nyelv kódjára."

[link]


Végső igazságként: tulajdonképpen nincs különbség gépi kód és programozási nyelv között csak elég absztraktul kell tekinteni. Lehetne olyan prog. nyelv ami gépi kódra emlékeztet és lehetne olyan gép melynek a gépi kódja akár a kedvenc prog. nyelved. Prog. nyelveket azért találták ki, hogy könnyebbé tegyék a programozók munkáját, hogy emberhez közelebb álló nyelven le tudják írni melyet a gép közvetetten megért, hülyék lennének gépi kód szerű porg nyelvet használni. Fordítva is igaz azaz sokkal olcsóbb egy compiler mint egy olyan hardver melynek utasításkészlete egy az egybe egy magas szintű prog. nyelv.


Volt aki kavart itt az interpreter-el, volt aki jól tudta. Ebben az esetben amit a kérdező kérdezett nyilvánvalóan compiler-ről van szó. Azonban az nem annyira egyértelmű minden esetben hogy interpeter e valami.

2015. jún. 14. 15:48
Hasznos számodra ez a válasz?
 9/14 A kérdező kommentje:

Köszi a válaszokat, nagyon hasznosak! Most már biztos vagyok benne, hogy compilerről van szó. Amúgy szerintem is (mivel C-hez értek, Assembly-hez nem) könnyebb C-re megírni. Azt még nem tudtam, hogy készült már így nyelv...

Ha vmi érdekeset tudtok még a témába, jöhet!

2015. jún. 14. 19:13
 10/14 tabaki ***** válasza:

@#8:

Nyilván igazad van, pláne, hogy amennyi közöm nekem a programozáshoz van, tévedhetek jóval nagyobbakat is. Eddig csak azt a programot tekintettem compilernek, amely a forráskódok alapján összeállítja (kompilálja) a futtatható programot (ebben az esetben a gcc-t), az egyéb nyelvek közti átalakítókat meg csak (mondjuk) konvertereknek. De tény és való, hogy a szöveges- és egyéb adatok között semmiféle természetes határ nincs, úgyhogy a „kétféle” feladat nemigen különbözik egymástól. A Wikipédia-idézet alapján világos, hogy rosszul gondoltam, köszi.

2015. jún. 14. 20:50
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!