Οπτική γλώσσα προγραμματισμού

Στην επιστήμη υπολογιστών, οπτική γλώσσα προγραμματισμού (visual programming language, συντ. VPL) είναι μια γλώσσα προγραμματισμού που επιτρέπει στο χρήστη τη δημιουργία προγραμμάτων μέσα από το γραφικό χειρισμό προγραμματιστικών στοιχείων (αντί κειμένου). Μια VPL επιτρέπει τον προγραμματισμό με οπτικές εκφράσεις που είναι η τοποθέτηση στο χώρο κειμένου και γραφικών συμβόλων, είτε σαν σύνταξη, είτε σαν βοηθητική σύνταξη. Για παράδειγμα, υπάρχουν πολλές οπτικές γλώσσες, που είναι γνωστές σαν γλώσσες ροής δεδομένων (dataflow) ή διαγραμματικός προγραμματισμός (diagrammatic programming)[1], που βασίζονται στην ιδέα "τετράγωνα και βέλη" ("boxes and arrows"), όπου τα τετράγωνα (ή άλλου τύπου αντικείμενα) της οθόνης θεωρούνται οντότητες που συνδέονται από βέλη, γραμμές ή ακμές, που αναπαριστούν σχέσεις μεταξύ τους.

Το KTechlab χρησιμοποιεί διαγράμματα ροής για τον προγραμματισμό μικροελεγκτών με γραφικό τρόπο.

Οι οπτικές γλώσσες προγραμματισμού μπορούν να κατηγοριοποιηθούν, ανάλογα με τον τύπο και την έκταση της χρήσης των οπτκών εκφράσεων, σε γλώσσες βασισμένες στα εικονίδια (icon-based), γλώσσες βασισμένες στις φόρμες (form-based) και σε γλώσσες διαγραμμάτων (diagram languages). Περιβάλλοντα οπτικού προγραμματισμού παρέχουν τότε στοιχεία εικονιδίων ή γραφικών που μπορούν να χρησιμοποιηθούν διαλογικά από το χρήστη σύμφωνα με κάποια χωρική γραμματική (spatial grammar), για την κατασκευή ενός προγράμματος.

Γίνεται προσπάθεια να ενσωματωθεί ο οπτικός προγραμματισμός στις γλώσσες προγραμματισμού ροής δεδομένων (dataflow programming), ώστε να είναι πιο εύκολη και άμεση η αποσφαλμάτωσή τους ή η αυτόματη παραγωγή προγραμμάτων και τεκμηρίωσης (visual paradigm). Οι γλώσσες ροής δεδομένων επιτρέπουν επίσης αυτόματο παραλληλισμό (automatic parallelization), που αποτελεί σημαντικό και ανοιχτό πρόβλημα στον προγραμματισμό ηλεκτρονικών υπολογιστών.[1]

Οπτικές γλώσσες και διεπαφές Επεξεργασία

  • AgentSheets, ένα εύχρηστο εργαλείο δημιουργίας προγραμμάτων
  • AppWare, γνωστό και σαν MicroBrew, προγραμματισμός με εικονίδια για Mac OS και Microsoft Windows
  • AudioMulch, περιβάλλον για τη δημιουργία ήχου και μουσικής, με βάση τη ροή ακουστικών σημάτων
  • Macromedia Authorware
  • Cisco Unified Application Designer, περιβάλλον οπτικού προγραμματισμού για τη δημιουργεία εφαρμογών (Unified Communications), γνωστό και σαν Metreos Visual Designer
  • Catrobat, οπτική γλώσσα προγραμματισμού για κινητές συσκευές.
  • DRAKON, γλώσσα που σχεδιάστηκε για εφαρμογές στο Σοβιετικό διαστημόπλοιο Μπουράν
  • Προγραμματισμός με ροές (Flow-based programming)
  • Flowcode, γλώσσα που χρησιμοποιείται στο KTechlab, έναν προσομοιωτή και εργαλείο ανοιχτού κώδικα για τον προγραμματισμό μικροελεγκτών με κώδικα ροών (flowcode)
  • Function block diagrams, που χρησιμοποιούνται στους προγραμματιζόμενους λογικούς ελεγκτές (programmable logic controllers ή PLC)
  • Game Maker, εργαλείο ανάπτυξης παιχνιδιών
  • Google App Inventor, εργαλείο δημιουργίας εφαρμογών για το Google Android, βασισμένο στο OpenBlocks και το Kawa
  • GNU Radio Companion, περιβάλλον επεξεργασίας σήματος με χρήση οπτικών στοιχείων
  • Kodu, λογισμικό για τον προγραμματισμό παιχνιδιών με 3D εμφάνιση, από το Microsoft Research
  • LabVIEW, γραφική γλώσσα για μηχανικούς και επιστήμονες
 
Ένα μικρό διάγραμμα μπλοκ (block diagram) σε LabVIEW.
 
Δείγμα από τον προγραμματισμό σε Open Music.
  • Prograph
  • Εγχείρημα Πτολεμαίος (Ptolemy)
  • PWGL Αρχειοθετήθηκε 2011-05-03 στο Wayback Machine., γλώσσα βασισμένη στην Common Lisp, το CLOS και την OpenGL
  • Quartz Composer, γλώσσα για την επεξεργασία και απόδοση γραφικών δεδομένων (Mac OS X)
  • Reaktor, γλώσσα DSP και επεξεργασίας MIDI της Native Instruments
  • SCADE
  • Simulink
  • Σε Squeak
  • Scratch, του MIT, σχεδιασμένη για παιδιά και σχολική εκπαίδευση
  • SynthMaker, εργαλείο προγραμματισμού ήχου που χρησιμοποιεί μια οπτική γλώσσα προγραμματισμού
  • SynthEdit, όμοια με το SynthMaker
  • ToonTalk, σύστημα προγραμματισμού για παιδιά
  • VEE
  • VisSim, γλώσσα μοντελοποίησης και προσομοίωσης, επιτρέπει τη γρήγορη δημιουργία μαθηματικών μοντέλων και την εκτέλεσή τους σε πραγματικό χρόνο
  • Virtools, ενδιάμεσο λογισμικό (middleware) που χρησιμοποιείται για τη δημιουργία αλληλεπιδραστικών εμπειριών 3D
  • VISION/HPC, περιβάλλον οπτικού προγραμματισμού με drag-and-drop σε Python για τον προγραμματισμό υπολογισμών υψηλής απόδοσης (High-performance computing ή HPC)

Σημείωση: το Microsoft Visual Studio και οι γλώσσες του (Visual Basic, Visual C#, Visual J#, κλπ.) θεωρούνται "οπτικές" λόγω της χρήσης της αγγλικής λέξης "visual" στα ονόματά τους αλλά είναι κειμενικές γλώσσες, όχι γραφικές. Το MS Visual Studio είναι οπτικό περιβάλλον προγραμματισμού, αλλά όχι περιβάλλον οπτικου προγραμματισμού.

Δείτε επίσης Επεξεργασία

Παραπομπές Επεξεργασία

  1. Johnston, W.M.; Hanna, J.R.P. and Millar, R.J. (2004). «Advances in dataflow programming languages» (PDF). ACM Computing Surveys 36 (1): 1–34. doi:10.1145/1013208.1013209. Αρχειοθετήθηκε από το πρωτότυπο στις 2011-07-17. https://web.archive.org/web/20110717211326/http://www.cs.wayne.edu/~artem/main/swfseminar/dataflow_language_survey.pdf. Ανακτήθηκε στις 2011-02-16.