Scala: Διαφορά μεταξύ των αναθεωρήσεων

Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
Stergios.ntua (συζήτηση | συνεισφορές)
Χωρίς σύνοψη επεξεργασίας
Stergios.ntua (συζήτηση | συνεισφορές)
Χωρίς σύνοψη επεξεργασίας
Γραμμή 14:
}}</ref>. Υπάρχει μια εναλλακτική υλοποίηση για την πλατφόρμα [[.NET]], αλλά δεν αναπτύσσεται ενεργά.<ref>http://www.artima.com/weblogs/viewpost.jsp?thread=163733</ref>.
 
Η Scala έχει το ίδιο μοντέλο μεταγλώττισης με τη [[Java]] και τη [[C δίεσηSharp|C#]] (ξεχωριστή μεταγλώττιση, δυναμική φόρτωση κλάσεων), επομένως ο κώδικας σε Scala μπορεί να καλεί βιβλιοθήκες της Java (ή βιβλιοθήκες της πλατφόρμας .NET στην υλοποίηση για .NET).
 
Τα λειτουργικά χαρακτηριστικά της Scala είναι ίδια με αυτά της Java. ο μεταγλωττιστής της Scala παράγει κώδικα [[byte]] (byte code) που είναι σχεδόν ίδιος με αυτόν του μεταγλωττιστή της Java. Στην πραγματικότητα, είναι δυνατόν να απο-μεταγλωττιστεί (decompile) ο κώδικας της Scala σε ευανάγνωστο κώδικα της Java, με την εξαίρεση κάποιων λειτουργιών κατασκευαστών. Όσον αφορά την εικονική μηχανή (JVM), δε γίνεται κάποια διάκριση μεταξύ κώδικα Scala και κώδικα Java. Η μόνη διαφορά είναι μια επιπλέον βιβλιοθήκη χρόνου εκτέλεσης, η scala-library.[[JAR|jar]]<ref>{{Cite web |url=http://blog.lostlake.org/index.php?%2Farchives%2F73-For-all-you-know%2C-its-just-another-Java-library.html |title=Αρχειοθετημένο αντίγραφο |accessdate=2019-09-24 |archiveurl=https://web.archive.org/web/20100831041226/http://blog.lostlake.org/index.php?%2Farchives%2F73-For-all-you-know%2C-its-just-another-Java-library.html |archivedate=2010-08-31 |url-status=dead }}</ref>.
 
Η διανομή λογισμικού της Scala, που περιέχει το μεταγλωττιστή και τις βιβλιοθήκες, διανέμεται κάτω από την άδεια λογισμικού [[Άδεια BSD|BSD]]<ref>http://www.scala-lang.org/node/146</ref>.
 
== Ιστορία ==
Η σχεδίαση της Scala άρχισε το 2001 στο École Polytechnique Fédérale de Lausanne (EPFL) από τον Martin Odersky, σαν συνέχεια δουλειάς πάνω στη Funnel, μια γλώσσα προγραμματισμού που συνδύαζε ιδέες από το συναρτησιακό προγραμματισμό και τα δίκτυα Petri (Petri nets)<ref name="history-of-scala">Martin Odersky, [http://www.artima.com/weblogs/viewpost.jsp?thread=163733 "A Brief History of Scala"], Artima.com weblogs, June 9, 2006</ref>. Ο Odersky είχε πιο πριν εργαστεί στην Generic Java και στον javac, τον μεταγλωττιστή της [[Sun Microsystems|Sun]] για τη Java<ref name="history-of-scala"/>. Η Scala κυκλοφόρησε στην περίοδο τέλος του 2003 - αρχές του 2004 <!-- overview says January 2004, spec says November 2003 --> στην πλατφόρμα της Java, και τον Ιούνιο του 2004 στην πλατφόρμα .NET<ref name="overview"/><ref name="history-of-scala"/><ref name="spec">Martin Odersky, "The Scala Language Specification Version 2.7"</ref>. Μια δεύτερη έκδοση της γλώσσας, η v2.0, κυκλοφόρησε το Μάρτιο του 2006<ref name="overview"/>.
 
== Αντικειμενοστραφή χαρακτηριστικά ==
Γραμμή 27:
 
== Συναρτησιακός προγραμματισμός ==
Η Scala επίσης υποστηρίζει το συναρτησιακό προγραμματισμό. Η γλώσσα παρέχει μια ελαφρήελαφριά [[Σύνταξη (γλώσσα προγραμματισμού)|σύνταξη]] για τον ορισμό ανώνυμων συναρτήσεων, υποστηρίζει συναρτήσεις ανώτερης τάξης, επιτρέπει την ένθεση συναρτήσεων και υποστηρίζει το currying (μερική εφαρμογή συναρτήσεων σε λιγότερα ορίσματα από αυτά που δέχονται). Η χρήση της δεσμευμένης λέξης "lazy" μεταθέτει την αρχικοποίηση μιας μεταβλητής μέχρι το χρόνο χρήσης της.
 
Ακολουθεί μια υλοποίηση του αλγόριθμου ταξινόμησης Quicksort σε συναρτησιακό στυλ, για σύγκριση με τον αντίστοιχο της [[Erlang]]:
Γραμμή 62:
== Λογισμικό που χρησιμοποιεί Scala ==
 
Το Lift είναι ελεύθερο λογισμικό για εφαρμογές διαδικτύου (web-apps) με παρόμοιους στόχους με το [[Ruby on Rails]]. Η χρήση της Scala συνεπάγεται ότι στην εκτέλεση εφαρμογών σε Lift μπορεί να χρησιμοποιηθεί κάθε υπάρχουσα βιβλιοθήκη ή Web container της Java.
 
Τον Απρίλιο του 2009 το [[Twitter]] ανακοίνωσε ότι μετέφεραν μεγάλα τμήματα του πίσω κώδικά τους από [[Ruby]] σε Scala με σκοπό να συνεχίσουν αυτήν τη μετατροπή και στον υπόλοιπο κώδικά τους<ref> {{cite web
Γραμμή 110:
> scala -classpath . HelloWorld
 
Η παραπάνω διαδικασία είναι ανάλογη με τη διαδικασί αδιαδικασία που ακολουθείται για τη μεταγλώττιση και εκτέλεση του ίδιου προγράμματος σε Java. Το μοντέλο μεταγλώττισης και εκτέλεσης της Scala είναι ταυτόσημο με αυτό της Java, με αποτέλεσμα να υπάρχει συμβατότητα με τα εργαλεία ανάπτυξης και μεταγλώττσιηςμεταγλώττισης της Java όπως το [[Apache Ant|Ant]].
 
Επίσης το ίδιο πρόγραμμα μπορεί να πληκτρολογηθεί κατευθείαν στο διερμηνέα της Scala, με την επιλογή '''-i''' (για να φορτώσει τον κώδικα από το αρχείο) και την επιλογή '''-e''' (για να εκτελέσει τον επιπλέον κώδικα που χρειάζεται για να κληθεί η μέθοδος του αντικειμένου του HelloWorld):
Ανακτήθηκε από "https://el.wikipedia.org/wiki/Scala"