Skapa ett eget programmerings språk. Hur gör man?

Här diskuteras programmering och utveckling
lord
Inlägg: 573
Blev medlem: 03 okt 2007, 21:08
Ort: Sverige

Skapa ett eget programmerings språk. Hur gör man?

Inlägg av lord »

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.
Användarvisningsbild
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?

Inlägg av DrMegahertz »

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å.
BildAre you shpongled? Bild
lord
Inlägg: 573
Blev medlem: 03 okt 2007, 21:08
Ort: Sverige

SV: Skapa ett eget programmerings språk. Hur gör man?

Inlägg av lord »

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.
Senast redigerad av 1 lord, redigerad totalt 19 gånger.
Användarvisningsbild
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?

Inlägg av DrMegahertz »

BildAre you shpongled? Bild
lord
Inlägg: 573
Blev medlem: 03 okt 2007, 21:08
Ort: Sverige

SV: Skapa ett eget programmerings språk. Hur gör man?

Inlägg av lord »

Tackar :).

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.
Användarvisningsbild
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?

Inlägg av Mekaniserad Apelsin »

Skapa en vm till varje maskintyp där din kod kan köras i. :P
More Mekaniserad at http://blippe.se.
Användarvisningsbild
gasol
Inlägg: 405
Blev medlem: 27 jul 2007, 14:57
Kontakt:

SV: Skapa ett eget programmerings språk. Hur gör man?

Inlägg av gasol »

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å.
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.
Användarvisningsbild
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?

Inlägg av Urban Anjar »

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".
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#
lord
Inlägg: 573
Blev medlem: 03 okt 2007, 21:08
Ort: Sverige

SV: Skapa ett eget programmerings språk. Hur gör man?

Inlägg av lord »

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.
terws
Inlägg: 19
Blev medlem: 10 mar 2007, 15:52
Ort: Linköping
Kontakt:

SV: Skapa ett eget programmerings språk. Hur gör man?

Inlägg av terws »

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.
ddevil
Inlägg: 63
Blev medlem: 08 maj 2007, 20:02
Kontakt:

SV: Skapa ett eget programmerings språk. Hur gör man?

Inlägg av ddevil »

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.
Nej, Java har redan detta.
lord
Inlägg: 573
Blev medlem: 03 okt 2007, 21:08
Ort: Sverige

SV: Skapa ett eget programmerings språk. Hur gör man?

Inlägg av lord »

Ok, det visste jag inte. Trodde att java inte kunde använda OpenGL och sådant  :-\.
ddevil
Inlägg: 63
Blev medlem: 08 maj 2007, 20:02
Kontakt:

SV: Skapa ett eget programmerings språk. Hur gör man?

Inlägg av ddevil »

lord skrev: Ok, det visste jag inte. Trodde att java inte kunde använda OpenGL och sådant  :-\.
Jodå, dom jag känner till är JOGL, LWJGL, JME och Java3D.
Skriv svar

Återgå till "Programmering och webbdesign"