Ez vajon tényleg lehetséges?
A haverom cégénél a főnökség feldobott 300 rugót, amit az nyer el, aki határidőig, ami egy hét, a legrövidebb működőképes, turing teljes interpretert megírja. Az interpreter nem lehet brainfuck jellegű, csak "rendes", azaz kulcsszavakkal, változó azonosítókkal, elágazás és iteráció lehetőségével kell bírnia és öt matematikai mellett még három logikai operátort is kell kezelnie. A haverom három nap lemaradásból indult mert szabin volt, és megkérdezte, hogy mit kell felülmúlnia. Azt mondták neki, hogy eddig 173 soros a legrövidebb, ami szerintük működik is.
Lehetséges ilyen? 173 sorban megírni egy interpretert, ilyen elvárásokkal?
Matek operátorok, a négy alapművelet plusz modulo.
Logikai, kisebb, nagyobb, egyenlő.
Ezen kívül, turing teljesség, strukturált programozás lehetősége és dinamikus változó kezelés. Ezek a kritériumok.
Osszejott.
Brutto 155, netto 143 sorban, windows alatt 4873 byte meretben, a leirt elvarasoknak megfeleloen.
Egy karakteres valtozo-nevek, de abszolut a hasznalt nyelvre jellemzo formazas, szoval, nem sporoltam a karakterekkel.
A parser is a legegyszerubb. Elofeltetel, hogy a nyelvi elemek kozott legalabb egy space karakternek lennie kell. Az infix matematikai es a logikai kifejezesek pedig csak egy operatort tartalmazhatnak kifejezesenkent, igy aztan zarojelezes nincs es nem is lehet.
A valtozok kezelese viszont statikus, mivel az interpreter elore definialt valtozokkal ("A".."Z") dolgozik ezert nincs szukseg valtozo deklaraciora sem.
Igy lett ekkora, de majd, ha kicsit tobb idom lesz, akkor megirom az interpretert lengyel formara (postfix) is es abban mar nem lesz korlatozva az operatorok szama. A forrast is fellovom majd valahova. Mind a 143 sort. :)
Alkalmazott paradigma: procedural
Hasznalt programnyelv: object pascal
Fordito es verzioszam: freepascal, 3.0
5-os voltam.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!