[ nekicneko90 @ 05.03.2014. 18:52 ] @
Programiram već duže vreme (3-4 godine) i došao sam na ideju da napišem programski jezik.

Mislio sam da to bude "mali" jezik, sa nekim osnovnim naredbama. Ništa preterano.


Kompajler bih pisao u Pascal-u, a okruženje u Delphi-ju, za sada samo za konzole, a posle bih ga možda nadogradio.




Želeo bih da pitam da li je to moguće i koliko je teško? Gde bih mogao da nađem literaturu (srpski) i da li bi neko mogao ukratko da opiše postupak?

Unapred hvala.


P.S. Već neko vreme razmišljam o pisanju jezika/kompajlera pa sam sada konačno odlučio da pokušam.
[ abitbp6_ @ 05.03.2014. 22:57 ] @
Vrlo grubo, to se danas radi u dva sloja, u literaturi poznati kao frontend i backend.

Frontend sadrži parser i lekser i bavi se sintaksom i semantikom tvog jezika i prevodi ga u neki posrednički jezik.
Backend ovaj posrednički jezik pretvara u instrukcije za ciljanu platformu.

Tako, teorijski, možeš da zameniš frontend i uvedeš potpuno novu sintaksu, bez promene backenda.
Ili da zameniš backend, i podržiš različite platforme, npr x86, arm, mips...

Naravno, tu ima još gomila stvari, poput optimizacije, omogućavanje debagovanja, upravljanje memorijom, itd...

Delphi nije najbolji alat za to, jer postoje alati koji ti omogućavaju da neke od ovih stvari završiš veoma jednostavno, a pre svih flex i bison.

Da bi dobio neki osećaj o čemu se ovde radi, možeš početi odavde:
http://www.acs.uns.ac.rs/sr/node/237/1430007

Na ovom kursu se pravi programski jezik koji liči na C.

NetBeans sa C/C++ podrškom podržava Flex/Bison projekte, tako da možeš da koristiš njega za udoban razvoj.
[ nekicneko90 @ 06.03.2014. 10:09 ] @
Pogledaću link pa ću javiti kako ide.

U Delphi-ju nisam mislio da pišem jezik već razvojno okružeje (editor). Jezik i kompajler sam mislio da pišem u Pascal-u.
[ nekicneko90 @ 06.03.2014. 19:39 ] @
Poskidao sam pdf-ove sa sajta i počeo da ih čitam. Imam instaliran NetBeans (kada sam radio Javu), ali iako sam slinuo full verziju i čekirao sve prilikom instalacije nemam podršku za cpp (i za javaMe sam morao posebno da instaliram). Da li bi neko mogao da mi objasni kako da dodam podešku za cpp, kao i za flex & bisop.

Unapred hvala.
[ Burgos @ 06.03.2014. 19:59 ] @
Za jflex pogledaj ovde odeljak Video tutorijali:

http://ir4pp1.etf.rs/Domaci.html
[ nekicneko90 @ 06.03.2014. 20:23 ] @
Hvala, ali meni treba flex za c, a koliko sam ja video jfilex je za javu.
[ abitbp6_ @ 07.03.2014. 01:04 ] @
Instaliraj C/C++ plugin, vidi na Internetu kako.
Bison/Flex primer je pod New Project / Samples / C/C++.
[ Rapaic Rajko @ 07.03.2014. 10:51 ] @
Hehe, pa izabra bas pascal..?

A inace, i neki (stariji) operativni sistemi su pisani u pascal-u.

Pozz
[ komplikator @ 07.03.2014. 15:13 ] @
Zanimnjivo, imam upravo okruglo desetorostruko više staža u programiranju od tebe (a i kolege) pa mi nije pala takva želja na pamet :)

Možda te ovo zadovoljava, pogledaj ovo: http://www.fast-report.com/en/product/fast-script/ ukoliko ti je ideja samo u neki svoj program uglaviti neki oblik evoluacije scripte ili sl.
Nešto slično je mislim bilo u JediVCL no napustio sam taj lib nakon D7 pa više nisam siguran.
[ reiser @ 07.03.2014. 15:28 ] @
Let's Build a Compiler
[ jablan @ 07.03.2014. 15:37 ] @
Preambiciozan ti je plan.

Batali GUI i editore i napiši samo kompajler. Ustvari batali kompajler i napiši interpreter. Za neki postojeći jezik. Npr. neki podskup LISP-a.

Zašto? Zato što se naučiti LISP isplati. A ovako skraćen zadatak možda i ima šanse da uradiš.

Evo Piter Norvig je to uradio u 200-tinak linija Pajtona:

http://norvig.com/lispy.html
[ nekicneko90 @ 07.03.2014. 16:18 ] @
Mislio sam da prvo napravim kompajler za miciC po pdf-u. Za početak me samo interesuje kako da skinem i instaliram flex i bisop. Odlučio sam da koristim c u kombinaciji sa flex-om i bisop-op, bar za početak.

Veliko hvala.

P.S. I ja sam skoro došao na tu ideju. Cilj mi je da napravim "mali" jezik koji će pre svega biti logičan i matematički korektan. Možda mi fali iskustva, imam tek 15 godin i programiram od 6 razred OS, sada sam 1 srednje, ali mislim da u bih mogao da pokušam. Ne garantujem da ću uspeti, ali ću bar naučiti nešto novo ("ko reskira profitira" ).
[ abitbp6_ @ 07.03.2014. 22:55 ] @
Najjednostavnije je da sve radiš na Linuksu, možeš da napraviš virtuelnu mašinu, staviš Ubuntu na nju i to je to.
Ako ipak hoćeš da radiš na Windows-u, instaliraj Cygwin, pri instalaciji izaberi flex i bison i to je to.
Kompajler iz Cygwin-a dodaj u NetBeans i možeš da počneš.
[ nekicneko90 @ 08.03.2014. 10:21 ] @
Da li postiji neko offline installer za Cygwin. Pošto mi na kompu trenutno ne radi net.
[ abitbp6_ @ 09.03.2014. 18:44 ] @
Postoji, ali ti opet treba net, za prvi download.

http://systemadmintricks.blogs...install-cygwin-offline-in.html
[ nekicneko90 @ 09.03.2014. 21:29 ] @
Hvala, najverovatnije ću ga skinuti do srede, pa tada krećem.