Skapa ett eget programmerings språk. Hur gör man?
Skapa ett eget programmerings språk. Hur gör man?
Hejsan.
Jag fick en idé för ett tag sedan om hur man kan skapa ett eget programmerings språk som är helt plattformsoberoende. Själva tanken var att ha ett språk som utan problem kan portas mellan olika plattformar (i detta fall huvudsakligen windows och ubuntu), och att man kan göra det utan att behöva ändra något i koden över huvud taget, även om det rör sig om 3d progrmmering. Idéen hur det skulle kunna gå till finns i mitt huvud, och jag har bestämt mig för att göra det. Men frågan är bara hur... har aldrig skapat något liknande tidigare. Har aldrig programmerat ett programmerinsspråk tidigare över huvud taget, så jag kan behöva hjälp. Själva idéen är enkel. Språket kompilerar till bytecode, som sedan använder en egen api. Och notera att jag inte har någon som helst kunskap i C eller C++. Jag kan ett språk som kallas Dark Basic Professional, men eftersom det är gjort för spelprogrammering och endast fungerar till windows, så tror jag inte att det skulle fungera så bra. Sedan kan jag lite java och medelmåttigt mycket C#.
Vart ska jag börja?
Bästa hälsningar,
lord.
Jag fick en idé för ett tag sedan om hur man kan skapa ett eget programmerings språk som är helt plattformsoberoende. Själva tanken var att ha ett språk som utan problem kan portas mellan olika plattformar (i detta fall huvudsakligen windows och ubuntu), och att man kan göra det utan att behöva ändra något i koden över huvud taget, även om det rör sig om 3d progrmmering. Idéen hur det skulle kunna gå till finns i mitt huvud, och jag har bestämt mig för att göra det. Men frågan är bara hur... har aldrig skapat något liknande tidigare. Har aldrig programmerat ett programmerinsspråk tidigare över huvud taget, så jag kan behöva hjälp. Själva idéen är enkel. Språket kompilerar till bytecode, som sedan använder en egen api. Och notera att jag inte har någon som helst kunskap i C eller C++. Jag kan ett språk som kallas Dark Basic Professional, men eftersom det är gjort för spelprogrammering och endast fungerar till windows, så tror jag inte att det skulle fungera så bra. Sedan kan jag lite java och medelmåttigt mycket C#.
Vart ska jag börja?
Bästa hälsningar,
lord.
- DrMegahertz
- Inlägg: 296
- Blev medlem: 06 maj 2006, 14:37
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Södra Dalarna
SV: Skapa ett eget programmerings språk. Hur gör man?
Ptja, det är ju inget litet projekt du har lagt upp framför dig direkt. Att skriva ett eget litet språk kräver att du har stor kunskap inom både programmering och om hur datorer fungerar på ganska låg nivå.
En bra början kan ju vara att kolla lite på hur andra skriptspråk har implementerats, tex Python eller Lua. Tror även att det finns några guider på gamedev.net där man går igenom hur man skapar små, assemblerliknande skriptspråk, vilket borde vara ett bra sätt att komma igång på.
En bra början kan ju vara att kolla lite på hur andra skriptspråk har implementerats, tex Python eller Lua. Tror även att det finns några guider på gamedev.net där man går igenom hur man skapar små, assemblerliknande skriptspråk, vilket borde vara ett bra sätt att komma igång på.


SV: Skapa ett eget programmerings språk. Hur gör man?
Att det är stort avskräcker mig inte. Någon länk?
EDIT:
Och notera att jag först kommer att skapa en assembler simulator (inte en funktionell sådan, utan en med pedagogiskt syfte) i java. Den kommer involvera en enkel kompilator och virtuell maskin. Som sagt får den bli det första steget.
EDIT:
Och notera att jag först kommer att skapa en assembler simulator (inte en funktionell sådan, utan en med pedagogiskt syfte) i java. Den kommer involvera en enkel kompilator och virtuell maskin. Som sagt får den bli det första steget.
Senast redigerad av 1 lord, redigerad totalt 19 gånger.
- DrMegahertz
- Inlägg: 296
- Blev medlem: 06 maj 2006, 14:37
- OS: Ubuntu
- Utgåva: 14.04 Trusty Tahr LTS
- Ort: Södra Dalarna
SV: Skapa ett eget programmerings språk. Hur gör man?


SV: Skapa ett eget programmerings språk. Hur gör man?
Tackar
.
EDIT:
Verkar vara en bra resurs. Någon som har en annan (kan vara bra med flera)?

EDIT:
Verkar vara en bra resurs. Någon som har en annan (kan vara bra med flera)?
Senast redigerad av 1 lord, redigerad totalt 19 gånger.
- Mekaniserad Apelsin
- Hedersmedlem
- Inlägg: 3777
- Blev medlem: 27 maj 2006, 12:24
- OS: Ubuntu
- Ort: Stockholm
- Kontakt:
SV: Skapa ett eget programmerings språk. Hur gör man?
Skapa en vm till varje maskintyp där din kod kan köras i. 

More Mekaniserad at http://blippe.se.
SV: Skapa ett eget programmerings språk. Hur gör man?
Om du nu kommer att göra det här gigantiska projektet så skulle jag råda dig till att första, designa spårket, bestäm vilken sorts språk det ska vara, objekt orienterat? imperativt? eller funktionellt? Dynamisk vs statisk typning, vilket scope på dina variabler du vill ha.
Sedan så bör du bestämma / skapa syntaxen till ditt språk, ett tips kan vara att kolla på extended backus naur form.
http://en.wikipedia.org/wiki/Extended_Backus-Naur_form
Sedan så får du väl skriva en kompilator och en tolk till alla plattformer du vill kunna köra din kod på.
Sedan så bör du bestämma / skapa syntaxen till ditt språk, ett tips kan vara att kolla på extended backus naur form.
http://en.wikipedia.org/wiki/Extended_Backus-Naur_form
Sedan så får du väl skriva en kompilator och en tolk till alla plattformer du vill kunna köra din kod på.
The Black Mountain Scorpion Hoedown Bluegrass Experience Gang
From Left to Right: Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle.
From Left to Right: Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle, Wizard on Bicycle.
- Urban Anjar
- Inlägg: 7306
- Blev medlem: 05 nov 2006, 22:59
- OS: Ubuntu
- Utgåva: 22.10 Kinetic Kudu
- Ort: Vickleby
- Kontakt:
SV: Skapa ett eget programmerings språk. Hur gör man?
Nu finns det väl en del språk som är mer eller mindre plattformsoberoende -- i alla fall om man gör rätt och inte väljer systemberoende tillägg av olika slag. Java, python, C# kommer upp ut minnet, men det finns säkert fler -- och det finns säkert begränsningar hos de nämnda.
En bra idé är nog att kolla på vad som finns för att kunna göra någonting bättre. Kanske kan det inte bli bättre på ALLT, men gör du till exempel någonting som är nischat mot exempelvis 3D, så kanske det räcker för att bygga en community runt det.
Se'n börjar många stora projekt med någonting väldigt litet. Linuxkärnan lär ha börjat som ett program som kunde skriva ABAAABBAABAAABBBB på skärmen...
Se'n är väl 3D på Windows mest DirectX och på *nix i huvudsak OpenGL, även om väl OpenGL också funkar i Windows. Frågan är hur man tråcklar ihop det...
Btw glöm inte "some fruit company".
En bra idé är nog att kolla på vad som finns för att kunna göra någonting bättre. Kanske kan det inte bli bättre på ALLT, men gör du till exempel någonting som är nischat mot exempelvis 3D, så kanske det räcker för att bygga en community runt det.
Se'n börjar många stora projekt med någonting väldigt litet. Linuxkärnan lär ha börjat som ett program som kunde skriva ABAAABBAABAAABBBB på skärmen...
Se'n är väl 3D på Windows mest DirectX och på *nix i huvudsak OpenGL, även om väl OpenGL också funkar i Windows. Frågan är hur man tråcklar ihop det...
Btw glöm inte "some fruit company".
Ubuntu från början: http://ubuntufranborjan.wordpress.com/
Vill påminna om den här lilla filmen http://video.google.com/videoplay?docid ... 522818645#
Vill påminna om den här lilla filmen http://video.google.com/videoplay?docid ... 522818645#
SV: Skapa ett eget programmerings språk. Hur gör man?
Hur språker kommer se ut (objektorienterat, funktionellt och så) vet jag egentligen bara en sak Det kommer inte att vara deklarativt. Sedan krävs mer planering. Tänkte dela upp mina steg till språket så här:
Bygga en assembler simulator i java.
Skapa ett enkelt, imperativt scripting språk, förmodligen i java.
Skapa själva språket.
Tror att det kommer att bli objektorienterat. Kanske. Har aldrig kodat funktionellt, så jag vet inte vilket som passar min idé bäst.
Och sedan kommer det att finnas en skillnad till andra plattforms oberoende språk. Allt kommer att bygga på att språket ska vara plattformsoberoende. Allt. Till och med 3d grafik och sådant. Detta för att det ska gå att bygga program för en plattform och utan svåriget porta det till en annan plattform.
Bygga en assembler simulator i java.
Skapa ett enkelt, imperativt scripting språk, förmodligen i java.
Skapa själva språket.
Tror att det kommer att bli objektorienterat. Kanske. Har aldrig kodat funktionellt, så jag vet inte vilket som passar min idé bäst.
Och sedan kommer det att finnas en skillnad till andra plattforms oberoende språk. Allt kommer att bygga på att språket ska vara plattformsoberoende. Allt. Till och med 3d grafik och sådant. Detta för att det ska gå att bygga program för en plattform och utan svåriget porta det till en annan plattform.
SV: Skapa ett eget programmerings språk. Hur gör man?
En bra början är en bra bok, Dragon Book,http://en.wikipedia.org/wiki/Dragon_book ,är en klassiker och finns i diverse utgåvor...
Det finns massor andra böcker om kompilatorer och kodgenering, och det finns en hel del verktyg, tex bison och flex, som automatiserar arbetet.
Något som verkar intressant är antlr, http://www.antlr.org/ som jag tyvärr inte har någon erfarenhet av.
Det finns massor andra böcker om kompilatorer och kodgenering, och det finns en hel del verktyg, tex bison och flex, som automatiserar arbetet.
Något som verkar intressant är antlr, http://www.antlr.org/ som jag tyvärr inte har någon erfarenhet av.
SV: Skapa ett eget programmerings språk. Hur gör man?
Nej, Java har redan detta.lord skrev: Och sedan kommer det att finnas en skillnad till andra plattforms oberoende språk. Allt kommer att bygga på att språket ska vara plattformsoberoende. Allt. Till och med 3d grafik och sådant. Detta för att det ska gå att bygga program för en plattform och utan svåriget porta det till en annan plattform.
JABBER: MasterExploder@jabber.se
SV: Skapa ett eget programmerings språk. Hur gör man?
Ok, det visste jag inte. Trodde att java inte kunde använda OpenGL och sådant
.

SV: Skapa ett eget programmerings språk. Hur gör man?
Jodå, dom jag känner till är JOGL, LWJGL, JME och Java3D.lord skrev: Ok, det visste jag inte. Trodde att java inte kunde använda OpenGL och sådant.
JABBER: MasterExploder@jabber.se