-
Path: news-archive.icm.edu.pl!agh.edu.pl!news.agh.edu.pl!news.onet.pl!news.nask.pl!ne
ws.nask.org.pl!news.uni-stuttgart.de!news.stw-bonn.de!newsreader4.netcologne.de
!news.netcologne.de!nx02.iad01.newshosting.com!newshosting.com!69.16.185.11.MIS
MATCH!npeer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwind
s-media.com!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail
From: "godek.maciek" <g...@g...com>
Newsgroups: pl.comp.programming
Subject: Odp: Re: Odp: Re: Prosty preprocesor wielojęzykowy
Date: Tue, 2 Aug 2011 18:01:21 -0700 (PDT)
Organization: http://groups.google.com
Lines: 67
Message-ID: <e...@g...googlegroups.com>
References: <2...@g...googlegroups.com>
<3...@h...googlegroups.com>
<f...@g...googlegroups.com>
<c...@k...googlegroups.com>
Reply-To: p...@g...com
NNTP-Posting-Host: 89.79.28.27
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-8859-2
Content-Transfer-Encoding: quoted-printable
X-Trace: posting.google.com 1312333282 26820 127.0.0.1 (3 Aug 2011 01:01:22 GMT)
X-Complaints-To: g...@g...com
NNTP-Posting-Date: Wed, 3 Aug 2011 01:01:22 +0000 (UTC)
In-Reply-To: <c...@k...googlegroups.com>
Complaints-To: g...@g...com
Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=89.79.28.27;
posting-account=f7iIKQoAAAAkDKpUafc-4IXhmRAzdB5r
User-Agent: G2/1.0
X-Google-Web-Client: true
Xref: news-archive.icm.edu.pl pl.comp.programming:191685
[ ukryj nagłówki ]W dniu sobota, 30 lipca 2011, 14:52:25 UTC+2 użytkownik Spec napisał:
> On 27 Lip, 18:03, "godek.maciek" <g...@g...com> wrote:
> > W dniu środa, 27 lipca 2011, 15:39:27 UTC+2 użytkownik Mariusz Marszałkowski
napisał:
> >
> > > Nie wiem co to ma na celu... Mnie czasami nie chcialo sie wpisywac
> > > recznie
> > > wiele podobnego/specyficznego kodu. Wtedy pisalem po prostu w C taki
> > > generator.
> >
> > Moim zdaniem C nie jest najlepszym językiem do tworzenia generatora kodu, bo
zazwyczaj nie wymaga się od takich programów wydajności, ale raczej tego, żeby dało
się je szybko pisać i łatwo edytować, a nade wszystko -- żeby dobrze operowały na
łańcuchach tekstu. Ale nawet gdyby ktoś chciał zrobić coś takiego, to mógłby napisać
> >
> > kod.c:
> > ...
> > @begin "cc -x c $< -o gen; ./gen > $>; rm gen"
> > /* kod w C, który generuje inny kod w C */
> > ...
>
> Przychylam się do opinii że C to kiepski język do pisania generatorów.
> Proponowałbym coś wyższego poziomu, oszczędności na pewno byłyby
> większe.
>
> >Czy może słyszał ktoś, żeby podobne narzędzie już wcześniej istniało, albo żeby
realizowanie tego typu pomysłów było radykalnie odradzane przez jakieś
>programistyczne autorytety?
>
> Takie narzędzie, wbudowane w język programowania istnieje od ponad 50
> lat - a język to Lisp.
> Kod programu w Lispie przypomina AST, możemy więc mieszać kod i dane
> bez ograniczeń. Najprostszy przykład:
> `(a b c ,@(loop for i to 3 collect i))
> "," wymusza wykonanie w danym miejscu tak więc od razu powstaje nam
> lista elementów: (a b c 0 1 2 3).
> Bardziej skomplikowane rzeczy możemy tworzyć z użyciem lispowych makr,
> szybkie pokazanie możliwości: http://www.gigamonkeys.com/book/macros-defining-your
-own.html
Osobiście jestem wielkim fanem lispa (choć jeżeli idzie o składnię makr, to preferuję
higieniczne makra schema z R5RS, po mimo tego, że pisze się je trudniej) -- jednak
one generują jedynie kod lispowy w lispie.
Nota bene, rzeczony preprocesor odgrzebałem, gdy pisałem w schemie skrypt generujący
kod w C, którego celem miało być udostępnienie funkcjonalności jakiejś biblioteki C++
interpreterowi guile.
Jeżeli idzie o maszynowe rzeczy niskopoziomowe w rodzaju sterowników, to chyba zawsze
będzie lepiej pisać je w C, bo to język wręcz stworzony do adresowania pamięci ;]
Ja na razie kombinuję, jak można by otrzymać kod w schemie, który po przetworzeniu
nie odbiegałby wydajnością od C i mógłby korzystać ze wszystkich bibliotek, które są
dostępne z poziomu C (przy zachowaniu takich dobrodziejstw lispa jak REPL)
W każdym razie - wracając do tematu - omówiony przeze mnie preprocesor to jednak coś
nieco innego niż defmacro, bo on jest poliglotą :)
pzdr
Następne wpisy z tego wątku
- 03.08.11 02:00 A.L.
Najnowsze wątki z tej grupy
- Can you activate BMW 48V 10Ah Li-Ion battery, connecting to CAN-USB laptop interface ?
- We Wrocławiu ruszyła Odra 5, pierwszy w Polsce komputer kwantowy z nadprzewodzącymi kubitami
- Ada-Europe - AEiC 2025 early registration deadline imminent
- John Carmack twierdzi, że gdyby gry były optymalizowane, to wystarczyły by stare kompy
- Ada-Europe Int.Conf. Reliable Software Technologies, AEiC 2025
- Linuks od wer. 6.15 przestanie wspierać procesory 486 i będzie wymagać min. Pentium
- ,,Polski przemysł jest w stanie agonalnym" - podkreślił dobitnie, wskazując na brak zamówień.
- Rewolucja w debugowaniu!!! SI analizuje zrzuty pamięci systemu M$ Windows!!!
- Brednie w wiki - hasło Dehomag
- Perfidne ataki krakerów z KRLD na skrypciarzy JS i Pajton
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- Instytut IDEAS może zacząć działać: "Ma to być unikalny w europejskiej skali ośrodek badań nad sztuczną inteligencją."
- U nas propagują modę na SI, a w Chinach naukowcy SI po kolei umierają w wieku 40-50lat
- C++. Podróż Po Języku - komentarz
Najnowsze wątki
- 2025-07-07 Re: Ząbki się spaliły jak wiejskie, drewniane stodoły sprzed 50 lat
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 TV z Play (dawniej UPC) -- potrzebny dekoder?
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 mija rok jeżdzenia po lewej
- 2025-07-06 Elektryki jednak są NIEBEZPIECZNE
- 2025-07-08 Fajny film widziałem...
- 2025-07-07 Re: Ząbki się spaliły jak wiejskie, drewniane stodoły sprzed 50 lat
- 2025-07-06 Kup szybko nową ładowarkę do smartfona
- 2025-07-07 Gdańsk => Programista Kotlin <=
- 2025-07-07 Białystok => Mainframe (z/OS, Assembler) Developer <=
- 2025-07-07 Warszawa => Asystent ds. Sprzedaży i Rozwoju Klienta <=
- 2025-07-07 Warszawa => International Freight Forwarder <=
- 2025-07-07 Warszawa => Java Developer <=
- 2025-07-07 Białystok => Software Engineer .Net <=