Scala
De Viquipèdia
Scala és un llenguatge de programació modern multi-paradigma dissenyat per a expressar patrons de programació generals d'una manera concisa, elegant i segura respecte els tipus. Integra característiques de orientació a objectes i de llenguatges funcionals.
Taula de continguts |
[edita] Scala és orientat a objectes
Scala és un llenguatge pur O.O. (orientat a objectes) en el sentit que cada valor és un objecte. Els tipus i comportaments dels objectes són descrits mitjançant classes i 'trets'. L'abstracció classe s'estén mitjançant subclasses i també amb un mecanisme flexible basat en 'mixins' com a substitució neta de l' 'herència múltiple'.
[edita] Scala és funcional
Scala també és un llenguatge funcional en el sentit que cada funció és un valor. Scala proveeix una sintaxi fàcil per a la definició de funcions anònimes, suporta funcions d' ordre-elevat, permet l'aniuament de funcions i suporta el currying. Les classes per cas (ang.: case classes) i el suport que inclou de reconeixement de patrons, serveix per a modelar tipus algebraics, emprats en molts llenguatges de programació funcional.
A més a més, la noció de reconeixement de patrons estén de manera natural el procés de dades XML amb l'ajuda de seqüències de patrons ignorant el que hi ha a la dreta (ang.:right-ignoring). En aquest context, les comprehensions de seqüències (iteració sobre Generadors-Filtres-Mapeig) són útils per a formular consultes. Aquestes característiques fan de Scala l'ideal per a desenvolupar aplicacions com a serveis web.
[edita] Scala té tipus estàtics
Scala està equipat amb un sistema de tipus expressiu que assegura estàticament que les abstraccions s'utilitzin de manera coherent i segura. En particular el sistema de tipus suporta:
- classes genèriques,
- anotacions de variació,
- acotacions de tipus per dalt i per baix,
- classes internes i tipus abstractes com a membres de l'objecte,
- tipus compostos,
- auto referències tipificades explícitament,
- vistes, i
- mètodes polimòrfics.
Un mecanisme d'inferència de tipus permet que l'usuari no hagi d'anotar els tipus de manera redundant. En combinació, aquestes característiques proporcionen una base potent per a la reutilització segura de les abstraccions de programació i també per a la extensió de programari amb tipus de dades segurs.
[edita] Scala és extensible
El disseny de Scala reconeix el fet que, a la pràctica, el desenvolupament d'aplicacions d'un domini específic requereix extensions de llenguatge igualment específiques. Scala proporciona una combinació única de mecanismes de llenguatge que fan fàcil afegir noves construccions al llenguatge, amb suavitat , en forma de biblioteques:
- qualsevol mètode pot ser emprat com a operador infix o postfix, i
- els tancaments es construeixen automàticament depenent del tipus esperat.
Un ús conjunt d'ambdues característiques facilita la definició de noves instruccions sense estendre la sintaxi i sense emprar tècniques de meta-programació com ara macros.
[edita] Scala interopera amb Java i .NET
Scala està dissenyat per a interoperar bé amb entorns populars de programació com Java 2 (JRE) i el marc .NET (CLR). En particular, la interacció amb llenguatges orientats a objectes de gran acceptació com Java i C# és força suau. Scala té el mateix model de compilació (compilació separada, càrrega dinàmica de classes) que Java i C#, permetent accedir a milers de biblioteques d'alta qualitat.
[edita] Exemple: Hola món
El programa Hola món en Scala:
object HelloWorld { def main(args: Array[String]) = Console.println("Hola món!") }
[edita] Enllaços externs
- Lloc web d'Scala (anglès)
- Wiki de desenvolupadors d'Scala (anglès)
- Literate Programes en Scala (anglès)
- La Comunitat Scala (anglès)
Llenguatges de programació |
---|
Ada | ALGOL | Assemblador | Awk | Basic| BCPL | C | C++ | C# | Cobol | D | Delphi | Eiffel | Forth | Fortran | Haskell | Java | Lisp | Logo | MAGIC | Mercury | Miranda | Modula-2 | Oberon | Ocaml | Pascal | PHP | Perl | Prolog | Python | Rexx | Ruby | Scala | Smalltalk | Altres llenguatges... |