[nem-pl] makra dynamiczne aka types as first class citizens

Kamil Skalski nazgul at omega.pl
Thu Nov 27 16:46:23 CET 2003


Thursday 27 of November 2003 16:06, Michal Moskal wrote:
> Może można by naszej maszynerii do makr użyć do dynamicznej generacji
> kodu?  Znaczy również w trakcie wykonania.  Wtedy mielibyśmy to co

To przecież był jeden z pierwszych pomysłów. Zresztą już taki printf to jest 
generacja kodu na podstawie stringa formatu.
No a potem myślałem o wkompilowywaniu języków skryptowych, generacji typów na 
podstawie XML, itd.

> w lispie, tyle że sprawdzanie typów następuje jeden poziom wyżej. W
> lispie w trakcie wykonania, a u nas w trakcie kompilacji. Nie można
> sprawdzić typów w makrze, ponieważ mamy typ "Expr" a nie "Expr (bool)"
> (tj. wyrażenie typu bool).

Nie wiem o co chodzi pod pojęciem sprawdzanie typu w makrze... Od dawna 
ustabilizowany pomysł jest taki, żeby wygenerować kod i potem go spróbować 
otypować.

> Z drugiej strony być może warto by zrobić Expr (int), Expr (Expr (int))
> i podobne. Prawdopodobnie wymaga to traktowania typów jako obywateli
> pierwszego rzędu (podobnie jak funkcji). Może warto o tym pomyśleć, bo

Na razie typy są traktowane dość syntaktycznie... właściwie wszystko w makrach 
jest teraz całkowicie syntaktyczne, a typowanie dzieje się później. Trudno mi 
się myśli o czymś innym... jakoś czuję, żę to powinno właśnie tak działać jak 
działa.

Kamil




More information about the devel-pl mailing list