Forum: Kompilator....

Forum huvudsida -> Programmering -> Kompilator....

Sidor: 1

Till botten

jockepockee 01:15 - 21:a April 2007 | Post #1
Medlem
Inlägg: 192


Skicka PM
Har funderat på de här med kompilatorer, hur de är upp byggda osv, ja vet hittils att själva kompilatorn översätter till objektkod och en linker länkar ihop objektkoden till ett körbart program.

men nu till saken:

om jag nu skulle villja göra en typ av kompilator( inte till c++!) hur skulle de då gå till, kan man göra de med bara c++ eller måste man kunna asm mm?

-------------------------



Senast redigerad 01:17 - 21:a April 2007


ozamosi 01:22 - 21:a April 2007 | Post #2
Administratör
Inlägg: 1129


Skicka PM
Du kan göra en kompilator i vilket språk du vill, och du kan kompilera för vilken plattform du vill (många kompilatorer till småspråk kompileras till C-kod). Du behöver bara bestämma vad för instruktioner som finns tillgängliga, och översätta källkoden, rad för rad, till sådana instruktioner.

-------------------------
Ljusblå



jockepockee 01:26 - 21:a April 2007 | Post #3
Medlem
Inlägg: 192


Skicka PM
ok, men om man vill bygga den från grunden, få ett körbartprogram på en gång, typ som c++

kortfattat:
Hur ska man gå tillväga för att göra en linker?

-------------------------





ozamosi 01:28 - 21:a April 2007 | Post #4
Administratör
Inlägg: 1129


Skicka PM
Tja... Jag antar att en linker flyttar innehållet i ett antal binärfiler till samma fil, och möjligen klämmer på lite headers också.

-------------------------
Ljusblå



tobbez 01:44 - 21:a April 2007 | Post #5
Medlem
Inlägg: 364


Skicka PM
Personligen tycker jag att det verkar som att du skulle behöva lära dig programmera i ett högnivåspråk innan du försöker dig på att göra något som är så lågnivå (och komplicerat) som en kompilator, från grunden.




Tesuki 17:27 - 21:a April 2007 | Post #6
Medlem
Inlägg: 122


Skicka PM
var på samma ställe för ett tag sedan hur skapar man en kompilatorn. http://en.wikipedia.org/wiki/Bootstrapping_%28computing%29
och
http://en.wikipedia.org/wiki/Bootstrapping_%28compilers%29
var de två sakerna som komm fram efter ett tag.
ska göra en kompiletor till lambda5 så sitter och pluggar på hur man gör en. finns några böcker denna är den jag använder nu http://www.amazon.com/Writing-Compilers-Interpreters-Ronald-Mak/dp/0471113530 den går igenom hur man göra en pascal interpreter och kompilator i c++.
men har inte orkat gå in på hur man skulle göra en linker. får lära mig det också och förhoppningsvis så hittar jag någon vettig bok. gissar på att man får lära sig lite om en .exe fils uppbygnda på windows. sedan lära sig lite om ELF eller vad det linux kör med i deras bins.
linkers verkar vara mycket mer komplicerat än en kompilator.
tror Lex & yacc är något som kan vara vettigt at lära sig eller flex och bison heter några andra versioner av dem som är GNU verktyg. men men lycka till.




Sidor: 1

Forum huvudsida -> Programmering -> Kompilator....
Atom feed

Du får inte posta i den här tråden | Till toppen