Τα σύγχρονα υπολογιστικά περιβάλλοντα χαρακτηρίζονται από έντονη χρήση διερμηνευτών (scripting languages). Μεταξύ άλλων, διερμηνευτές χρησιμοποιούνται για τη διαχείριση συστήματων (bash, powershell, msi), την αυτοματοποίηση διαδικασιών σε εφαρμογές (Microsoft Office, Alias Maya, Sonar, AutoCad), τη δημιουργία ψηφιακών παιχνιδιών (UnrealScript, LUA) αλλά και για την ανάπτυξη εφαρμογών για τον Παγκόσμιο Ιστό.
Ειδικά για τη περίπτωση του Διαδικτύου, φαίνεται ότι η εξέλιξη του Παγκόσμιου Ιστού είναι συνυφασμένη με την παράλληλη εξέλιξη των διερμηνευτών: νέες γλώσσες δημιουργούνται ώστε να υποστηρίξουν νέες τεχνολογίες. Σήμερα, πολλές ετερογενείς τεχνολογίες αλληλεπιδρούν ώστε εξυπηρετητής και φυλλομετρητής να παράγουν και να παρουσιάσουν διαδραστικό περιεχόμενο στο χρήστη. Από τη μεριά του εξυπηρετητή, χρησιμοποιούνται γλώσσες όπως οι Php, Jsp και Asp.Net. Το περιεχόμενο που παράγεται παρουσιάζεται στο χρήστη με τη χρήση γλωσσών όπως οι html, Javascript και Actionscript.
Οι διερμηνευτές γίνονται όλο και πιο διαδεδομένοι, καθώς προσφέρουν ευελιξία στην ανάπτυξη του κώδικα, ανεξαρτησία από την υπολογιστική αρχιτεκτονική και μειωμένους χρόνους ανάπτυξης, αφού δεν απαιτείται μεταγλώττιση ενώ το συντακτικό είναι απλο¬ποιημένο. Για τη βελτίωση της απόδοσης, οι σύγχρονοι διερμηνευτές χρησιμοποιούν Just-in-time compilation τεχνικές: ουσιαστικά μετατρέπουν το πηγαίο κώδικα σε ενδιάμεσο κώδικα, άμεσα εκτελέσιμο από μια μηχανή εκτέλεσης (ιδεατή μηχανή). Αυτό δυσχεραίνει περαιτέρω το διαχωρισμό μεταξύ διερμηνευτή και μεταγλωττιστή. Λόγω των παραπάνω χαρακτηριστικών και κυρίως λόγω της ανεξαρτησίας τους από την αρχιτεκτονική, οι διερμηνευτές αποτελούν τη βάση για τη συντριπτική πλειοψηφία των Εφαρμογών Ιστού.
Εντούτοις, καθώς η πολυπλοκότητα των διαδικτυακών εφαρμογών αυξάνεται, η χρήση των υπαρχόντων τεχνολογιών επιβραδύνει σημαντικά την ανάπτυξη: Για μια απλή δυναμική ιστοσελίδα απαιτείται η συγγραφή κώδικα σε τουλάχιστον τρεις γλώσσες: Κάθε στοιχείο της εφαρμογής (βάση δεδομένων, εξυπηρετητής, πελάτης) προγραμματίζεται σε διαφορετικό γλωσσικό περιβάλλον. Ο προγραμματιστής καλείται να διαχειριστεί την επικοινωνία και αλληλεπίδραση των ετερογενών στοιχείων αυτών και να επιλύσει τυχόν ασυμβατότητες. Ένα μεγάλο μέρος του χρόνου ανάπτυξης μιας εφαρμογής καταναλώνεται στη διαχείριση αυτού του ετερογενούς συστήματος. Με την άφιξη νέων τεχνολογιών, όπως για παράδειγμα οι Ajax, Silverlight, JavaFX, η διαχείριση των εγγενών προβλημάτων του συστήματος αυτού δυσχεραίνεται ακόμη περισσότερο.
Στα πλαίσια της εργασίας αυτής διερευνώνται οι κυριότερες σύγχρονες τεχνολογίες διερμηνευτών για ανάπτυξη εφαρμογών, με έμφαση στις τεχνολογίες Ιστού. Κάθε γλώσσα αναλύεται ξεχωριστά και σχολιάζονται οι ιδιαιτερότητες και τα ειδικά χαρακτηριστικά της. Παράλληλα εντοπίζονται τα εγγενή προβλήματα ασυμβατότητας που συναντώνται στο υπάρχον μοντέλο ανάπτυξης και παρουσιάζεται ένα εναλλακτικό, ενοποιημένο μοντέλο ανάπτυξης διαδικτυακών εφαρμογών, το οποίο ομαδοποιεί και απλοποιεί τις προγραμματιστικές διαδικασίες των συστημάτων πελάτη και εξυπηρετητή. / Scripting languages find many applications in modern computing environments. Scripts are used in various scenarios, including system administration (bash, powershell, msi), job automation (Microsoft Office, Alias Maya, Sonar, AutoCad), logic programming in computer entertainment and of course in Internet Applications.
Internet technologies are the primary example application of scripts (interpreters in general): a connection between scripts and the development of the World Wide Web can be observed: new scripting systems arise to support newly developed technologies. In modern internet applications, different technologies co-exist and interact so that the server and the client can present interactive content to the end user. On the server side, technologies like Php, Jsp and As[.Net are used. The resulting content is presented on the client side with technologies such as html/xml, Javascript, Flex and Actionscript.
Scripting Languages (interpreters) are becoming increasingly popular, as they offer versatility, platform-independence and reduced development times, since they feature a simplified syntax and they do not require complex compilation procedures. To increase performance, modern Scripting systems feature Just-In-Time compilation techniques, effectively creating a compiled version of their input source code. This version of the code can be easily executed by the system’s Virtual Machine (Execution Engine). Such techniques blur the borders between Compilers and Interpreters. The features detailed above make interpreters the ideal solution for web application development, mainly because they are inherently cross-platform. Most of the available web-technologies expose an interpreted language system.
However, as the complexity in modern web-applications and related technologies increases, current scripting systems are becoming a bottleneck in the development process: To develop a proper dynamic web page, the programmer will be required to use at least three different languages: A language for accessing the data base (sql), a language to program the server side of the application (Php, Jsp, Asp) and a set of languages to present content to the end user (javascript). It is up to the programmer to orchestrate the various scripts and manage any incompatibilities arising, when using those independent systems. This hampers the development process, as extra effort is taken to manage the programming environment rather than actually develop the program. With new technologies, like Silverlight, Ajax and Flex arising, managing inherent incompatibilities becomes even more difficult.
To tackle the increased development complexity, a new web application development paradigm is explored and the features of the corresponding language are detailed, as is a simple implementation scheme. A study of available mainstream scripting languages, with a focus in Web development, is also presented. Each language is presented with a description of its key features and syntax and a comparison with similar development systems.
Identifer | oai:union.ndltd.org:upatras.gr/oai:nemertes:10889/2626 |
Date | 08 February 2010 |
Creators | Ψιστάκης, Ιωσήφ |
Contributors | Πολυχρονόπουλος, Ελευθέριος, Ψιστάκης, Ιωσήφ, Πολυχρονόπουλος, Ελευθέριος, Παπαθεοδώρου, Θεόδωρος, Λυκοθανάσης, Σπυρίδων |
Source Sets | University of Patras |
Language | gr |
Detected Language | Greek |
Type | Thesis |
Rights | 6 |
Relation | Η ΒΥΠ διαθέτει αντίτυπο της διατριβής σε έντυπη μορφή στο βιβλιοστάσιο διδακτορικών διατριβών που βρίσκεται στο ισόγειο του κτιρίου της. |
Page generated in 0.0029 seconds