User Tools

Site Tools


projekt:battre-c

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
projekt:battre-c [2014/10/01 16:27] – created martinprojekt:battre-c [2014/10/05 04:57] (current) – [Bjarnis idéer] bjarni
Line 2: Line 2:
  
 ===== Bjarnis idéer ===== ===== Bjarnis idéer =====
 +  * Mer flexibelt typsystem, så att man fritt kan ange egenskaper för typer istället för att vara bunden till en handfull fördefinierade typer som i C.
 +  * Inbyggt stöd för multiple precision-typer.
 +  * Enklare att skapa tillfälliga data som parametrar till funktionsanrop och sedan få dem automatiskt uppstädade efter anropet, i stil med hur det funkar i typiska skriptspråk.
 +  * Nån typ av enkelt arv för struktar kanske vore trevligt?
 +  * Möjlighet att ange i en deklaration var variabeln ska placeras i minnet, för att underlätta åtkomst av hårdvaruregister av olika slag utan att man behöver skapa pekare och dereferera dem eller använda länkskript för att ge variablerna adresser etc.
 +  * Något enkelt sätt att använda carryn vid addition/subtraktion.
 +  * Packning/uppackning, t.ex. för att ta två returvärden från en funktion: ''{foo, bar}=bazfunc();''
 +  * Eventuellt nån typ av tillfälligt-namespace-funktionalitet så att man slipper prefixa en massa namn med namnet på en struktvariabel i en bit av koden där man gör en massa saker med medlemmarna i samma struktvariabel.
 +  * Stöd för parallellisering, t.ex. så att man kan uttrycka addition av elementen i två arrayer utan att skriva det som en loop, och på så vis både göra koden enklare och underlätta för kompilatorn att optimera om det finns t.ex. SSE.
 +  * Nånting relaterat till teckenkodning som gör en glad.
 +  * Nästlade namnrymder för symboler? Kan användas till modulsystem, och kanske till sånt som nästlade funktioner...
 +  * Nästlade funktioner? :)
 +  * Anonyma funktioner?
 +  * ''do-while'' och ''while'' tycker jag ska vara samma sak: ''do stmt while(cond) stmt''
 +  * Ska vi ha nån sorts exceptions?
 +  * Ett stort fett standardbibliotek med alla tänkbara hjälpfunktioner, allihop med vettiga namn. Exempel på saker som passar i ett standarbibliotek: listor, stöd för funktionell programmering (map, zip, osv), dictionaries...
 +  * Gör brejsarna runt funktionskroppar till en del av kropparna, så att en funktionskropp blir ett normalt statement.
 +  * Hum, nån sorts iteratorer? Coroutines, generatorer?
 +  * ''sizeof(funktion)'' ska fungera.
 +  * Trevligt om man kan lägga till medlemmar i enums efter hand:
 +
 +  struct instr{enum INSTR type; char *mnemonic;};
 +  
 +  struct instr instructions[]={
 +    {enum INSTR MOVE, "mov"},
 +    {enum INSTR ADD, "add"},
 +    {enum INSTR SUBTRACT, "sub"}
 +  };
  
 ===== Martins idéer ===== ===== Martins idéer =====
projekt/battre-c.1412173679.txt.gz · Last modified: 2014/10/01 16:27 by martin

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki