Lehet könnyebben egy compiler programot írni?
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!
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.
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."
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.
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!
@#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.
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!