Chciałbym stworzyć dla zabawy swój język programowania. Domyślam się, że to trudne (nawet bardzo). Domyślam się, że mnie wyśmiejecie. Wydaje mi się jednak, że nawet niepowodzenia w takim temacie mogłyby mnie wiele nauczyć. Chciałbym wykorzystać gotową platformę JVM ;P
Możecie polecić jakieś artykuły na ten temat? Robił ktoś z Was coś takiego?
http://4programmers.net/Forum/search.php?q=w%C5%82asny+j%C4%99zyk+programowania&t=AND&a=&f[]=15&f[]=26&f[]=1&f[]=2&f[]=24&f[]=25&f[]=3&f[]=27&f[]=4&f[]=5&f[]=6&f[]=7&f[]=23&f[]=8&f[]=9&f[]=31&f[]=10&f[]=28&f[]=11&f[]=22&f[]=29&f[]=13&f[]=14&mode=topic&sort=id&order=DESC&o=text&limit=0 jak rozumiem przejrzałeś już to?
Noo tak
Najpierw musisz kod sparsować. Potrzebny jest do tego generator parserów LALR (http://en.wikipedia.org/wiki/LALR_parser)
np. CUP http://www2.cs.tum.edu/projects/cup/
Następnie skompiluj swój kod do jasmina. To taki assembler dla JRE.
http://jasmin.sourceforge.net/
Jeżeli chcesz stworzyć język dynamicznie typowany, to zobacz, jak to zostało zrobione w Groovym i JRubym.
Jeżeli znasz podstawy teoretyczne, to napisanie kompilatora prostego języka (funkcje, if'y, for'y, zmienne lokalne) to tylko parę dni pracy.
Jeżeli język ma być podobny do Javy, a zmieniać chcesz tylko słowa kluczowe/składnię, to możesz przetłumaczyć kod swojego programu na kod Javy, a dopiero potem ten skompilować javac'em to bajtkodu.
Wtedy i tak trzeba będzie zrobić parser.
donkey7 napisał(a)
Wtedy i tak trzeba będzie zrobić parser.
Ba, ale można sobie darować jasmina/bajtkod.