Glang - eksperymentalny język programowania

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
Wczesniej był artykuł na temat własnego języka programowania a teraz przedstawiam intereter i kompilator tego języka (bardzo wzbogacony)

Język przypomina swoją składnią asma , ale IMO składnia jest duzo prostsza , jest to póki co eksperymentalny projekt ale może w przyszłości powstanie z niego coś lepszego
smile.gif

Całość jest opisana szczegółowo w dokumentacji , wszelkie pytania można zadawać na forum
Posiada opcje interpretowania kodu i kompilacji do exe(działa bardziej jak Java a nie jak gcc ,ale jest szybszy od javy)

W paczce jest:
kompilator
dokumentacja
przykładowe kody

LINK
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
mógłbym
smile.gif
mozliwe że za w najbliższym czasie to zrobie
smile.gif

kod nie wyglada zbyt przejrzyście ...ale działa
smile.gif


//jesli chodzi o kompilacje do exe to poprostu ladowany jest kod jako zasob do binarki ktora go zinterpretuje i wykona
<
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
Prosze oto źródła
smile.gif

Nie są może najwyższych lotów ale działają
<


Nie dołączałem juz pliku zasobow bo to 1 linijka kodu
Nie dołączałęm też kodu "stuba do kompilacji" bo to ten sam kod różniący się tylko tym ze zamiast funkcji compile ma decompile
<


Źródła

//czasem moga sie zdazyc kawalki kodu zakomentowane ktorych nie usunolem ale wybaczcie te niedogodnosci
<
 

adikx

Użytkownik
Dołączył
Maj 21, 2007
Posty
415
Takie pytanie. Jak porównałeś ,że "Glang" jest bardziej wydajny od Javy?
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
hello world nie zajmuje 8 mb
smile.gif
//joke

Kod wykonujacy jest napisany w C++ i jest dosc szybki , skladnia jest prosta ale może przygotuje jakis benchmark i przedstawie wyniki
 

adikx

Użytkownik
Dołączył
Maj 21, 2007
Posty
415
Jestem ciekaw co by było gdyby w "Glangu" były takie klasy i funkcje. Wtedy parsowanie kodu by inaczej wyglądało.
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
no ofc , ale to nie jest Java i jak pisze wyzej to bardziej eksperymentalny twór. Majać do wyboru pisanie programu w Javie albo w Glangu napewno wybrałbym Jave ze względu na łatwość i wlasnie "takie funkcje i klasy". Nie mam zamiaru przyćmić Javy Glangiem ale pokazac że też mozna napisac cos w deseń języka programowania. Nie mam zamiaru udowadniać ze Glang jest lepszy od Javy ... bo nie jest
smile.gif
chodziło mi tylko o pokazanie w jaki sposob kod jest "kompilowany" podobnie jak w Javie.
 

adikx

Użytkownik
Dołączył
Maj 21, 2007
Posty
415
Pomyśl jeszcze nad interpretatorem do serwera apache. Coś na wzór php. Dzięki temu można by swój serwer o duże możliwości poszerzyć.
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
narazie pracuje nad lepszym sposobem interpretacji niż ten ktory tu jest "na sztywno" zeby był bardziej elastyczny i umożliwiał bardziej złożone kombinacje polecen

//Tak BTW. to unowoczesniłem zrodelka i sam program , uaktualnilem dokumentacje itp i jest to pod tymi samymi linkami co wyzej
smile.gif
 

shoock12

Użytkownik
Dołączył
Styczeń 24, 2009
Posty
123
Nawet fajne. Też kiedyś pisałem kompilator, w delphi. Tylko, że mój normalnie generował plik *.com, a nie podczepiał kod.
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
hmm wlasnie dzis widzialem http://www.haker.com.pl/index.php?showtopic=45061
i ze sobie pozwole zacytowac
Otóż piszę kompilator. Robię to tak, że podczepiam kod źródłowy pod plik .exe i on go intepretuje. Kod źródłowy tego oryginalnego exe-ka:[/b]
smile.gif


BTW. mozna tez kod przekszatlcic do postaci kodu posredniego tak jak to robi java czy .Net ale tutaj juz sie z tym nie bawilem tylko normalny kod wrzucilem
 

shoock12

Użytkownik
Dołączył
Styczeń 24, 2009
Posty
123

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
no fajnie
smile.gif

niezle ale w twoim przypadku nie jest az taki duzy problem zrobic plik .com bo jak sam wiesz musisz obsluzyc tylko wyswietlanie tekstu i pause ale mimo to fajne
smile.gif
 

shoock12

Użytkownik
Dołączył
Styczeń 24, 2009
Posty
123
<div class='quotetop'>CYTAT(grzonu @ 6.06.2009, 13:49) <{POST_SNAPBACK}></div>
no fajnie
smile.gif

niezle ale w twoim przypadku nie jest az taki duzy problem zrobic plik .com bo jak sam wiesz musisz obsluzyc tylko wyswietlanie tekstu i pause ale mimo to fajne
smile.gif
[/b]
Można dużo więcej napisać w tym moim języku. Można użyć funkcji mov. Przykładowe użycie
Kod:
mov B4
mov 07
mov CD
mov 21
oczekuje na wciśnięcie klawisza. Ale żeby np. wyświetlić Hello World, to już trzeba bardzo dużo tego "mov".
Kod wyświtlający Hello World. Zapisany przy użyciu instrukcji "mov".
Kod:
start Untitled
mov B4
mov 0E
mov B0
mov 00
mov B7
mov 00
mov B3
mov 02
mov CD
mov 10
mov B4
mov 0E
mov B0
mov 48
mov B7
mov 00
mov B3
mov 02
mov CD
mov 10
mov B4
mov 0E
mov B0
mov 65
mov B7
mov 00
mov B3
mov 02
mov CD
mov 10
mov B4
mov 0E
mov B0
mov 6C
mov B7
mov 00
mov B3
mov 02
mov CD
mov 10
mov B4
mov 0E
mov B0
mov 6C
mov B7
mov 00
mov B3
mov 02
mov CD
mov 10
mov B4
mov 0E
mov B0
mov 6F
mov B7
mov 00
mov B3
mov 02
mov CD
mov 10
mov B4
mov 0E
mov B0
mov 20
mov B7
mov 00
mov B3
mov 02
mov CD
mov 10
mov B4
mov 0E
mov B0
mov 57
mov B7
mov 00
mov B3
mov 02
mov CD
mov 10
mov B4
mov 0E
mov B0
mov 6F
mov B7
mov 00
mov B3
mov 02
mov CD
mov 10
mov B4
mov 0E
mov B0
mov 72
mov B7
mov 00
mov B3
mov 02
mov CD
mov 10
mov B4
mov 0E
mov B0
mov 6C
mov B7
mov 00
mov B3
mov 02
mov CD
mov 10
mov B4
mov 0E
mov B0
mov 64
mov B7
mov 00
mov B3
mov 02
mov CD
mov 10
end;
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
wiem ze istnieje mov ale watpie zeby komukolwiek chcialo sie stukac ten kod w hexach
smile.gif
duzo wygodniejsze jest napisanie tego w hexedytorze bo nie trzeba poprzedzac mov (4 znaki mniej)
 

shoock12

Użytkownik
Dołączył
Styczeń 24, 2009
Posty
123
Ja znowu zmieniłem swój kompilator. Dodałem trzy polecenia. I udało mi się zrobić, żeby generowało plik .exe(MZ – używany w DOS-ie.). Ale pod windows XP działa. Teraz można kompilować pod format *.com i *.exe.
 

glukoza

Użytkownik
Dołączył
Luty 6, 2009
Posty
8
Wszystko fajnie tylko po co to komu ? Chyba pomyliles jezyk kompilowany z jezykiem skryptowym, bo tak sie to w rzeczywistosci nazywa. Wpisz sobie w Wikipedii, co to jest kompilator to moze zrozumiesz. Nawiasem mowiac nie sadze zeby cokolwiek bylo z tego projektu, po co robic klon asemblera, z 1% jego mozliwosci. Sam kod piszesz paskudny, niezrozumialy, bez jakiejkolwiek uzytecznej funkcjonalnosci. Od razu widac poczatkujacego programiste. Zacznij moze od prostrzych projektow (saper, gra w statki, kalkulator)
 

grzonu

Były Moderator
Dołączył
Grudzień 26, 2006
Posty
1390
a po co komu brainfuck albo Malbolge ??
 

thc_flow

Zbanowany
Dołączył
Listopad 13, 2008
Posty
649
Takie rzeczy się robi dla zabawy, sprawdzenia swoich umiejętności i douczenia się czegoś więcej, tak samo jak tworzenie własnego OS'a, ciekawa zabawa. A jeżeli @gluk0za twierdzi, że shoock jest kiepskim programistą no to gratuluję i czekam na demko jego projektów... oczywiście z sourcem żeby nie było z gotowca z 4programmers ;P
 
Do góry Bottom