<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META content="text/html; charset=iso-8859-7" http-equiv=Content-Type>
<META content="MSHTML 5.00.2920.0" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV><FONT face=Arial></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial>H πιο γρήγορη λύση (από το 1975 και μετά), για να φτιάξεις 
έναν compiler,</FONT></DIV>
<DIV><FONT face="Arial Greek">είναι το lex και το yacc. Τα έχω χρησιμοποιήσει με 
επιτυχία. Το lex είναι πολύ</FONT></DIV>
<DIV><FONT face="Arial Greek">εύκολο, σχεδόν τετριμμένο. Στην ουσία δηλώνεις 
μερικά απλά reg-ex. Πιο</FONT></DIV>
<DIV><FONT face="Arial Greek">πολύπλοκο είναι να φτιάξεις το input file για το 
yacc σε Backus Naur μορφή</FONT></DIV>
<DIV><FONT face="Arial Greek">(γλώσσα περιγραφής της σύνταξης). Το πιο μεγάλο 
πρόβλημα είναι ότι </FONT></DIV>
<DIV><FONT face="Arial Greek">αυτά τα εργαλεία παράγουν, φυσικά, C. Έχω δει στο 
CPAN όμως ένα</FONT></DIV>
<DIV><FONT face="Arial Greek">module που λέγεται Parse (ή κάπως έτσι), και 
υποθέτω ότι θα&nbsp;είναι κάτι σαν </FONT></DIV>
<DIV><FONT face="Arial Greek">το yacc. H</FONT><FONT face="Arial Greek"> 
λειτουργία του lex μπορεί (μάλλον εύκολα) να εξομοιωθεί με reg-ex </FONT></DIV>
<DIV><FONT face="Arial Greek">της Perl.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face="Arial Greek">Ισως είναι χρήσιμο το βιβλίο του Ronald Mak, 
"Writing compilers and interpreters".</FONT></DIV>
<DIV><FONT face="Arial Greek">Δουλεύει&nbsp;με C++, αλλά δείχνει βήμα-βήμα πως 
γίνονται όλα, χωρίς το lex</FONT></DIV>
<DIV><FONT face="Arial Greek">και το yacc, φτιάχνοντας έναν interpreter και έναν 
compiler για την Pascal.</FONT></DIV>
<DIV><FONT face="Arial Greek">To συνιστώ ανεπιφύλακτα. </FONT></DIV>
<DIV><FONT face="Arial Greek">Φυσικά υπάρχει και το (θεωρητικό) "Compilers, 
..."</FONT><FONT face="Arial Greek"> των Aho, Sethi,Ullman. </FONT></DIV>
<DIV><FONT face="Arial Greek">Αυτό όμως διδάσκεται στα μεταπτυχιακά του 
MIT,</FONT><FONT face="Arial Greek"> Stanford κλπ και δεν θα σε </FONT></DIV>
<DIV><FONT face="Arial Greek">βοηθήσει πρακτικά τόσο όσο το άλλο.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face="Arial Greek">Από ότι ξέρω, υπάρχει και η δυνατότητα να καλέσεις 
την C από Perl, οπότε</FONT></DIV>
<DIV><FONT face="Arial Greek">ίσως είναι και αυτό μια λύση. Στην 3η έκδοση του 
Programming Perl υπάρχει</FONT></DIV>
<DIV><FONT face="Arial Greek">εκτενής αναφορά, αν θυμάμαι καλά.</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face="Arial Greek">Πάντως η όλη ιδέα έχει ενδιαφέρον.&nbsp;Εγώ&nbsp; 
δεν έχω ασχοληθεί με Php,</FONT></DIV>
<DIV><FONT face="Arial Greek">όμως είναι μια ευκαιρία ...</FONT></DIV>
<DIV>&nbsp;</DIV>
<DIV><FONT face="Arial Greek">Νίκος Κανελλόπουλος</FONT></DIV>
<DIV><FONT face="Arial Greek"><A 
href="http://nk.wzpro.net">http://nk.wzpro.net</A></FONT></DIV></BODY></HTML>