Share to: share facebook share twitter share wa share telegram print page

Racket (linguaggio di programmazione)

Racket
linguaggio di programmazione
AutorePLT Inc.
Data di origine1994
Ultima versione8.13 (16 maggio 2024)
Utilizzo{{{utilizzo}}}
ParadigmiMulti-paradigma: funzionale, procedurale, modulare, orientata agli oggetti, logica, riflessiva, meta
Tipizzazionedinamica
Estensioni comuni.rkt, .rktl, .rktd, .scrbl, .plt, .ss, .scm
Influenzato daScheme, Eiffel[1]
Ha influenzatoScheme,[2] Rust,[3][4] Clojure[5]
Implementazione di riferimento
Sistema operativoCross-platform
LicenzaLGPL
Sito webracket-lang.org/

Racket (precedentemente noto come PLT Scheme) è un linguaggio di programmazione general purpose multi-paradigma della famiglia Lisp-Scheme. Uno degli obiettivi dietro alla sua progettazione è quello di servire come piattaforma per la progettazione, creazione e implementazione di nuovi linguaggi.[6][7] È usato in una varietà di contesti, come scripting, programmazione general purpose, didattica dell'informatica e ricerca.

La distribuzione fornisce un'implementazione del linguaggio (comprensiva di un sofisticato run-time system,[8] diverse librerie e compilatore JIT) insieme con un ambiente di sviluppo integrato chiamato DrRacket (precedentemente noto come DrScheme) scritto esso stesso in Racket.[9] Il linguaggio è noto per il suo versatile sistema di macro che consente di creare facilmente nuovi linguaggi e dialetti con diversi costrutti o una differente semantica.[10][11][12][13]

La distribuzione è open source, coperta da licenza GNU Lesser General Public License (LGPL),[14] ed estensioni e package realizzati dalla comunità sono disponibili attraverso un package manager centralizzato.

Storia

Sviluppo

Matthias Felleisen fondò PLT a metà degli anni 1990, dapprima come gruppo di ricerca, che poco dopo è divenuto un progetto orientato alla produzione di materiale didattico per programmatori. Nel gennaio 1995 il gruppo decise di creare un ambiente di programmazione didattico basato su Scheme. Matthew Flatt mise insieme MrEd, l'originale virtual machine, a partire da libscheme,[15] wxWidgets e alcuni altri sistemi liberi.[16] Negli anni successivi un team composto da Flatt, Robby Findler, Shriram Krishnamurthi, Cormac Flanagan e diversi altri realizzò DrScheme, un ambiente di sviluppo per novizi programmatori che costituiva anche un ambiente di ricerca per il soft typing.[9] Il linguaggio principale supportato da DrScheme venne quindi chiamato PLT Scheme.

In parallelo, il team iniziò a tenere workshop per insegnanti delle scuole superiori, insegnando design e programmazione funzionale. Test sul campo condotti su questi insegnanti e i loro studenti furono importanti indizi per guidare lo sviluppo.

Negli anni seguenti il gruppo PLT ha aggiunto un tool noto come algebraic stepper, per la valutazione passo-passo delle espressioni,[17] un interprete read-eval-print loop, un constructor-based printer, insieme a diversi altri strumenti. Nel 2001 i quattro sviluppatori principali del team (Felleisen, Findler, Flatt e Krishnamurthi) hanno pubblicato un libro che sintetizza la loro filosofia della didattica della programmazione, intitolato How to Design Programs.

Versioni

La prima generazione di revisioni al linguaggio PLT Scheme ha introdotto costrutti per la programmazione su larga scala, con l'aggiunta di moduli e classi. La versione 42 ha introdotto le unità, un sistema di moduli first-class, complementari alle classi per lo sviluppo di programmi di grandi dimensioni.[18] Il sistema di classi ha visto l'introduzione di interfacce in stile Java e l'eliminazione di alcune caratteristiche, come l'ereditarietà multipla.[11] A partire dalla versione 53 il linguaggio ha acquisito una certa popolarità, e un rilascio principale è stato la versione 100, paragonabile alla versione 1.0 in un sistema di semantic versioning.

La successiva release principale è stata la 200, che ha introdotto un nuovo sistema di moduli predefinito, che si integra con il sistema di macro,[18] garantendo la separazione tra valutazioni eseguite a run-time e a compile-time, permettendo quindi di creare una "torre di linguaggi".[19] A differenza delle unità, questi moduli non sono oggetti di prima classe.

La versione 300 ha introdotto il supporto Unicode, FFI, e ritocchi al sistema di classi.[18] Release successive nel ramo 300 hanno migliorato le prestazioni del runtime, con l'aggiunta di un compilatore JIT e un sistema predefinito per la generational garbage collection.

Con la nuova major release, il progetto è passato ad una numerazione delle versioni più convenzionale. La versione 4.0 ha introdotto la scorciatoia #lang per specificare il linguaggio nel quale un modulo è scritto, oltre a coppie e liste immutabili, supporto per il calcolo parallelo fine-grained, e un dialetto del linguaggio a tipizzazione statica.[20]

Ridenominazione

Il 7 giugno 2010, in concomitanza con la release 5.0, PLT Scheme è stato ribattezzato Racket.[21] Nella versione 5.1 il backend dell'interfaccia grafica è stato riscritto da C++ a Racket stesso, usando un sistema di widget nativi su tutte le piattaforme.[16] La versione 5.2 ha visto l'introduzione di un sistema di analisi statica del codice, una nuova libreria di plotting, una libreria di interfaccia database, e un nuovo REPL maggiormente esteso.[22] La versione 5.3 ha introdotto, tra le varie novità, una funzionalità che permette il caricamento opzionale dei submodules,[23] nuovi strumenti di ottimizzazione, una libreria JSON.[24] Nella versione 5.3.1 sono state aggiunte alcune caratteristiche a DrRacket: il controllo sintattico è stato attivato come opzione predefinita, ed è stato aggiunto un sistema di anteprima della documentazione.[25]

Nella versione 6.0 è stato introdotto un nuovo sistema di gestione dei pacchetti, con la riorganizzazione del repository e la suddivisione della distribuzione in un insieme di pacchetti più piccoli, permettendo un'installazione minimale di Racket con i pacchetti per le sole funzionalità desiderate.[26]

Caratteristiche

Il core di Racket comprende macro, moduli, chiusure lessicali, tail recursion, continuazione parziale,[27] parametri, contratti,[28] green threads e OS threads.[29][30][31] Il linguaggio include anche alcune primitive, come eventspace e custodian, che controllano la gestione delle risorse e consentono di invocare e gestire programmi esterni.[8] Il linguaggio è estensibile tramite il sistema di macro particolarmente versatile, che insieme al sistema di moduli e a parser personalizzati permette di controllare e modificare il linguaggio in tutti i suoi aspetti[32] Molti costrutti dello stesso linguaggio Racket sono implementati come macro, tra i quali un sistema di classi mixin,[11] e il meccanismo di pattern matching.

Racket è stato il primo linguaggio di programmazione di ordine superiore a introdurre un sistema di contratti.[33] I contratti racket sono ispirati al design by Contract di Eiffel, che viene esteso per comprendere valori di ordine superiore, funzioni di prima classe, oggetti, reference e altre funzionalità. Ad esempio, un oggetto soggetto ad un contratto garantisce il controllo dei contratti quando i suoi metodi vengono invocati.

Il compilatore Racket traduce il sorgente in bytecode che viene eseguito dalla Racket virtual machine. Su sistemi x86 e PowerPC il bytecode viene compilato in codice nativo a runtime da un compilatore JIT.

Nel 2004 è stato introdotto PLaneT, un package manager integrato nel sistema di moduli che consente di importare e usare librerie di terze parti in maniera trasparente. PLaneT include anche un proprio sistema di versioning per evitare situazioni di dependency hell.[34] Nel 2014 buona parte del codice Racket è stato spostato in un nuovo sistema di pacchetti separato dalla codebase principale, gestito da un client chiamato raco. Il nuovo sistema di pacchetti fornisce meno funzionalità rispetto a PLaneT.[35]

Sistema di macro

Una tra le principali caratteristiche che distingue Racket dagli altri linguaggi della famiglia Lisp è la sua estensibilità intrinseca. Le funzionalità di estensibilità di Racket sono integrate nel sistema di moduli, consentendo un controllo sulla sintassi a livello dei moduli stessi.[13] Ad esempio, la forma sintattica #%app può essere riscritta per modificare la semantica della chiamata di funzione. Analogamente, la forma sintattica #%module-begin permette di eseguire un'analisi statica arbitraria dell'intero modulo.[13] Ogni modulo può essere usato come un linguaggio, grazie alla notazione #lang, e il programmatore può controllare virtualmente ogni aspetto del linguaggio stesso.

L'estensibilità fornita dai moduli viene combinata con il sistema di macro igieniche analogo a Scheme, che fornisce funzionalità aggiuntive rispetto al sistema per la manipolazione delle S-expression del Lisp,[36][37] al sistema di macro di Scheme 84 o alle regole sintattiche di R5RS. Con queste funzionalità i programmatori possono aggiungere funzionalità e creare linguaggi specifici in maniera totalmente indistinguibile dalle funzionalità built-in del linguaggio.

Il sistema di macro di Racket è stato usato per l'implementazione di dialetti, tra i quali Typed Racket, una versione del linguaggio che fornisce un sistema di tipi,[38] e Lazy Racket, un dialetto che usa un sistema di valutazione lazy.[39] Altri dialetti sono FrTime (programmazione reattiva funzionale), Scribble (un linguaggio per la produzione di documentazione),[40] Slideshow (un linguaggio per la realizzazione di slide),[41] e diversi altri.[42][43] Racket fornisce alcune librerie che facilitano l'implementazione di nuovi linguaggi.[13]

I nuovi linguaggi non sono ristretti alla sintassi basata su S-expression, permettendo la definizione di parser arbitrari, ad esempio usando la libreria di strumenti di parsing fornita da Racket stesso.[44]

Ambiente di sviluppo

La distribuzione Racket fornisce un IDE[9] chiamato DrRacket, un web server basato su continuazione,[45] una graphical user interface,[16] e diversi altri strumenti. Racket è anche utilizzabile come strumento di scripting, ad esempio negli script per shell Unix. Può eseguire il parsing di parametri a riga di comando, eseguire tool esterni e includere librerie.

DrRacket

DrRacket (precedentemente noto come DrScheme) è un ambiente di sviluppo disponibile per Microsoft Windows, macOS, Unix e Linux, spesso usato come strumento didattico nei corsi introduttivi alla programmazione, inizialmente sviluppato come strumento per il progetto TeachScheme! (divenuto poi ProgramByDesign), avviato dalla Northeastern University in collaborazione con alcune altre università per l'insegnamento della programmazione nelle scuole superiori.

L'editor fornisce syntax highlighting, matching delle parentesi, debugger e algebraic stepper. Permette di scegliere diversi "livelli" (principiante, intermedio, etc.) per semplificare l'ambiente agli studenti. Ha un supporto integrato per le librerie e un sistema di analisi statica utile per i programmatori esperti. Fornisce un browser per i moduli, un sistema di testing e fault coverage integrati, supporto per il refactoring, e un sistema di accesso alla documentazione.

Esempi

Un esempio di hello world in Racket è il seguente:

#lang racket/base
"Hello, World!"

che quando eseguito visualizza la scritta "Hello, World!".

Il seguente è un esempio di definizione di una funzione ricorsiva per il calcolo del fattoriale:

#lang racket
(define (fact n)
  (cond [(zero? n) 1]
        [else (* n (fact (- n 1)))]))

Applicazioni ed utilizzi

Oltre all'uso come strumento didattico e nella ricerca, Racket è stato pensato come linguaggio general purpose per l'uso su sistemi di produzione. Per tale motivo, la distribuzione fornisce estese librerie che supportano programmazione di sistema e di rete, sviluppo web,[45] un'interfaccia per accedere alle chiamate del sistema operativo, FFI,[46] varie implementazioni di regex, generatori di lexer e parser,[44] programmazione logica, ed un widget toolkit.

Tra le funzionalità di Racket utili per lo sviluppo di applicazioni commerciali vi sono la possibilità di generare eseguibili nativi in ambiente Windows, macOS e Unix/Linux, profiler e debugger inclusi nell'ambiente di sviluppo integrato e un framework di unit test.

Racket è usato in progetti commerciali e applicazioni web. Tra gli esempi, il sito web Hacker News impiega Arc, che è sviluppato in Racket. Naughty Dog ha usato Racket come linguaggio di scripting per diversi videogame.[47]

Racket è usato per l'insegnamento dell'algebra tramite game design nel programma bootstrap curriculum.[48]

Note

  1. ^ T.S. Strickland e Matthias Fellesisen, DLS 2010: Contracts for First-Class Classes (PDF), su ccs.neu.edu, 2010.
  2. ^ Michael Sperber, R. Kent Dybvig, Matthew Flatt e Anton Van Straaten, Revised6 Report on the Algorithmic Language Scheme (R6RS), su r6rs.org, Scheme Steering Committee, August 2007. URL consultato il 13 settembre 2011.
  3. ^ Planet2 questions, su mail.mozilla.org. URL consultato il 10 gennaio 2017 (archiviato dall'url originale il 25 giugno 2021).
  4. ^ Rust Bibliography, su github.com.
  5. ^ Ambrose Bonnaire-Sergeant, A Practical Optional Type System for Clojure, The University of Western Australia, 2012.
  6. ^ Welcome to Racket, su docs.racket-lang.org. URL consultato il 15 agosto 2011.
  7. ^ Dialects of Racket and Scheme, su docs.racket-lang.org. URL consultato il 15 agosto 2011.
  8. ^ a b Flatt, Findler, Krishnamurthi e Felleisen, Programming Languages as Operating Systems (or, Revenge of the Son of the Lisp Machine), International Conference on Functional Programming, 1999.
  9. ^ a b c Findler, Clements, Flanagan, Flatt, Krishnamurthi, Steckler e Felleisen, DrScheme: A Programming Environment for Scheme (PDF), in Journal of Functional Programming, 2001.
  10. ^ Macros Matter, su blog.racket-lang.org, 3 maggio 2007. URL consultato l'8 agosto 2011.
  11. ^ a b c M. Flatt, R. B. Findler e M. Felleisen, Scheme with Classes, Mixins, and Traits (PDF), in Asian Symposium on Programming Languages and Systems, 2006.
  12. ^ M. Flatt e M. Felleisen, Units: Cool Modules for Hot Languages, in Programming Language Design and Implementation, 1998.
  13. ^ a b c d S. Tobin-Hochstadt, V. St-Amour, R. Culpepper, M. Flatt e M. Felleisen, Languages as Libraries (PDF), in Programming Language Design and Implementation, 2011.
  14. ^ Racket: Software License, su download.racket-lang.org. URL consultato il 20 ottobre 2015.
  15. ^ Brent W. Jr. Benson, libscheme: Scheme as a C Library, in Proceedings of the USENIX Symposium on Very High Level Languages, Santa Fe, NM, USENIX Association, October 26–28, 1994, pp. 7–19, ISBN 978-1-880446-65-2. URL consultato il 7 luglio 2013.
  16. ^ a b c Rebuilding Racket's Graphics Layer, su blog.racket-lang.org, 8 dicembre 2010. URL consultato il 23 agosto 2011 (archiviato dall'url originale il 23 maggio 2013).
  17. ^ J. Clements, M. Flatt e M. Felleisen, Modeling an Algebraic Stepper (PDF), in European Symposium on Programming Languages, 2001.
  18. ^ a b c Racket Core Release Notes (TXT), su docs.racket-lang.org. URL consultato il 15 aprile 2012 (archiviato dall'url originale il 23 maggio 2013).
  19. ^ M. Flatt, Composable and Compilable Macros, in International Conference on Functional Programming, 2002.
  20. ^ PLT Scheme version 4.0, su blog.racket-lang.org, 12 giugno 2008. URL consultato il 7 agosto 2012 (archiviato dall'url originale il 23 maggio 2013).
  21. ^ From PLT Scheme to Racket, su racket-lang.org. URL consultato il 17 agosto 2011.
  22. ^ Racket 5.2, su blog.racket-lang.org, PLT, Inc, 9 novembre 2011. URL consultato il 16 giugno 2012.
  23. ^ Submodules, su blog.racket-lang.org, 3 giugno 2012. URL consultato il 7 agosto 2012.
  24. ^ Racket 5.3, su blog.racket-lang.org, PLT, Inc, 7 agosto 2012. URL consultato il 7 agosto 2012.
  25. ^ Racket 5.3.1, su blog.racket-lang.org, PLT, Inc, 7 novembre 2012. URL consultato il 7 novembre 2012.
  26. ^ Racket 6.0, su blog.racket-lang.org, PLT, Inc, 26 febbraio 2014. URL consultato il 23 febbraio 2016.
  27. ^ M. Flatt, G. Yu, R. B. Findler e M. Felleisen, Adding Delimited and Composable Control to a Production Programming Environment (PDF), in International Conference on Functional Programming, 2007.
  28. ^ Contracts, su docs.racket-lang.org.
  29. ^ Threads, su docs.racket-lang.org.
  30. ^ Futures, su docs.racket-lang.org.
  31. ^ Places, su docs.racket-lang.org.
  32. ^ Matthew Flatt, Creating Languages in Racket, in Communications of the ACM, 2012. URL consultato l'8 aprile 2012.
  33. ^ R. B. Findler e M. Felleisen, Contracts for Higher-Order Functions (PDF), in International Conference on Functional Programming, 2002.
  34. ^ J. Matthews, Component Deployment with PLaneT: You Want it Where?, in Scheme and Functional Programming Workshop, 2006.
  35. ^ The Racket package system and Planet, su blog.racket-lang.org.
  36. ^ Matthew Flatt, Composable and Compilable Macros, You Want it When? (PDF), in International Conference on Functional Programming, 2002.
  37. ^ Flatt, Culpepper, Darais, Findler, Macros that Work Together; Compile-Time Bindings, Partial Expansion, and Definition Contexts
  38. ^ S. Tobin-Hochstadt e M. Felleisen, The Design and Implementation of Typed Scheme, in Principles of Programming Languages, 2008.
  39. ^ E. Barzilay e J. Clements, Laziness Without All the Hard Work: Combining Lazy and Strict Languages for Teaching, in Functional and Declarative Programming in Education, 2005.
  40. ^ M. Flatt, E. Barzilay e R. B. Findler, Scribble: Closing the Book on Ad Hoc Documentation Tools, in International Conference on Functional Programming, 2009.
  41. ^ R. B. Findler e M. Flatt, Slideshow: Functional Presentations, in International Conference on Functional Programming, 2004.
  42. ^ M. Felleisen, R. B. Findler, M. Flatt e S. Krishnamurthi, A Functional I/O System (or Fun for Freshman Kids) (PDF), in International Conference on Functional Programming, 2009.
  43. ^ M. Felleisen, R. B. Findler, M. Flatt e S. Krishnamurthi, The Structure and Interpretation of the Computer Science Curriculum (PDF), in Journal of Functional Programming, 2004.
  44. ^ a b Parser Tools: lex and yacc-style Parsing, su docs.racket-lang.org. URL consultato il 16 agosto 2011.
  45. ^ a b Krishnamurthi, Hopkins, McCarthy, Graunke, Pettyjohn e Felleisen, Implementation and Use of the PLT Scheme Web Server (PDF), in Journal of Higher-Order and Symbolic Programming, 2007.
  46. ^ E. Barzilay e D. Orlovsky, Foreign Interface for PLT Scheme (PDF), in Scheme and Functional Programming, 2004.
  47. ^ Functional mzScheme DSLs in Game Development, su cufp.org. URL consultato l'8 maggio 2012.
  48. ^ Bootstrap, su bootstrapworld.org. URL consultato l'11 agosto 2015.

Bibliografia

Collegamenti esterni

Controllo di autoritàLCCN (ENsh2013000901 · GND (DE1050209265 · J9U (ENHE987007568232505171
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

Read other articles:

A three-point field goal (also known as a three-pointer or 3-pointer) is a field goal in a basketball game, made from beyond the three-point line, a designated arc radiating from the basket. A successful attempt is worth three points, in contrast to the two points awarded for shots made inside the three-point line. The National Collegiate Athletic Association (NCAA) keeps records of the Division I 3-point field goal makes per game (3PG) average annual leaders. The statistic was first recognized …

Penyuntingan Artikel oleh pengguna baru atau anonim untuk saat ini tidak diizinkan.Lihat kebijakan pelindungan dan log pelindungan untuk informasi selengkapnya. Jika Anda tidak dapat menyunting Artikel ini dan Anda ingin melakukannya, Anda dapat memohon permintaan penyuntingan, diskusikan perubahan yang ingin dilakukan di halaman pembicaraan, memohon untuk melepaskan pelindungan, masuk, atau buatlah sebuah akun. Yandex N.V.Kantor utama Yandex di MoskwaNama asliЯндексJenisPerseroan terbatas…

Anterior part of the neck, in front of the vertebra For other uses, see Throat (disambiguation). ThroatThe human throatX-ray showing the throat, seen as a dark band to the front of the spineDetailsIdentifiersLatingulajugulumFMA228738Anatomical terminology[edit on Wikidata] In vertebrate anatomy, the throat is the front part of the neck, internally positioned in front of the vertebrae. It contains the pharynx and larynx. An important section of it is the epiglottis, separating the esophagus f…

Erlan QoşanovЕрлан ҚошановQoşanov pada tahun 2023 Ketua Mazhilis ke-10PetahanaMulai menjabat 1 Februari 2022WakilPavel KazantsevBalaim Kesebaeva PendahuluNurlan NigmatulinPenggantiPetahanaKepala Administrasi Kepresidenan KazakhstanMasa jabatan18 September 2019 – 1 Februari 2022PresidenNursultan NazarbayevWakil PertamaMäulen ÄşimbaevDauren Abaev PendahuluKrymbek KusherbayevPenggantiMurat NurtileuKepala Kantor Perdana MenteriMasa jabatan2 Februari 2012 – …

Colombian atoll in the western Caribbean Sea This article is about the Caribbean atoll. For other uses, see Roncador (disambiguation). Roncador BankRoncador BankRoncador BankShow map of ColombiaRoncador BankShow map of CaribbeanGeographyLocationCaribbean SeaCoordinates13°34′N 80°04′W / 13.567°N 80.067°W / 13.567; -80.067Administration Colombia Roncador Bank is a mostly-submerged atoll with several sandy cays. It lies in the west Caribbean Sea off the coast of…

Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: Wing Chun – berita · surat kabar · buku · cendekiawan · JSTOR artikel ini perlu dirapikan agar memenuhi standar Wikipedia. Tidak ada alasan yang diberikan. Silakan kembangkan artikel ini semampu Anda. Merapikan …

See also: Universal design Inclusive design is a design process in which a product, service, or environment is designed to be usable for as many people as possible, particularly groups who are traditionally excluded from being able to use an interface or navigate an environment. Its focus is on fulfilling as many user needs as possible, not just as many users as possible.[1] Historically, inclusive design has been linked to designing for people with physical disabilities, and accessibili…

Pour les articles homonymes, voir Espace de liberté (homonymie). Espace de liberté, de sécurité et de justice Description Espace de liberté, de sécurité et de justice Gouvernance Origine  Union européenne Base(s) légale(s) Titre V de la troisième partie du TFUE(Articles 67 à 89 du TFUE) modifier  L'espace de liberté, de sécurité et de justice (ELSJ) est un objectif inclus dans les traités sur l'Union européenne par le traité d'Amsterdam en 1997 et qui vise à assurer l…

Si ce bandeau n'est plus pertinent, retirez-le. Cliquez ici pour en savoir plus. Cet article contient une ou plusieurs listes (décembre 2014). Ces listes gagneraient à être rédigées sous la forme de paragraphes synthétiques, plus agréables à la lecture, les listes pouvant être aussi introduites par une partie rédigée et sourcée, de façon à bien resituer les différents items.D'autre part, Wikipédia n'a pas pour rôle de constituer une base de données et privilégie un contenu enc…

PemberitahuanTemplat ini mendeteksi bahwa artikel bahasa ini masih belum dinilai kualitasnya oleh ProyekWiki Bahasa dan ProyekWiki terkait dengan subjek. Perhatian: untuk penilai, halaman pembicaraan artikel ini telah diisi sehingga penilaian akan berkonflik dengan isi sebelumnya. Harap salin kode dibawah ini sebelum menilai. {{PW Bahasa|importance=|class=}} Terjadi [[false positive]]? Silakan laporkan kesalahan ini. 13.48, Selasa, 9 April, 2024 (UTC) • hapus singgahan Sebanyak …

Administrative entry restrictions Not to be confused with Visa policy of Tonga. Visa requirements for Tongan citizens are administrative entry restrictions by the authorities of other states placed on citizens of Tonga. As of 2 July 2019, Tongan citizens had visa-free or visa on arrival access to 123 countries and territories, ranking the Tongan passport 46th in terms of travel freedom according to the Henley Passport Index.[1] Tonga signed a mutual visa waiver agreement with Schengen Ar…

Eva Cantarella Eva Cantarella (Roma, 28 novembre 1936) è una storica, giurista e sociologa italiana, che si occupa della società antica. Indice 1 Biografia 2 Onorificenze 3 Premi e riconoscimenti 4 Opere 5 Note 6 Altri progetti 7 Collegamenti esterni Biografia Nata a Roma, figlia del grecista e bizantinista siciliano Raffaele Cantarella, originario di Mistretta, in provincia di Messina, cresce però a Milano, dove compie i suoi studi al Liceo Classico Statale Cesare Beccaria. Nel 1960 si laure…

Giulio Cesare Cusano Nazionalità  Italia Calcio Ruolo Centrocampista Carriera Squadre di club1 19??-19?? Vittoria Genova? (?)1922-1927 Andrea Doria88 (18)1927-1928 Carrarese? (?)1928-1929 Foggia? (?)1929-1931 Cagliari18 (3)1931-1933 Andrea Doria? (?) 1 I due numeri indicano le presenze e le reti segnate, per le sole partite di campionato.Il simbolo → indica un trasferimento in prestito.   Modifica dati su Wikidata · Manuale Giulio Cesare Cusano (G…

Corendon Airlines Europe IATA ICAO Kode panggil XR CXI TOURISTIC Didirikan2017AOC #MT-48[1]Pusat operasiMünster/Osnabrück Nuremberg Hannover Cologne/Bonn Basel/Mulhouse Düsseldorf[2]Armada9Perusahaan indukCorendon Tourism GroupKantor pusatLuqa, Malta[3]Situs webcorendonairlines.com Corendon Airlines Europe, secara resmi adalah Touristic Aviation Services Ltd.,[4] adalah maskapai penerbangan sewaan Eropa yang berkantor pusat di Luqa dan berbasis di Bandar Udara …

Voce principale: Società Sportiva Teramo Calcio. Teramo CalcioStagione 2006-2007Sport calcio Squadra Teramo Allenatore Claudio Gabetta poi Silvano Fiorucci poi Claudio Gabetta Presidente Romano Malavolta Junior Serie C115º posto nel girone B. Retrocesso in Serie C2. Maggiori presenzeCampionato: Myrtaj (32) Miglior marcatoreCampionato: Myrtaj (8) 2005–2006 2007–2008 Si invita a seguire il modello di voce Questa pagina raccoglie le informazioni riguardanti il Teramo Calcio nelle competi…

40°4′28″N 20°8′9″E / 40.07444°N 20.13583°E / 40.07444; 20.13583 Gjirokastër Gymnasium (Albanian: Gjimnazi i Gjirokastrës), also known as Asim Zeneli Gymnasium (Albanian: Gjimnazi „Asim Zeneli“)[1] is a gymnasium located in Gjirokastër, Albania. The school was founded on 5 November 1923 as one of the first schools of general secondary education in Albania, where students could study regardless of religion, gender and locality. References ^ Xhama,…

2005 remix album by Ira LoscoBlends & Remixes Of Someone ElseRemix album by Ira LoscoReleasedJanuary 2005GenreDanceElectronicaHouseTechnoIndieLabelNoneIra Losco chronology Someone Else(2004) Blends & Remixes Of Someone Else(2005) Accident Prone(2005) Blends & Remixes Of Someone Else is Ira Losco's first remix album. It was released in January 2005. Produced by Bridge Productions, Blends & Remixes Of Someone Else is a collection of tracks from her previous album Someone El…

FC Baník OstravaCalcio Baníček Segni distintivi Uniformi di gara Casa Trasferta Colori sociali Blu, rosso Dati societari Città Ostrava Nazione  Rep. Ceca Confederazione UEFA Federazione FAČR Campionato 1. liga Fondazione 1922 Presidente Václav Brabec Allenatore Pavel Hapal Stadio Městský stadion Vítkovice / Bazaly(15 123 / 17 400 posti) Sito web www.fcb.cz Palmarès Titoli nazionali 3 Campionati cecoslovacchi1 Campionato ceco Trofei nazionali 3 Coppe di Cecoslovacchia1 Coppe d…

Pieve di CadoreKomuneComune di Pieve di CadoreNegaraItaliaWilayahVenetoProvinsiBelluno (BL)FrazioniDamos, Nebbiù, Pozzale, Sottocastello, TaiPemerintahan • Wali kotaMaria Antonia CiottiLuas • Total66,6 km2 (257 sq mi)Ketinggian878 m (2,881 ft)Populasi (31 Mei 2007) • Total4.087 • Kepadatan6,1/km2 (16/sq mi)DemonimPievaniZona waktuUTC+1 (CET) • Musim panas (DST)UTC+2 (CEST)Kode pos32044Kode area telepo…

American judge Mark CadyCady in 2015Chief Justice of the Iowa Supreme CourtIn officeJanuary 11, 2011 – November 15, 2019Preceded byMarsha TernusSucceeded byDavid Wiggins (Acting) Personal detailsBorn(1953-07-12)July 12, 1953Rapid City, South Dakota, U.S.DiedNovember 15, 2019(2019-11-15) (aged 66)Des Moines, Iowa, U.S.Political partyIndependentEducationDrake University (BA, JD) Mark Steven Cady (July 12, 1953 – November 15, 2019) was an American jurist. He served on the Iowa Sup…

Kembali kehalaman sebelumnya