DOT DSL

DOT DSL

Μέτριο

Οδηγίες

Μια Γλώσσα Ειδικού Τομέα (DSL) είναι μια μικρή γλώσσα βελτιστοποιημένη για έναν συγκεκριμένο τομέα. Επειδή μια DSL έχει συγκεκριμένο στόχο, μπορεί να επηρεάσει σημαντικά την παραγωγικότητα και την κατανόηση, καθώς επιτρέπει σε όποιον τη γράφει να δηλώνει τι θέλει και όχι πώς θα το κάνει.

Ένας τομέας όπου βρίσκουν εφαρμογή είναι οι σύνθετες προσαρμογές και ρυθμίσεις.

Για παράδειγμα, η γλώσσα DOT σου επιτρέπει να γράψεις μια κειμενική περιγραφή ενός γράφου, η οποία μετά μετατρέπεται σε εικόνα από ένα από τα εργαλεία της Graphviz (όπως το dot). Ένας απλός γράφος μοιάζει κάπως έτσι:

graph {
    graph [bgcolor="yellow"]
    a [color="red"]
    b [color="blue"]
    a -- b [color="green"]
}

Αν το βάλεις σε ένα αρχείο example.dot και τρέξεις dot example.dot -T png -o example.png, δημιουργείται μια εικόνα example.png με έναν κόκκινο και έναν μπλε κύκλο ενωμένους με μια πράσινη γραμμή πάνω σε κίτρινο φόντο.

Γράψε μια Γλώσσα Ειδικού Τομέα παρόμοια με τη γλώσσα dot της Graphviz.

Η DSL μας μοιάζει με τη γλώσσα dot της Graphviz στο ότι θα χρησιμοποιηθεί για τη δημιουργία δομών δεδομένων γράφων. Ωστόσο, σε αντίθεση με τη γλώσσα DOT, η DSL μας θα είναι μια εσωτερική DSL, για χρήση μόνο στη δική μας γλώσσα.

Μάθε περισσότερα για τη διαφορά ανάμεσα στις εσωτερικές και τις εξωτερικές DSL.

Πρότυπο Builder

Σε αυτή την άσκηση θα χρειαστεί να φτιάξεις αρκετά struct χρησιμοποιώντας το builder pattern. Με λίγα λόγια, αυτό το πρότυπο σου επιτρέπει να χωρίσεις τη συνάρτηση κατασκευής του struct σου, που περιέχει πολλά ορίσματα, σε αρκετές ξεχωριστές συναρτήσεις. Αυτή η προσέγγιση σου δίνει τη δυνατότητα για συμπαγή αλλά εξαιρετικά ευέλικτη κατασκευή και διαμόρφωση struct. Μπορείς να διαβάσεις περισσότερα γι' αυτό στην παρακάτω σελίδα.


Πηγή

WikipediaΟ σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Rust Exercism

Έτοιμος να ξεκινήσεις την άσκηση DOT DSL;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις Rust με 99 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.