41
Softwareentwicklung / Re: Meine Programmiersprache - Haze
« am: 13. March 2010, 17:14 »
Jo
04. May 2024, 12:14
Diese Sektion erlaubt es dir alle Beiträge dieses Mitglieds zu sehen. Beachte, dass du nur solche Beiträge sehen kannst, zu denen du auch Zugriffsrechte hast.
Es könnte sinnvoll sein nur ein Frontend für deine Sprache zu schreiben und LLVM den Rest übernehmen zu lassen. LLVM soll besser optimieren können als der gcc. Außerdem soll er gut designt und dokumentiert sein.
Mal ne andere Frage: Hat der Name "haze" was zu bedeuten, oder wie bist du auf den Namen gekommen?
Was ich schon immer vermisst hab ist eine saubere Unterstützung für mehrere Rückgabewerte, planst Du sowas?
Bei dem Inline-Assembler würde ich mir die gcc-Syntax mit (Assembler-Code : Eingabe : Ausgabe : Änderungen) wünschen. Das finde ich persönlich recht gut.
Wie gut kann/soll den Dein Compiler optimieren?
wie siehts mit AT&T syntax für den Inline ASM aus?
mov si, Str
mov si, [ebp+0x04]
sieht aber schon seehr schick aus respekt
wie siehts mit inlineassembler aus?
isses ne strukturierte oder ne prozeduale sprache?
Wenn dein Problem ist, dass du keinen vernünftig handhabbaren 16-Bit-Pascalcompiler hast, hast du schonmal über Protected Mode nachgedacht? GRUB läuft, soweit ich das weiß, auch grundsätzlich im PM und schaltet nur für die BIOS-Interrupts (also im Wesentlichen Plattenzugriff) in den RM zurück. Das dürfte im Vergleich zum Rest ein relativ kurzes Codestück sein, das man locker in Assembler schreiben könnte.
Eine Programmiersprache als "Zwischenprojekt" ist mutig.
Trotzdem eine interessante Sache. Du kannst ja auch mal ein paar Ansätze hier posten, da diskutieren sicher einige gern drüber mit dir.
Bei 3. kommt es natürlich drauf an, was für eine Art Bootloader es werden soll. [...]
zu 1.) ich sagte nicht das C die Sprache aller Sprachen wäre...aber wenn man ein OS in C programmieren will sollte man C können, mehr wollte ich nicht aussagen
Das GRUB nicht die einzige gute alternative ist wurde mir hier nun auch schon ausgeredet^^
int main()
{
}
tcc -mt -c test.c
tlink test.obj /n /t
Cannot generate COM file : invalid initial entry point address
CreateFile(myFile,GENERIC_READ or GENERIC_WRITE,FILE_SHARE_WRITE or FILE_SHARE_READ,0,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);
WriteFile(hFile,&DataBuffer[0],dwBytesToWrite,&dwBytesWritten,NULL);
Zum Beschreiben wäre GENERIC_WRITE auch ganz sinnvoll.
CreateFile('\\.\a:',GENERIC_READ,FILE_SHARE_WRITE or FILE_SHARE_READ,nil,OPEN_EXISTING,0,0);
ZitatUnd ich bin auch sicher dass Du es schneller kapierst
Da wäre ich mir jetzt nicht so sicher!
Ok,
könnte mir jemand dann erklären, wie ich das mit DMA mache?
Es kommt jetzt vielleicht ein bisschen doof rüber, aber irgendwie versteh ich weder den Wiki-Artikel, noch mit Google gefundene Seiten.