-
1. Data: 2010-04-26 06:17:13
Temat: Pisanie prekompilatora -- jak sie zabrac?
Od: Maciej Pilichowski <P...@g...com>
Hej,
Chcialbym napisac cos w rodzaju prekompilatora, programik, ktory
rozszerzy mi kilka "makr" do jezyka docelowego, tak aby pozniej
wlasciwy kompilator juz sie zabral do pracy.
Mysle na razie o C++ i chcialbym zaczac od czegos w stylu:
string @ptr;
aby mi to zamienialo na
shared_ptr<string> ptr;
Nastepne w kolekcje jest foreach (for z iteratorami) i lambda. To tak
na dobry poczatek, zeby miec lepsze srodowisko pracy.
Jak sie do tego zabrac, aby w miare szybko zobaczyc rezultaty swojej
pracy, ale tez zeby to nie bylo proste search&replace (tj. aby za
chwile nie trzeba bylo calosci przepisywac od zera, tym razem
porzadnie).
Polskojezyczna literature teoretyczna na ten temat mam w komplecie,
ale chodzi mi bardziej o rzeczy z dopiskiem "stosowane".
Z gory dzieki za wskazowki, linki.
milego dnia, hej
-
2. Data: 2010-04-26 06:49:30
Temat: Re: Pisanie prekompilatora -- jak sie zabrac?
Od: Krzysiek Kowaliczek <k...@g...com>
Użytkownik Maciej Pilichowski napisał:
> Chcialbym napisac cos w rodzaju prekompilatora, programik, ktory
[...]
> string @ptr;
> aby mi to zamienialo na
> shared_ptr<string> ptr;
>
>
> Nastepne w kolekcje jest foreach (for z iteratorami) i lambda. To tak
> na dobry poczatek, zeby miec lepsze srodowisko pracy.
>
> Jak sie do tego zabrac, aby w miare szybko zobaczyc rezultaty swojej
1. Napisać własny lekser albo użyć ten z Boost.Wave i dalej bawić
się w przekształcenia.
2. Użyć Vera++ ( http://www.inspirel.com/vera/ ), który oparty
jest na Boost.Wave. Całośc ma tą zaletę, że używamy języka
skryptowego do przekształceń.
3. Użyć jakiegoś narzędzia do przekształceń źródło na źródło:
Txl - http://www.txl.ca/
Stratego/XT - http://strategoxt.org/
Pozdrawiam
KK
-
3. Data: 2010-04-26 07:28:54
Temat: Re: Pisanie prekompilatora -- jak sie zabrac?
Od: Maciej Sobczak <s...@g...com>
On 26 Kwi, 08:17, Maciej Pilichowski
<P...@g...com> wrote:
> Chcialbym napisac cos w rodzaju prekompilatora, programik, ktory
> rozszerzy mi kilka "makr" do jezyka docelowego, tak aby pozniej
> wlasciwy kompilator juz sie zabral do pracy.
>
> Mysle na razie o C++ i chcialbym zaczac od czegos w stylu:
>
> string @ptr;
>
> aby mi to zamienialo na
>
> shared_ptr<string> ptr;
Jaki problem chcesz w ten sposób rozwiązać?
Jeżeli jest to problem pisania na klawiaturze, to lepiej zdefiniuj
sobie te makra w edytorze tak, żebyś nie musiał pisać w całości tych
częstych konstrukcji.
Jeżeli jest to problem czytelności kodu, to lepiej typedef.
Natomiast jeśli chodzi o *ćwiczenie* pod tytułem "pisanie
preprocesora", to do zabawy polecam to:
http://www.msobczak.com/prog/bin/tpp.zip
To jest prościutki ale rozszerzalny preprocesor napisany w Tcl.
Dokumentacja i przykłady w środku.
W sumie do niczego poważnego tego nie użyłem (kiedyś generowałem tym
różne kawałki swojej strony www), ale zabawa przy pisaniu była jak
trzeba - może przyda Ci się jako punkt startowy.
Do poważniejszych zadań z transformacjami kodu - linki podał Krzysiek.
--
Maciej Sobczak * http://www.inspirel.com
-
4. Data: 2010-04-26 07:47:14
Temat: Re: Pisanie prekompilatora -- jak sie zabrac?
Od: Maciej Pilichowski <P...@g...com>
On Mon, 26 Apr 2010 00:28:54 -0700 (PDT), Maciej Sobczak
<s...@g...com> wrote:
Dzieki za obie odpowiedzi!
>Jaki problem chcesz w ten sposób rozwi?zać?
>
>Natomiast je?li chodzi o *ćwiczenie* pod tytułem "pisanie
>preprocesora", to do zabawy polecam to:
To tez. A druga -- jestem programista C++ i szkoda mi juz czasu na
pisanie przestarzalych konstrukcji. Jezeli jest cos wygodnego, co
przyspiesza mi pisanie kodu (a przy okazji kod staje sie
klarowniejszy), to chcialbym to miec w C++.
Nie chce wymyslac nowego jezyka od zera (choc to modne), wole krok po
kroku ulepszac cos co jest.
>W sumie do niczego poważnego tego nie użyłem (kiedy? generowałem tym
>różne kawałki swojej strony www), ale zabawa przy pisaniu była jak
>trzeba - może przyda Ci się jako punkt startowy.
No pewnie! :-)
milego dnia, hej
-
5. Data: 2010-04-26 09:55:39
Temat: Re: Pisanie prekompilatora -- jak sie zabrac?
Od: Michoo <m...@v...pl>
Maciej Pilichowski pisze:
> Hej,
>
> Chcialbym napisac cos w rodzaju prekompilatora, programik, ktory
> rozszerzy mi kilka "makr" do jezyka docelowego, tak aby pozniej
> wlasciwy kompilator juz sie zabral do pracy.
>
> Mysle na razie o C++ i chcialbym zaczac od czegos w stylu:
>
> string @ptr;
a co z string @ptr,str;?
Będziesz generował 2 osobne deklaracje, czy nie dopuścisz takiej sytuacji?
To czemu nie coś w stylu:
typedef shared_ptr<string> string_p;
?
> Nastepne w kolekcje jest foreach (for z iteratorami) i lambda. To tak
> na dobry poczatek, zeby miec lepsze srodowisko pracy.
#define foreach(x,y) for(typeof(x.begin()) y=x.begin();y!=x.end();++y)
http://www.boost.org/doc/libs/1_42_0/doc/html/lambda
.html#introduction
>
> Jak sie do tego zabrac, aby w miare szybko zobaczyc rezultaty swojej
> pracy, ale tez zeby to nie bylo proste search&replace (tj. aby za
> chwile nie trzeba bylo calosci przepisywac od zera, tym razem
> porzadnie).
Dać sobie spokój ;) - składnia C++ jest tak koszmarnie złożona, że masz
w sumie 2 wyjścia - albo Twój preprocesor będzie bardzo prymitywny, albo
poświęcisz na jego pisanie bardzo dużo czasu.
--
Pozdrawiam
Michoo
-
6. Data: 2010-04-27 06:17:15
Temat: Re: Pisanie prekompilatora -- jak sie zabrac?
Od: Maciej Pilichowski <P...@g...com>
On Mon, 26 Apr 2010 11:55:39 +0200, Michoo <m...@v...pl> wrote:
>#define foreach(x,y) for(typeof(x.begin()) y=x.begin();y!=x.end();++y)
* kilkukrotna ewaluacja x
* brak nawiasow przy parametrach
>http://www.boost.org/doc/libs/1_42_0/doc/html/lambd
a.html#introduction
Znam, stosuje, koszmarna skladnia.
>Dać sobie spokój ;)
Dzieki za glos, ale takie odpowiedzi nic nie wnosza.
> albo
>poświęcisz na jego pisanie bardzo dużo czasu.
Lepsze to niz siedzenie przed TV i picie piwa, nie? Wiec nie rozumiem,
czemu kogos zniechecasz -- nawet dla samej satysfakcji temat jest
ciekawy. Przynajmniej dla mnie, a ja mowilem o tym, ze to _ja_ chce
pisac, a nie zlecac to komus.
milego dnia, hej
-
7. Data: 2010-04-27 07:14:22
Temat: Re: Pisanie prekompilatora -- jak sie zabrac?
Od: p...@p...onet.pl
> On Mon, 26 Apr 2010 11:55:39 +0200, Michoo <m...@v...pl> wrote:
>
> >#define foreach(x,y) for(typeof(x.begin()) y=x.begin();y!=x.end();++y)
>
> * kilkukrotna ewaluacja x
> * brak nawiasow przy parametrach
>
> >http://www.boost.org/doc/libs/1_42_0/doc/html/lambd
a.html#introduction
>
> Znam, stosuje, koszmarna skladnia.
>
> >DaÄ sobie spokĂłj ;)
>
> Dzieki za glos, ale takie odpowiedzi nic nie wnosza.
>
> > albo
> >poĹwiÄcisz na jego pisanie bardzo duĹźo czasu.
>
> Lepsze to niz siedzenie przed TV i picie piwa, nie? Wiec nie rozumiem,
> czemu kogos zniechecasz -- nawet dla samej satysfakcji temat jest
> ciekawy. Przynajmniej dla mnie, a ja mowilem o tym, ze to _ja_ chce
> pisac, a nie zlecac to komus.
>
no nie wiem, ja też raczej odradzam, nawet jak bys to zrobił co chcesz
i zrobił to nawet fajnie to _nadbudujesz_ coś ew w miare ok nad chaosem
c++ zamiast po prostu to wszystko raczej odrzucić - po co ci to
czego nie lubisz tam pod spodem? ale jak dla ciebie ta robota
bylaby fajna i ciekawa to w tym sensie warto ja robic bo cos
potrenujesz czegos sie nauczysz
sam chetnie zaczalbym (choc poki co mam raczej inne konieczniejsze
dla mnie sprawy) od w zasadzie napisania sobie asemblera i tworzenia
nim swoich wlasnych execow - trzebeby chyba przestudiowac format
COFF i PE a byc moze jest on skomplikowany i szybko takiego asma nie
napiszę - trudno powiedziec - jakby ktos mial apropos cos dobrego
co pomaogloby w napisaniu sobie asma pod windę (jakis tutorial do
recznego binarnego tworzenia PE) to moglby mi podrzucic,
dzieki z gory
fir
--
Wysłano z serwisu OnetNiusy: http://niusy.onet.pl
-
8. Data: 2010-04-27 18:55:47
Temat: Re: Pisanie prekompilatora -- jak sie zabrac?
Od: Roman Werpachowski <r...@g...com>
On Apr 27, 7:17 am, Maciej Pilichowski
<P...@g...com> wrote:
> Lepsze to niz siedzenie przed TV i picie piwa, nie? Wiec nie rozumiem,
> czemu kogos zniechecasz -- nawet dla samej satysfakcji temat jest
> ciekawy. Przynajmniej dla mnie, a ja mowilem o tym, ze to _ja_ chce
> pisac, a nie zlecac to komus.
Chodzi o to, że lepiej zrobić coś mniejszego niż kompletnego, niż
zacząć z wysokiego C a potem zjechać w falsecik.
RW
-
9. Data: 2010-05-02 17:40:47
Temat: Re: Pisanie prekompilatora -- jak sie zabrac?
Od: Adam Przybyla <a...@r...pl>
Maciej Pilichowski <P...@g...com> wrote:
> Hej,
>
> Chcialbym napisac cos w rodzaju prekompilatora, programik, ktory
> rozszerzy mi kilka "makr" do jezyka docelowego, tak aby pozniej
> wlasciwy kompilator juz sie zabral do pracy.
>
> Mysle na razie o C++ i chcialbym zaczac od czegos w stylu:
>
> string @ptr;
... moze czas odkryc m4?;-) Z powazaniem
Adam Przybyla