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]
martin created
projekt:battre-c [2014/10/05 04:57] (current)
bjarni [Bjarnis idéer]
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