Δευτέρα, 29 Μαΐου 2017

Συντακτικό της Μ2000 σε μορφή Πίνακα


Υπάρχει νέα αναθεώρηση 6 η οποία απλά διορθώνει ή προσθέτει λίγα πράγματα.

Γράφω το βιβλίο "Προγραμματισμός στη Μ2000" και αυτή είναι μια προδημοσίευση ενός πίνακα, με το συντακτικό της Μ2000 όπως το χειρίζεται ο διερμηνευτής της Μ2000 σε κώδικα πολλών γραμμών (υπάρχει και διερμηνευτής για γραμμή εντολών).

Η πρώτη στήλη του πίνακα δείχνει το πώς σχηματοποιείται το κείμενο που τελικά είναι κώδικας για τη Μ2000, ανά περίπτωση. Σε κάθε γραμμή στη συνέχεια υπάρχει το τι περιμένει ο διερμηνευτής αμέσως μετά. Βλέπουμε το συντακτικό του δηλαδή, σε μια μορφή πίνακα.

Για παράδειγμα το παρακάτω, και ειδικά η πρώτη γραμμή:

Για ι=1 έως 20 {
    Τύπωσε ι
}

Έχουμε ένα Γνωστό Όνομα την Για μετά ακολουθούν ορίσματα τα οποία αναλύονται ως εξής: Όρισμα1 ι=1 που αναλύεται σε ι (εδώ είναι άγνωστο όνομα, θα μπορούσε να ήταν γνωστό όμως, απλά δεν βλέπουμε άλλο κώδικα για να κρίνουμε) και έχει τελεστή το = και ακολουθεί έκφραση, η τιμή 1, μετά έχουμε το έως που είναι γνωστό όνομα και εδώ έχει θέση αντί του κόμμα και μετά έχουμε το άλλο όρισμα2 η έκφραση με τιμή το 20 και τέλος ακολουθεί μπλοκ εντολών.



{
Μπορεί να περιέχει Παραγράφους
}

Μπλοκ κώδικα, που περιέχει παραγράφους. Στο διορθωτή δεν βλέπουμε το μπλοκ όλου του κειμένου, αλλά εννοείται και υπάρχει στο αρχείο που σώνουμε
Μπορεί να περιέχει και άλλα μπλοκ κώδικα.
Παράγραφος Κειμένου
Α$ = {
αυτή είναι μια παράγραφος κειμένου μόνο
}
Παράγραφος ως μέρος αλφαριθμητικού με πολλές παραγράφους. Δείτε ότι χρησιμοποιούνται άγκιστρα εδώ, ενώ δεν είναι Μπλοκ κώδικα.
Παράγραφος ως μέρος της ροής εκτέλεσης
Παράγραφος ως μέρος της ροής εκτέλεσης
Αριθμός, μέχρι 5 ψηφία μπορούν να υπάρχουν 0 στην αρχή, πχ 00001. Προαιρετική χρήση, έχει ρόλο ετικέτας και δεν έχει σχέση με τον σχετικό αριθμό γραμμής, στο διορθωτή.
Αριστερή Έκφραση
Κενό

Προαιρετικά Σημειώσεις



Σημειώσεις

Κενό

Σημειώσεις
\ ή '
Γράφουμε τις σημειώσεις μας σε μια γραμμή
Αριστερή Έκφραση
Γνωστό όνομα
( εδώ λέγεται ότι είναι σε πρώτη θέση)










Προαιρετικά το διαχωριστικό εντολών άνω και κάτω τελεία
:
εκτός ελαχίστων περιπτώσεων που δεν επιτρέπεται δεύτερη εντολή (πρέπει να μπει μπλοκ εντολών)
μπορούν να μπουν όσα θέλουμε
αν υπάρχει διαχωριστικό εντολών τότε προαιρετικά
Αριστερή Έκφραση

Τύπωσε
και η ? λειτουργεί ως τύπωσε σαν αριστερή έκφραση, αλλά δεν δέχεται τις λέξεις Πάνω, Μέρος, Υπό αλλά μόνο τις αγγλικές Over, Part, Under
κενό
#
Πάνω
Μέρος
Υπό
Λίστα Εκφράσεων2
σύμβολο @ προαιρετικό

Αριστερή Έκφραση
(εκτελεί την αρχική εντιλή, και όχι άλλη που έχει ίδιο όνομα και έχουμε φτιάξει)
Άγνωστο όνομα
μπορεί να έχει % στο τέλος
Δημιουργεί Γνωστό όνομα
=

Αριθμητική Παράσταση


Άγνωστο όνομα
που έχει $ στο τέλος
Δημιουργεί Γνωστό όνομα
=

Αλφαριθμητική Παράσταση


Άγνωστο όνομα με παρένθεση ( στο τέλος
Προαιρετικά μπορούν να υπάρχει
Όρισμα ή
ορίσματα

Παρένθεση )
Από το σημείο αυτό λογαριάζεται ως
Γνωστό όνομα
έτσι η συνέχεια είναι όπως περιγράφεται πιο πάνω
Άγνωστο όνομα με σύμβολο άνω και κάτω τελεία αμέσως μετά το όνομα, χωρίς διάστημα μεταξύ τους. Λέγεται Ετικέτα
Προαιρετικά Σημειώσεις
Αν δεν υπάρχουν σημειώσεις και ακολουθεί Όνομα τότε το πρώτο όνομα δεν είναι ετικέτα αλλά λογαριάζεται ως Γνωστό Όνομα χωρίς ορίσματα.
Ο τελεστής =
μπορεί να βρίσκεται ως Γνωστό όνομα
σε συναρτήσεις
Έκφραση
Λίστα Εκφράσεων (δημιουργείται πίνακας με τιμές)
Ετικέτα
Προαιρετικά Σημειώσεις

Γνωστό όνομα
(σε πρώτη θέση)


προαιρετικά σύμβολα λέγονται μεταλλάκτες όταν αλλάζουν κάτι στη λειτουργία της εντολής ή λέγονται τελεστές όταν αλλάζουν την τιμή της μεταβλητής, ανάλογα το τι είναι το Γνωστό όνομα.
Ορίσματα




Σύμβολο ; (σε ορισμένες μόνο περιπτώσεις αλλιώς βγαίνει λάθος).
Άγνωστο όνομα

Μπορεί να ακολουθεί μπλοκ εντολών


Μπορούν να
ακολουθούν εντολές σχετικές με το μπλοκ εντολών
Κενό
(να μην περιέχει τίποτα από τα δύο παραπάνω)
Γνωστό όνομα
(εκτός πρώτης θέσης)
σύμβολο & προαιρετικό μόνο για ειδικά ονόματα (μεταβλητές/συναρτήσεις)



αναγνωριστικό

Μπορεί να περιλαμβάνονται στο τέλος του αναγνωριστικού ένα από τα %,$, (, %(, $(

Ορίσματα
Όρισμα

προαιρετικό κόμμα

Αν υπάρχει κόμμα τότε
Ορίσματα
'Όρισμα
Έκφραση

σύμβολα
ή γνωστά ονόματα ή άγνωστα ονόματα που σχετίζονται με το Γνωστό Όνομα σε πρώτη θέση

σε περιπτώσεις που το σύμβολο πριν είναι το :=
ακολουθεί έκφραση

ομοίως σε μια εντολή υπάρχει και το σύμβολο = που ορίζει ότι ακολουθεί έκφραση.


? σημαίνει χωρίς όρισμα πάρε την εξ ορισμού τιμή


κενό
σημαίνει χωρίς όρισμα τώρα, πάρε ότι υπάρχει ήδη ορισμένο από πιο πριν.

Έκφραση
σύμβολα προαιρετικά
παράσταση
σύμβολα προαιρετικά
Λίστα Εκφράσεων
Έκφραση
κόμμα
Λίστα Εκφράσεων
Λίστα Εκφράσεων2
Έκφραση
ειδικές συναρτήσεις:
$()
@()
~()
κόμμα
ελληνικό ερωτηματικό
Λίστα Εκφράσεων2
ή
Κενό
Παράσταση
Αριθμητική Παράσταση
δίνει αριθμητικό αποτέλεσμα ή
μπορεί να δώσει αντικείμενο και το 0
Αλφαριθμητική Παράσταση
δίνει αλφαριθμητικό (ή το κενό αλφαριθμητικό) ή αντικείμενο.
Λογική Παράσταση (έχει αποτέλεσμα πάντα αριθμητικό, 0 ή -1)
Αριθμητική Παράσταση
προαιρετικά + ή -
όσα θέλουμε


Παρένθεση ( προαιρετικά
όσες θέλουμε
Αριθμητική ή Λογική παράσταση
ή
Αριθμητική Πράξη
ή
Απλή Αριθμητική Παράσταση

Παρένθεση ) αν έχει ανοιχτεί ήδη παρένθεση


Αριθμητική Πράξη
προαιρετικά + ή -
όσα θέλουμε
Αριθμητική Παράσταση
ή
Απλή Αριθμητική Παράσταση

προαιρετικά

Τελεστής
Πράξης
+ - * / ** ^
υπόλοιπο
υπόλοιπο#
υπολ, υπολ#
διά, δια#
<<
Αν υπάρχει τελεστής πράξης
Αριθμητική Παράσταση
ή
Απλή Αριθμητική Παράσταση
Απλή Αριθμητική Παράσταση
Γνωστό Όνομα
μπορεί να
έχει % στο τέλος του ονόματος
ή να έχει ( ή %(
ή
Αριθμός
ή
Αυτόματος Πίνακας
αν έχουμε το ( στο όνομα τότε μπορεί να ακολουθεί λίστα ορισμάτων
Παρένθεση ) αν έχει ανοιχτεί ήδη παρένθεση

Αλφαριθμητική Παράσταση

Απλή Αλφαριθμητική Παράσταση
ή
Αλφαριθμητική Παράσταση
προαιρετικά
+
αν υπάρχει +
θα πρέπει να υπάρχει
Αλφαριθμητικό
Απλή Αλφαριθμητική Παράσταση
Γνωστό Όνομα που έχει $ στο τέλος του ονόματος
ή έχει $(

αν έχουμε το $( τότε μπορεί να ακολουθεί λίστα ορισμάτων

Παρένθεση ) αν έχει ανοιχτεί ήδη παρένθεση


"Αλφαριθμητικό"
κενό αλφαριθμητικό ""
Μπλοκ Παραγράφου { }
Λογική Παράσταση
Παρένθεση ( προαιρετικά




Τελεστής
Όχι ή Δεν

Απλή Λογική Παράσταση
Ή
Λογική Παράσταση
Παρένθεση ) αν έχει ανοιχτεί ήδη παρένθεση

Απλή Λογική Παράσταση
Συνθήκη
ή
Αριθμητική Παράσταση
Τελεστές
Και Ή Από
(And Or Xor)

Συνθήκη
ή
Αριθμητική Παράσταση
Συνθήκη
Αριθμητική Παράσταση
Τελεστές
> < = <= >= <>
==
Αριθμητική Παράσταση
Αλφαριθμητική Παράσταση


Τελεστές
> < = <= >= <>
~
Αλφαριθμητική Παράσταση
Αυτόματος Πίνακας

παρένθεση (



έκφραση
και κόμμα
αν ακολουθεί έκφραση
παρένθεση )
ή
κόμμα και παρένθεση )
αν υπάρχει μόνο μια έκφραση
Τελεστές
Σύμβολα ή Γνωστά ονόματα
ενδέχεται να έχουν οριστεί τελεστές σε αντικείμενα ομάδα που δεν γυρνούν τιμή, οπότε το συντακτικό αναπρογραμματίζεται!