[elektro] fordító

Abraham Gabor abraham at plus7.hu
Mon Dec 12 11:23:40 CET 2011


> Helló!
>
> Én is szemezgettem már ezekkel, mindig mikor rátalálok elcsodálkozom, hogy
> "basszus, de frankó compilert lehetne ezzel csinálni", de még
> sose jutottam
> el odáig, hogy szükség lett volna rájuk, mindig meg lehetett oldani
> Pythonból/perlből. Csinált már valaki lex/yacc-al működő valamit? Annyira
> érdekelne egy gyakorlati példa, amit nem lehet megcsinálni vmi scriptbe.

Én már csináltam. Az egyik egy protokoll visszafejtő volt, a másik egy
parancsértelmező.

Mindent meg lehet sokféle módon írni. Nekem kényelmes volt,
hogy egy kicsit bővített, de C struktúra szerű leírással megadtam egy
tetszőleges protokoll csomgjait és lett belőle egy C program, ami azt
vissza tudja fejteni egy felvett LAN forgalomból. (A Wireshark szebben
csinálja, de akkor még nem volt.)

Én tanultam BNF-et, nekem kényelmes így leírni valamit a
Python/perl viszont nem áll kézre.

Parancs értelmezőt is sokféle képpen lehet írni, ez könnyen
módosítható, bővíthető. Definiálod a parancsokat, a lex/yacc csinált egy
C forrást, az beforul egy programba és ott feldolgozza a beolvasott sorokat.
Ezt hogy csinálod meg Python/perl-ben?

Gábor



>
> Üdv
>
> 2011. december 11. 21:06 SZIGETI Szabolcs írta, <szigi at ik.bme.hu>:
>
> >
> > Hali!
> >
> > Ami neked kell: lex és yacc (avagy flex és bison, a GNU-tól). Még az is
> > lehet, hogy a lex elegendő a te feladatodhoz. Kicsit bele kell rázódni a
> > használatukba, de félelmetesen hatékony eszközök tudnak lenni.
> >
> > Szabolcs
> >
> > ----- Eredeti üzenet -----
> > From: Sztrikó János
> > Sent: Sunday, December 11, 2011 5:28 PM
> > To: elektro at tesla.hu
> > Subject: [elektro] fordító
> >
> > Sziasztok!
> >
> > Ráérő időmben (ami alig van) pofozgatom a PLC-met. Szépen működik,
> > lassan készül alá a vas is. A probléma: kellene egy fordító, ami az
> > utasításlistát (kb. assembly) gépi kóddá alakítja. Írtam egyet (a
> > string.h/strtok felhasználásával), ami működik is, de érzem, hogy nem ez
> > az igazi, hiszen erre már vannak jól kitalált eszközök-programok. A
> > google a "compiler compiler" keresésre ad 458000 találatot, de mindenki
> > magas szintű fordítót akar csinálni velük, ilyen egyszerűre nem találok
> > példát.
> > Tudnátok javasolni valami alkalmas programcsomagot?
> >
> > Ilyesmi kell:
> >
> > LD 10.0    ->   0x20 0x10 0x00
> > OR 5.1     ->   0x30 0x05 0x01
> > OUT 100.8  ->   0x40 0x64 0x08
> >
> > (fiktív utasításkódok, de ez most lényegtelen)
> >
> > Köszönöm a segítséget!
> >
> > SzJ
> >
> > -----------------------------------------
> >          elektro[-flame|-etc]
> >
> > -----------------------------------------
> >          elektro[-flame|-etc]
> -----------------------------------------
>           elektro[-flame|-etc]
>
> -----
> A(z)  üzenetben nem található vírus.
> Ellenőrizte: AVG - www.avg.com
> Verzió: 10.0.1415 / Vírus adatbázis: 2102/4069 - Kiadás dátuma:
> 2011. 12. 09.



More information about the Elektro mailing list