ΠΩΣ ΜΠΟΡΩ ΝΑ ΦΤΙΑΞΩ ΓΛΩΣΣΑ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ???

Ξεκίνησε από maCintOsh__, 08 Ιουν 2007, 12:05:52 ΠΜ

« προηγούμενο - επόμενο »

ΜΙΤΜ

Το UltraGram είναι πρόγραμμα για την υλοποίηση της συντακτικής αναλυσης?

alkisg

Ναι, αλλά για το απλό συντακτικό της ΓΛΩΣΣΑΣ πιο πολύ θα σε μπλέξει παρά θα σε βοηθήσει.
Άσε που θα φας αρκετό χρόνο μέχρι να σκεφτείς και να ορίσεις τα rules του parser, ενώ δε χρειάζεται...

ΜΙΤΜ

Θα χρησιμοποιούσα Visual Studio 2005 pro για την υλοποίηση του GUI. Το WxWidgets δεν το γνωρίζω πολύ καλά

alkisg

ΟΚ, αλλά με τι interface; MFC; WTL; Ή θα πας σε .NET και Windows Forms; Όλα αυτά περιλαμβάνονται στο Visual Studio...
Anyway, θα χρειαστείς κι έναν syntax editor, π.χ. http://www.scintilla.org ή αυτόν του Akelpad αν θες κάτι πιο ελαφρύ αλλά με λιγότερες δυνατότητες (richedit-based).

ΜΙΤΜ


Tony__Dim

#20
?

Foto

Ο Bill Gates ξεκίνησε με μια απλή Basic, διερμηνευτή, με πράξεις ακεραίων μόνο.

Παραδείγματα για διερμηνευτή με AST υπάρχουν εδώ  
https://rosettacode.org/wiki/Compiler/AST_interpreter
Η δομή AST βολεύει και για άμεση εκτέλεση.
Στο σύνδεσμο υπάρχουν υλοποιήσεις σε διάφορες γλώσσες. Δεν είναι τόσο τρομακτικό όπως τα περιγράφει ο Alkis, για κάτι απλό. Υποτίθεται ότι ο διερμηνευτής θα παίρνει ένα αρχείο εισόδου, το πρόγραμμα και θα το εκτελεί. Στις εντολές του προγράμματος θα υπάρχουν εντολές εξόδου όπως η Γράψε, για να έχουμε αποτελέσματα στη κονσόλα. Μέχρι εκεί η δυσκολία δεν είναι μεγάλη. 

Tony__Dim

#22
?

Foto

Λογικά τις σημειώσεις πρέπει να τις φιλτράρεις πριν την μετάφραση. Αυτό δεν είναι δύσκολο!

Foto

Είδα το βίντεο με τη GLP Python. Οι εντολές με το γράμμα ζ είναι εντελώς λάθος προσέγγιση!
Τα αλφαριθμητικά ξεχωρίζουν έτσι:
https://www.w3schools.com/python/python_strings.asp
Οι σημειώσεις ξεχωρίζουν έτσι:
https://www.w3schools.com/python/python_comments.asp
Άρα διατρέχεις όλο το κείμενο και αφήνεις τμήματα που είναι σημειώσεις ή αλφαριθμητικά. Στα ενδιάμεσα τμήματα που είναι οτιδήποτε άλλο, εκτός από σημειώσεις και αλφαριθμητικά, κάνεις τις αλλαγές που θες.
Δοκίμασε να φτιάξεις έναν τέτοιο αλγόριθμο. Δεν είναι δύσκολος!