Kezdőoldal » Számítástechnika » Programozás » Mennyire nehéz egy parsert...

Mennyire nehéz egy parsert megírni?

Figyelt kérdés
Egy programozási nyelvet szeretnék létre hozni. Ehhez kellene egy olyan rész, ami a forráskódokat feldolgozza. Ezt a részt vajon mennyire nehéz megcsinálni? Sok munka van vele?

jún. 14. 15:52
1 2
 11/20 A kérdező kommentje:
9, azt írod, hogy nem ez a legbonyolultabb rész. Akkor micsoda?
jún. 14. 22:58
 12/20 anonim ***** válasza:
37%

11

Ugyan nem tőlem kérdezed, de pl. OOP paradigma támogatása (polimorfizmus, több szülős öröklés, tartalmazás, stb)

jún. 14. 23:25
Hasznos számodra ez a válasz?
 13/20 anonim ***** válasza:
62%

#11:

Az attól függ, hogy mit is szeretnél a nyelvbe rakni, mivel elég sok problémába bele lehet futni.


Én mostanság C#-ban eventekkel foglalkoztam és azt kellett megoldanom, hogy futás időben tudjak dinamikus paraméterezéssel létrehozni Actiont, feliratkozni egy meglevő eventre (listnerként) és kiváltani az eventet.


Ugye itt assemblyk vannak futásidőben, amikben külön-külön vannak a típusok, azokon belül field, property, method. Erre jönnek még eventek, attribútumok stb.

Ezt mindet szeretem használni, DE C#-ot JS szintax-al is használok, mint script nyelv. Azt egy adott területre, hogy ne kelljen teljes fejlesztőkörnyezet, csak egy sima szövegszerkesztő. Ez a JS-C# cucc nem az alapcsomag része, hanem megírták C#-hoz a JS interpretert. Viszont az utóbbi években a C#-ot is lehet sokkal könnyebben használni, nem "kényszerít" OOP-re, ő a háttérben elrejtve megvalósítja magának amit kell.


Szóval nagyon fontos, hogy a nyelv átlátható, olvasható, könnyen használható, logikus, gyors fordítás-futás garantálva legyen stb. Mellette ugye a szálkezelés, meg 10001 dolog szintén jól legyen implementálva és ne tákolni, hákolni kelljen.


A memory leak és egyéb veszélyekről, bugokról, vagy figyelmetlenségből adódó gondokról ne is beszéljünk. Bár illene, ha nyelvet tervez az ember.

jún. 15. 02:56
Hasznos számodra ez a válasz?
 14/20 A kérdező kommentje:
gondolom senki nem úgy kezdte, hogy egy multiparadigmát támogató programnyelv fordítóját írta meg
jún. 15. 08:32
 15/20 anonim ***** válasza:
79%

Nekünk volt annak idején egy ilyen csoportos feladatunk még egyetemen,hogy ki kellett találni egy egyszerű nyelvet és ahhoz interpretert írni (az valamennyivel egyszerűbb, mint egy fordító), és ehhez sima C-t használhattunk.


Tanulságos feladat volt. És nem volt OOP meg ilyen bonyolítás benne. Egészen összetett feladat. És előre nagyon ki kell találni. Sőt ha jól találod ki akkor az geészet egyszerűbb megírni (ld. pl. a többes jelentésű dolgok, pl. a "a-b" és a "-3" esete a "-" jellel). Ha ügyesen találod ki ezek minimalizálhatóak (sőt akár meg is szüntethetőek egy kis okoskodással). De ez mindent meg kell,hogy előzzőn, hogy ezeket kitalálod. Aztán ha ez ügyesen van kitalálva akkor abból már nem nehéz megírni. Pl. ma már nem divat de pl. egy fordított lengyel megoldás egészen sokat tud segíteni ilyenkor.

jún. 15. 08:58
Hasznos számodra ez a válasz?
 16/20 A kérdező kommentje:
Már kezdek rájönni pár dologra. mondjuk ez még kevés
jún. 17. 08:06
 17/20 anonim ***** válasza:
100%

https://www.youtube.com/playlist?list=PLRAdsfhKI4OWNOSfS7EUu..


Ha megy az angol akkor ez egy nagyon jó tutorial. A tokenizertől a lexeren át a végső compile-ig lefed mindent. Gyakorlatilag végigkövetheted hogyan írja meg a saját compiler-jét és közben kifejtve elmagyaráz mindent.

jún. 19. 13:45
Hasznos számodra ez a válasz?
 18/20 A kérdező kommentje:
köszi
jún. 19. 19:52
 19/20 Tatyó ***** válasza:

tessék:


[link]

jún. 21. 13:51
Hasznos számodra ez a válasz?
 20/20 Tatyó ***** válasza:
Bocsánat, ez mellé ment. Több ablak volt nyitva, és elnéztem.
jún. 21. 13:52
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!