ďťż

Ładny brzuch

Może i jestem zdeka szalony, ale chciałbym napisać prościutki kompilator jakiegoś języka w Delphi. Na początek wystarczy mi jak będzie obługiwał takie funkcje: echo(text) ktora wyswietli tekst i exit, ktory zamknie program. Możecie mi powiedzieć jak się do tego zabrać, podać jakieś kody, itp?




Może i jestem zdeka szalony, ale chciałbym napisać prościutki kompilator jakiegoś języka w Delphi. Na początek wystarczy mi jak będzie obługiwał takie funkcje: echo(text) ktora wyswietli tekst i exit, ktory zamknie program. Możecie mi powiedzieć jak się do tego zabrać, podać jakieś kody, itp? To zdecyduj sie moze co chcesz pisac. Bo to co napisales to nic wiecej jak parser komend (5 min roboty).
Zeby cos bylo "jezykiem" to nalezy sie skoncentrowac na mechanizmach a nie na konkretnych funkcjach.
Lepiej zaimplementuj petle, instrukcje warunkowe i tworzenie funkcji ;p. Wtedy bedzie to namiastka jezyka.

Możecie mi powiedzieć jak się do tego zabrać, podać jakieś kody, itp? Rozumiem, ze to dowcip ?. Bo jak nie to odpusc sobie i naucz sie najpierw programowac.
Użytkownik st3tc edytował ten post 29 lipiec 2005, 08:17

To zdecyduj sie moze co chcesz pisac. Bo to co napisales to nic wiecej jak parser komend (5 min roboty).
Zeby cos bylo "jezykiem" to nalezy sie skoncentrowac na mechanizmach a nie na konkretnych funkcjach.
Lepiej zaimplementuj petle, instrukcje warunkowe i tworzenie funkcji ;p. Wtedy bedzie to namiastka jezyka.

Rozumiem, ze to dowcip ?. Bo jak nie to odpusc sobie i naucz sie najpierw programowac.

Taka dobra rada - nie bierz się za to jak nie znasz SWOJEGO jezyka w 100%. By napisać lekser, linker i jeszcze pare bzdetow trzeba miec spora wiedze oraz umieć ASM, bo i tak do tego wszystkie kompilatory sprowadzają kod, by później zmontować exe w binariach.

Zastanów się jeszcze 3 razy czy jesteś w stanie i czy w ogóle potrafisz coś takiego napisać.




Taka dobra rada - nie bierz się za to jak nie znasz SWOJEGO jezyka w 100%. By napisać lekser, linker i jeszcze pare bzdetow trzeba miec spora wiedze oraz umieć ASM, bo i tak do tego wszystkie kompilatory sprowadzają kod, by później zmontować exe w binariach.

Zastanów się jeszcze 3 razy czy jesteś w stanie i czy w ogóle potrafisz coś takiego napisać.

W Delphi ciężko byłoby coś takiego napisać. Większość tego typu rzeczy powstaje w oparciu o język niskiego poziomu typu Assembler. Większość języków programistycznych powstaje w cholernie trudnym języku programistycznym jakim jest Lips.


W Delphi ciężko byłoby coś takiego napisać. Większość tego typu rzeczy powstaje w oparciu o język niskiego poziomu typu Assembler. Większość języków programistycznych powstaje w cholernie trudnym języku programistycznym jakim jest Lips.

Eh... lolki kompilatorow sie nie pisze w ASM :P. Najczesciej w C++ + pomoce w rodzaju generatorow parserow/lexerow. ASM to co najwyzej do optymalizacji lowlevel maszyny wirtualnej ktora to potem bedzie wykonywac (autor nie mowil nic ze bedzie kompilowal do x86, x64 czy IA64)


W Delphi ciężko byłoby coś takiego napisać. Większość tego typu rzeczy powstaje w oparciu o język niskiego poziomu typu Assembler. Większość języków programistycznych powstaje w cholernie trudnym języku programistycznym jakim jest Lips.


Chyba miałeś na myśli kompilator.
Kamil Wajda: jeśli nie znasz assemblera i chcesz pisać to coś w języku wysokiego poziomu to lepiej będzie jak napiszesz interpreter. Nie będzie on zbyt wydajny, ale może przynajmniej czegoś się nauczysz. Jeśli nadal nie wiesz jak to zrobić to nikt ci juz nie pomoże.


...

Racja :)


A interpreter to coś w rodzaju prostego kompilatora czy co?


Interpreter wykonuje kod bez pośrednio (tzn. na podstawie kodu wykonuje odpowiednie operacje). Kompilator kompiluje kod źródłowy do kodu maszynowego. Kod maszynowy jest to kod rozumiany przez procesor (są to instrukcje dla procesora).


A taki interpreter potrafi wygenerować plik exe? W czym on jest gorszy od kompilatora? Jak go napisać? Wiesz co ?. Nie obraz sie - ale www.google.pl. Wroc z pytaniami jak zdobedziesz podstawy bo tak to jest **TYLKO I WYLACZNIE** topick do nabijania postow.

Jest taki fajny kurs pisania kompilatora w Pascalu, po angielsku co prawda, nie pamietam adresu, Poszukaj na googlach. Jesli przeczytasz caly kurs, bedziesz wiedzail, ze kompilator to nie program Hello World. ;)

Może przestudiuj sobie TE źródełka i się jeszcze raz zastanów :P
Użytkownik Cyrkiel edytował ten post 29 lipiec 2005, 12:07
pozwole sobie tak to podsumowac... przychodzisz, zadajesz pytanie jak napisac costam... (pisze costam bo sam chyba dokladnie nie wiesz czego chcesz) - no w kazdym razie cos trudnego... I nagle wychodzi ze ty nie wiesz tak naprawde NIC o kompilatorach! Nie wiesz co to jest, jak dziala i ile to roboty.
Przyklad interpretera - (moze nie najlepszy) http://4programmers....icle.php?id=667
Przyklad kompilatora - http://michzimny.prv.pl/ - wybierz M++ -> Source wypelnij formularz i dostaniesz haslo do kodow.
I naucz sie czegos o temacie z ktorego zadanie chcesz realizowac...
"Przy naszej pomocy" - znaczy ze chcesz nas pytac o kazda linijke?:>
:mad:
Mam nadzieje ze to EOT

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •