Toen ik drie of vier maanden geleden op een forum had gepost dat ik zelf een OS wou maken, werd ik voor gek verklaard. En nu heb ik een echt werkend OS gemaakt met memory management, mooie layout, bootloaders, etc.
Dus ik heb echt wel verstand van asm/c++. Even terug op uw post: het gaat om de tweede optie. Ik heb hier Visual Studio 2008 Pro, dat heb ik al grondig doorzocht, etc. Probleem is dat ik me nooit echt met compilers heb beziggehouden, maar het lijkt me wel een leuke uitdaging (net als het os). Want in principe snapt een computer alleen eenen en nullen. Stel dat ik een compiler maak die c++ code omzet naar een uitvoerbaar bestand (in windows exe) kan een Apple dat bijivoorbeeld niet lezen. Het idee is dus om een zogenaamde ALGEMENE compiler te maken die elke computer in principe kan lezen. Hoop dat jullie het begrijpen :thumb:
Een OS in een viertal maanden. Slaapt ge ooit ofzo? -> ik wil de source daarvan wel eens bekijken & testen

.
Mja topic compiler:
bestaat uit:
- Front end (analyse source)
- Back end (object code)
analyse:
- lexicale analyse (lex maar beter flex met lex syntax)
- grammaticale analyse (yacc maar beter bison)
- semantische analyse (idem aan boven dacht ik)
object code:
- assembler, c++, java, C#, ...
Een goede compiler heeft dus een front end die de source code analyseert, de analyse doorstuurt naar een back end, deze back end kunt ge dan machine specifiek maken. Maar het is niet verplicht om in deze back end assembler te genereren. Ge kunt in theorie ook c++ naar java omzetten etc.
Op zich is het vrij eenvoudig om een compiler voor een mini-taal te schrijven. Voor java,c++ etc. gaat echt echter iets meer tijd kosten (mja, als ge maar 4 maanden nodig had om een OS te schrijven dan moet dit wel een peulenschil zijn).
Om het op alle systemen te laten werken kunt ge 2 dingen doen:
een virtual machine gebruiken zoals java. Of verschillende back end's schrijven (dan moet ge er wel voor zorgen dat de front end volgens de standaarden is geschreven) zoals gcc het doet.
Als ge de compiler op meerde machines wilt laten runnen raad ik zoiezo aan om
gcc (g++), bison en flex te gebruiken en denk aan de standaarden!! De compiler van visual studio is wel fijn enzo, maar die heeft nogal de neiging van de voorkeur te geven aan windows specifieke source code (waardeloos dus).
Enkel leuke boeken:
Modern Compilers Implementation (Andrew W. Appel)
Compilers: Principles, Techniques and Tools (Alfred V. Aho, Ravi Sethi & Jeffry D. Ullman)