Γλώσσα προγραμματισμού σεναρίων

Μια γλώσσα σεναρίων είναι μια γλώσσα προγραμματισμού που υποστηρίζει σενάρια. Τα σενάρια είναι συνήθως σύντομα προγράμματα υπολογιστή που εκτελούν βήματα που θα μπορούσαν να γίνουν ένα προς ένα από ένα άτομο. Με τον τρόπο αυτό αυτοματοποιείται μια εργασία για να γίνει ευκολότερη και πιο αξιόπιστη. Μια γλώσσα σεναρίων είναι συχνά μια απλούστερη γλώσσα και ευκολότερη στην εκμάθηση από άλλες γλώσσες, αλλά παρόλα αυτά μπορεί να κάνει πολλά πράγματα.

Τα σενάρια μπορεί να εκτελούνται μέσα σε ένα άλλο πρόγραμμα, όπως σε ένα πρόγραμμα περιήγησης στο διαδίκτυο ή στο Microsoft Excel. Μπορεί επίσης να είναι ένα κέλυφος που εκτελείται από ένα περιβάλλον γραμμής εντολών και πραγματοποιεί κλήσεις στο λειτουργικό σύστημα (OS). Το κέλυφος θεωρείται διαδραστικό - ο χρήστης μπορεί να επιλέξει τι θα πληκτρολογήσει και το κέλυφος ανταποκρίνεται στην εντολή. Αυτά μπορούν να χρησιμοποιηθούν για τον έλεγχο εργασιών σε κεντρικούς υπολογιστές και διακομιστές.

Ορισμένοι λένε ότι μια γλώσσα σεναρίων πρέπει να συνδέεται με μια συγκεκριμένη χρήση. Άλλοι χρησιμοποιούν έναν ευρύτερο ορισμό και περιλαμβάνουν γλώσσες προγραμματισμού γενικής χρήσης που διερμηνεύονται και δεν μεταγλωττίζονται. Γενική χρήση σημαίνει ότι μπορεί να χρησιμοποιηθεί με πολλούς τρόπους για διαφορετικά πράγματα. Ορισμένες γλώσσες γενικού σκοπού (όπως η Java) έχουν παραλλαγές που μπορούν να γίνουν σεναριακές (Javascript). Δεν υπάρχει συγκεκριμένος κανόνας για το τι είναι ή δεν είναι γλώσσα σεναρίων.

Παραδείγματα

Μερικά κοινά παραδείγματα γλωσσών σεναρίων:

  • Bash και C shell, ως γλώσσες ελέγχου για τα λειτουργικά συστήματα Unix ή παρόμοια με το Unix
  • Τα σενάρια που εκτελούνται μέσα σε άλλες εφαρμογές ονομάζονται γλώσσα επέκτασης. Οι φυλλομετρητές ιστού επιτρέπουν διάφορα είδη σεναρίων, όπως το ECMAScript (JavaScript) ή το XUL. Για παράδειγμα, η αρχική σελίδα της Google χρησιμοποιεί JavaScript. Η Visual Basic for Applications χρησιμοποιείται μέσα στο Microsoft Office. Η Lua είναι μια γλώσσα που φτιάχτηκε σκόπιμα ως γλώσσα επέκτασης και μπορεί να χρησιμοποιηθεί μέσα σε πολλές εφαρμογές.
  • Στα παιχνίδια που διαθέτουν επεκτάσεις σεναρίων περιλαμβάνονται ο εικονικός κόσμος Second Life και οι προσομοιωτές σιδηροδρόμων Trainz. Σε άλλα παιχνίδια όπως το Wesnoth, η ποικιλία των πραγματικών παιχνιδιών που παίζονται είναι σενάρια που έχουν γραφτεί από άλλους χρήστες.
  • Γλώσσες επεξεργασίας κειμένου sed και AWK
  • Γενικού σκοπού: Η Perl, η Tcl και η Python είναι γλώσσες προγραμματισμού υψηλού επιπέδου (πιο κοντά στην ανθρώπινη γλώσσα παρά στον κώδικα μηχανής) που μπορούν να χρησιμοποιηθούν για πολλά διαφορετικά πράγματα. Ορισμένες από αυτές τις γλώσσες δημιουργήθηκαν αρχικά για μια συγκεκριμένη χρήση και στη συνέχεια μετατράπηκαν σε γλώσσες γενικού σκοπού.

Χαρακτηριστικά

Οι περισσότερες γλώσσες σεναρίων είναι εύκολες στην εκμάθηση. Συχνά μπορούν να είναι είτε μικρά αρχεία με πηγαίο κώδικα, είτε να εισάγονται με μία εντολή κάθε φορά σε ένα περιβάλλον γραμμής εντολών, το οποίο διαθέτει έναν βρόχο ανάγνωσης-εκτίμησης-εκτύπωσης (REPL, κέλυφος γλώσσας). Αυτό συνήθως σημαίνει ένα απλό σύνολο εντολών. Μπορεί να μην υπάρχουν συναρτήσεις ή main, απλά εκτελείται από την αρχή μέχρι το τέλος. Αν κάτι δεν λειτουργεί, ο προγραμματιστής μπορεί να κάνει γρήγορες αλλαγές και να το εκτελέσει ξανά. Αυτό κάνει μια γλώσσα σεναρίων καλή για τη δημιουργία ενός γρήγορου πρωτοτύπου για να δούμε αν μια ιδέα λειτουργεί.

Για παράδειγμα, οι περισσότεροι άνθρωποι δεν αποκαλούν τη Java γλώσσα σεναρίων, λόγω της μακροσκελούς σύνταξης και των κανόνων σχετικά με το ποιες κλάσεις υπάρχουν σε ποια αρχεία, και επειδή η Java δεν μπορεί να εκτελεστεί διαδραστικά σε ένα REPL. Χρειάζεται αρχεία με πηγαίο κώδικα, και αυτά μπορούν να περιέχουν μόνο ορισμούς που πρέπει να χρησιμοποιηθούν από μια εφαρμογή υποδοχής ή έναν εκκινητή εφαρμογών. (Η Java δεν είναι το ίδιο με τη JavaScript).

Αλλά η Python επιτρέπει επιλογές - οι συναρτήσεις μπορούν να τοποθετηθούν σε ένα αρχείο, μπορεί να εκτελεστεί χωρίς συναρτήσεις και να χρησιμοποιηθεί προστακτικό στυλ προγραμματισμού, ή ακόμη και να χρησιμοποιηθεί διαδραστικά (πληκτρολογήστε και εκτελέστε μια γραμμή κάθε φορά).

print ("Hello World")

Αυτή η μία γραμμή κώδικα Python εκτυπώνει το "Hello World"- δεν χρειάζεται η συνάρτηση main() ή οτιδήποτε άλλο.

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

Οι γλώσσες σεναρίων μπορούν να σχεδιαστούν για να χρησιμοποιούνται από τα άτομα που χρησιμοποιούν ένα πρόγραμμα - ανάπτυξη τελικού χρήστη. Άλλες φορές μπορεί να κατασκευάζονται από προγραμματιστές για δική τους χρήση. Οι γλώσσες σεναρίων χρησιμοποιούν συχνά την αφαίρεση, μια μορφή απόκρυψης πληροφοριών. Αυτό σημαίνει ότι οι χρήστες δεν χρειάζεται να γνωρίζουν τις λεπτομέρειες των τύπων μεταβλητών, της αποθήκευσης δεδομένων και της διαχείρισης μνήμης.

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

Ιστορία

Οι πρώτοι υπολογιστές κεντρικών υπολογιστών (τη δεκαετία του 1950) δεν ήταν διαδραστικοί, αλλά χρησιμοποιούσαν σενάρια αποθηκευμένα σε αρχεία δέσμης. Η Job Control Language (JCL) της IBM είναι το συνηθισμένο παράδειγμα μιας γλώσσας σεναρίων που χρησιμοποιείται για τον έλεγχο της επεξεργασίας παρτίδων.

Τα πρώτα διαδραστικά κελύφη κατασκευάστηκαν τη δεκαετία του 1960 για να βοηθήσουν στην απομακρυσμένη λειτουργία των πρώτων συστημάτων διαμοιρασμού χρόνου. Αυτά χρησιμοποιούσαν σενάρια κελύφους, τα οποία μπορούν να εκτελούν προγράμματα υπολογιστή μέσα σε ένα πρόγραμμα υπολογιστή, το κέλυφος. Στον Calvin Mooers στη γλώσσα TRAC αποδίδονται γενικά τα εύσημα για την εφεύρεση της αντικατάστασης εντολών. Αυτό επιτρέπει στις εντολές να αλλάζουν το σενάριο (αυτοτροποποιητικός κώδικας). Το Multics ονομάζει αυτές τις ενεργές συναρτήσεις. Ο Louis Pouzin έγραψε έναν πρώιμο επεξεργαστή για σενάρια εντολών με το όνομα RUNCOM για το CTSS γύρω στο 1964. Ο Stuart Madnick στο MIT έγραψε μια γλώσσα σεναρίων για το CP/CMS της IBM το 1966. Αρχικά ονόμασε αυτόν τον επεξεργαστή COMMAND, αργότερα ονομάστηκε EXEC. Το Multics περιελάμβανε ένα παρακλάδι του CTSS RUNCOM, που επίσης ονομαζόταν RUNCOM. Το EXEC αντικαταστάθηκε τελικά από το EXEC 2 και το REXX.

Γλώσσες όπως η Tcl και η Lua φτιάχτηκαν από την αρχή για να είναι γλώσσες σεναρίων γενικής χρήσης που θα μπορούσαν να τοποθετηθούν σε οποιαδήποτε εφαρμογή. Άλλες γλώσσες όπως η Visual Basic for Applications (VBA) μπορούσαν να κάνουν πολλά από τα ίδια, αλλά έπρεπε να λειτουργούν μόνο με ορισμένες εφαρμογές. Η χρήση μιας γλώσσας σεναρίων γενικής χρήσης αντί της δημιουργίας μιας νέας γλώσσας για κάθε εφαρμογή συνήθως διευκολύνει τόσο το άτομο που γράφει την εφαρμογή όσο και τον χρήστη που γράφει τα σενάρια.

Τύποι γλωσσών σεναρίων

Γλώσσες κόλλας

Μερικές φορές χρησιμοποιείται scripting για τη σύνδεση διαφορετικών εφαρμογών. Αυτό ονομάζεται κώδικας κόλλας, και μια γλώσσα που δημιουργήθηκε ακριβώς για αυτόν τον σκοπό είναι μια γλώσσα κόλλας. Οι σωληνώσεις και το shell scripting είναι κοινά παραδείγματα γλωσσών κόλλας. Αν όμως πολλή λογική γράφεται σε ένα αρχείο δέσμης ενεργειών, είναι προτιμότερο να το θεωρείτε απλώς ως μια άλλη εφαρμογή λογισμικού και όχι ως "κόλλα".

Οι γλώσσες κόλλας είναι ιδιαίτερα χρήσιμες για τη συγγραφή και τη συντήρηση:

  • προσαρμοσμένες εντολές για ένα κέλυφος εντολών,
  • μικρότερα προγράμματα από εκείνα που υλοποιούνται καλύτερα σε μια μεταγλωττισμένη γλώσσα,
  • προγράμματα "περιτύλιξης" που κάνουν κάποια αυτοματοποιημένα πράγματα πριν ή μετά την εκτέλεση μιας εφαρμογής, όπως ένα λογιστικό φύλλο, μια βάση δεδομένων, ένας μεταγλωττιστής κ.λπ,
  • σενάρια που μπορεί να αλλάζουν συχνά,

Παραδείγματα γλώσσας κόλλας:

  • AppleScript
  • awk
  • JCL
  • Lua
  • m4
  • Perl
  • Σενάρια Unix Shell (ksh, csh, bash, sh και άλλα)
  • VBScript
  • Γλώσσα ροής εργασίας
  • Windows PowerShell
  • XSLT

Συσκευές όπως οι προγραμματιζόμενες αριθμομηχανές μπορεί επίσης να έχουν τις δικές τους γλώσσες κόλλας. Για παράδειγμα, η Texas Instruments TI-92, από την εργοστασιακή προεπιλογή μπορεί να προγραμματιστεί με μια γλώσσα εντολών σεναρίου. Η αριθμομηχανή TI-NSpire κατανοεί τη γλώσσα Lua. Άλλες καταλαβαίνουν κάποιο είδος γλώσσας Basic, ή ίσως Lisp ή κάτι άλλο.

Γλώσσες και κελύφη ελέγχου εργασιών

Η ομάδα αυτή προέρχεται από την αυτοματοποίηση του ελέγχου εργασιών, ο οποίος αφορά την εκκίνηση και τον έλεγχο της συμπεριφοράς των προγραμμάτων του συστήματος, ξεκινώντας από το JCL της IBM. Πολλοί από τους διερμηνείς αυτών των γλωσσών λειτουργούν επίσης ως διερμηνείς γραμμής εντολών, όπως το κέλυφος του Unix ή το COMMAND.COM του MS-DOS. Άλλοι, όπως η AppleScript, προσφέρουν τη χρήση εντολών που μοιάζουν με τις αγγλικές για τη δημιουργία σεναρίων.

GUI scripting

Κατά την κατασκευή γραφικών διεπαφών χρήστη, απαιτείται ένας τρόπος δοκιμής τους. Εξειδικευμένες γλώσσες σεναρίων δημιουργήθηκαν για τον έλεγχο γραφικών παραθύρων, μενού, κουμπιών κ.ο.κ. ακριβώς όπως θα έκανε ένας ανθρώπινος χρήστης. Πολλές φορές, αυτές μπορούν να χρησιμοποιηθούν για να αντιγράψουν ακριβώς ό,τι κάνει ένας άνθρωπος (μετακινώντας ένα ποντίκι, κάνοντας κλικ ή πληκτρολογώντας σε ένα πληκτρολόγιο). Αυτή η ενέργεια ή το σύνολο ενεργειών που αντιγράφεται και απομνημονεύεται ονομάζεται μακροεντολή.

Γλώσσες ειδικών εφαρμογών

Πολλές μεγάλες εφαρμογές περιλαμβάνουν μια γλώσσα σεναρίων που έχει δημιουργηθεί μόνο για τη συγκεκριμένη εφαρμογή. Η εφαρμογή μπορεί να είναι ένα παιχνίδι ή ένα επιχειρηματικό πρόγραμμα. Αυτός ο τύπος γλώσσας είναι φτιαγμένος για μια και μόνο εφαρμογή. Μοιάζουν με γλώσσα γενικής χρήσης (π.χ. QuakeC, που έχει ως πρότυπο τη C), έχουν προσαρμοσμένα χαρακτηριστικά που τις διακρίνουν.

Επέκταση/ενσωματώσιμες γλώσσες

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

Η JavaScript ξεκίνησε ως μια γλώσσα για τη δημιουργία σεναρίων μέσα σε προγράμματα περιήγησης στο διαδίκτυο, αλλά τώρα είναι μια γλώσσα γενικού σκοπού που μπορεί να ενσωματωθεί. Χρησιμοποιείται επίσης σε προϊόντα της Adobe, για παράδειγμα.

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

Ερωτήσεις και απαντήσεις

Ε: Τι είναι η γλώσσα σεναρίων;


A: Μια γλώσσα σεναρίων ή scripting language είναι μια γλώσσα προγραμματισμού που υποστηρίζει σενάρια.

Ε: Τι είναι τα σενάρια;


A: Τα σενάρια είναι συνήθως σύντομα προγράμματα υπολογιστή που εκτελούν βήματα που θα μπορούσαν να γίνουν ένα προς ένα από ένα άτομο.

Ε: Γιατί είναι χρήσιμα τα σενάρια;


Α: Με αυτόν τον τρόπο αυτοματοποιείται μια εργασία για να γίνει ευκολότερη και πιο αξιόπιστη.

Ερ: Είναι δύσκολο να μάθει κανείς μια γλώσσα σεναρίων;


Α: Μια γλώσσα σεναρίων είναι συχνά μια απλούστερη γλώσσα και ευκολότερη στην εκμάθηση από άλλες γλώσσες, αλλά παρόλα αυτά μπορεί να κάνει πολλά πράγματα.

Ε: Πού μπορούν να εκτελούνται τα σενάρια;


Α: Τα σενάρια μπορούν να εκτελούνται μέσα σε ένα άλλο πρόγραμμα, όπως σε ένα πρόγραμμα περιήγησης στο διαδίκτυο ή στο Microsoft Excel.

Ε: Τι είναι το κέλυφος στις γλώσσες σεναρίων και πώς χρησιμοποιείται;


Α: Μπορεί επίσης να είναι ένα κέλυφος που εκτελείται από ένα περιβάλλον γραμμής εντολών και πραγματοποιεί κλήσεις προς το λειτουργικό σύστημα (OS). Το κέλυφος θεωρείται διαδραστικό - ο χρήστης μπορεί να επιλέξει τι θα πληκτρολογήσει και το κέλυφος ανταποκρίνεται στην εντολή. Αυτά μπορούν να χρησιμοποιηθούν για τον έλεγχο εργασιών σε κεντρικούς υπολογιστές και διακομιστές.

Ερ: Μπορεί μια γλώσσα γενικού σκοπού να είναι γλώσσα σεναρίων;


Α: Ορισμένοι λένε ότι μια γλώσσα σεναρίων πρέπει να συνδέεται με μια συγκεκριμένη χρήση. Άλλοι χρησιμοποιούν έναν ευρύτερο ορισμό και περιλαμβάνουν γλώσσες προγραμματισμού γενικού σκοπού που διερμηνεύονται και δεν μεταγλωττίζονται. Γενικού σκοπού σημαίνει ότι μπορεί να χρησιμοποιηθεί με πολλούς τρόπους για διαφορετικά πράγματα. Ορισμένες γλώσσες γενικού σκοπού (όπως η Java) έχουν παραλλαγές που μπορούν να γίνουν σεναριακές. Δεν υπάρχει συγκεκριμένος κανόνας για το τι είναι ή δεν είναι γλώσσα σεναρίων.

AlegsaOnline.com - 2020 / 2023 - License CC3