Computer finestre Internet

Il linguaggio di programmazione più cool. Cinque promettenti linguaggi di programmazione con un brillante futuro

  • Traduzione

Se dividiamo i linguaggi di programmazione per popolarità, sono divisi in tre livelli. Il primo livello include linguaggi tradizionali come Java, JavaScript, Python, Ruby, PHP, C#, C++ e Objective-C. Sebbene alcune delle principali lingue stiano svanendo, è meglio conoscerne una o più se vuoi essere in grado di trovare facilmente un lavoro.


Le lingue di secondo livello stanno cercando di entrare nel mainstream, ma non ci sono ancora riuscite. Hanno dimostrato il loro valore creando comunità forti, ma non sono ancora utilizzati dalla maggior parte delle aziende IT conservatrici. Scala, Go, Swift, Clojure e Haskell sono le lingue che classificherei di secondo livello. Alcune aziende usano queste lingue per servizi individuali, ma l'adozione diffusa è rara (ad eccezione di Swift, che sta iniziando a superare Objective-C come linguaggio principale per iOS). Go e Swift hanno buone possibilità di passare dal secondo livello al primo entro i prossimi due o tre anni.


La maggior parte delle lingue del primo scaglione sono saldamente radicate nelle loro posizioni. Pertanto, la perdita di una lingua da una posizione di leadership richiede una notevole quantità di tempo ed è molto difficile per una lingua di secondo livello entrare nel primo.


Le lingue promettenti in questo articolo appartengono al terzo livello e stanno appena iniziando a farsi strada. Alcune lingue rimangono nel terzo livello per molti anni senza guadagnare popolarità, mentre altre irrompono sulla scena in appena un paio d'anni. Come, ad esempio, le lingue di cui parleremo nell'articolo.

Lingue promettenti: perché queste cinque?

I cinque linguaggi di programmazione di cui parleremo sono nuovissimi (è possibile che ne sentirai parlare per la prima volta) e hanno chiaramente ottime possibilità di sfondare nel secondo livello nei prossimi 2-3 anni. Forse un giorno una di queste lingue sarà in grado di premere le lingue del primo scaglione.


Ecco perché queste cinque lingue sono state scelte per questo elenco:


Elm sta guadagnando popolarità nella comunità JavaScript, principalmente tra coloro che preferiscono la programmazione funzionale, che è in aumento. Come TypeScript o Dart, Elm viene trasferito in JavaScript.


Rust è un linguaggio di programmazione di sistemi destinato principalmente a nicchie che utilizzano C e C++. Pertanto, è sorprendente vedere che la popolarità di questo linguaggio sta crescendo più rapidamente tra gli sviluppatori web. Questo fatto ha più senso quando scopri che il linguaggio è stato creato da Mozilla, che voleva offrire un'opzione migliore agli sviluppatori web che sono costretti a scrivere codice di basso livello, e allo stesso tempo essere più performanti di PHP, Ruby, Python o JavaScript. Rust è stata anche votata come la migliore "tecnologia più amata" nel sondaggio degli sviluppatori StackOverflow del 2016 (il che significa che la maggior parte degli utenti vorrebbe continuare a utilizzare la lingua).


Kotlin è in circolazione da circa cinque anni, ma proprio quest'anno ha raggiunto la versione 1.0 pronta per la produzione. Sebbene non abbia ancora raggiunto la popolarità di Scala, Groovy o Clojure - i tre linguaggi più popolari e maturi (senza contare Java) sotto la JVM - si distingue da molti altri linguaggi JVM e sembra pronto a prendere il suo posto tra i leader di questo gruppo. . La lingua ha avuto origine in JetBrains (creatore del popolare IntelliJ IDEA IDE). Quindi è progettato con particolare attenzione alla produttività degli sviluppatori.


Crystal è un altro linguaggio che spera di portare le prestazioni del programma di livello C nel mondo di alto livello degli sviluppatori web. Crystal è rivolto alla comunità di Ruby perché la sua sintassi è simile, e talvolta identica, a Ruby. Il già elevato numero di startup Ruby continua a crescere e Crystal può svolgere un ruolo chiave nell'aiutare a portare le prestazioni di queste applicazioni a un livello superiore.


Anche Elixir ha preso ispirazione dall'ecosistema Ruby, ma invece di cercare di apportare vantaggi simili al C, si concentra sulla costruzione di sistemi altamente accessibili e reattivi, ad es. ciò con cui i critici dicono che Rails ha problemi. Elixir ottiene questi vantaggi con Erlang VM, che ha una solida reputazione fondata su oltre 25 anni di successi nel settore delle telecomunicazioni. Phoenix (il framework web per Elixir), insieme a un ecosistema ampio e fiorente, conferisce a questo linguaggio un ulteriore fascino.


Ora dai un'occhiata a come quattro di queste cinque lingue stanno scalando la scala della popolarità (basato sui dati di StackOverflow e GitHub):




Ognuna di queste lingue vanta una community appassionata e la propria newsletter settimanale. Se stai pensando di imparare una lingua giovane con interessanti possibilità per il futuro, leggi le brevi presentazioni per ciascuna di queste cinque lingue, scritte da appassionati e leader esperti nei rispettivi ecosistemi.

Olmo

Elm è un linguaggio di programmazione funzionale incentrato sull'usabilità che compila codice JavaScript ad alte prestazioni. Puoi usarlo, anche insieme a JavaScript, per creare interfacce utente su internet. I principali vantaggi di Elm rispetto a JavaScript sono l'affidabilità, la facilità di manutenzione e l'attenzione alla programmazione divertente. Più specifico:

  • Nessuna eccezione di runtime: Il codice Elm ha una reputazione mai lanciare eccezioni in fase di esecuzione. Per niente come "non definito non è una funzione".
  • Il leggendario compilatore grazioso: Compilatore Elm spesso lode per le segnalazioni di bug più utili tra i concorrenti. "Se si compila, di solito funziona e basta" è una credenza comune, anche dopo un importante refactoring. Ciò rende i progetti Elm di grandi dimensioni molto più facili da mantenere rispetto ai progetti JS comparabili.
  • Versioni semantiche: elm-package applica automaticamente le versioni semantiche. Se l'autore del pacchetto tenta di apportare modifiche sostanziali all'API senza aumentare il numero di versione principale, elm-package lo rileverà e rifiuterà di pubblicare nuova versione pacchetto. Nessun altro gestore di pacchetti noto applica il controllo delle versioni semantico in modo così affidabile.
  • Veloce e funzionale: Elm è un linguaggio funzionale puro che non garantisce mutazioni o effetti collaterali. Questo non solo fornisce una grande scalabilità per il codice Elm, ma aiuta anche a rendere l'interfaccia utente dell'applicazione più veloce di React, Angular o Ember .
  • Strumenti potenti: elm-format formatta il codice sorgente secondo lo standard della comunità. Niente più discussioni sulle convenzioni di codifica. Basta premere il pulsante "Salva" nel tuo editor e il tuo codice diventa bellissimo. elm-test viene fornito con batterie per supportare sia i test unitari che i test casuali. elm-css ti consente di scrivere codice Elm che viene compilato in un file CSS, in modo da poter condividere il codice tra la tua applicazione e i fogli di stile per assicurarti che le tue costanti non perdano mai la sincronizzazione.

Il codice Elm può anche interagire con JavaScript. Cioè, puoi iniettarlo in piccole dosi nel tuo codice JS e puoi ancora utilizzare l'enorme ecosistema JS e non reinventare la ruota.

Kotlin

Kotlin è un linguaggio tipizzato staticamente che si concentra su JVM e JavaScript. Kotlin è nato da un bisogno di JetBrains che stava cercando Nuova lingua per sviluppare il loro toolkit (che è stato principalmente scritto in Java). Qualcosa che avrebbe consentito loro di utilizzare la base di codice esistente e allo stesso tempo risolvere alcuni dei problemi che aveva Java. E sono proprio le soluzioni a queste carenze comuni che si verificano quando si scrive Software, ha definito la maggior parte delle caratteristiche di Kotlin.

  • Concisione: ridurre la quantità di codice standard richiesto per esprimere determinati costrutti.
  • Versatilità: creare un linguaggio adatto a qualsiasi tipo di applicazione industriale, sia essa web, sviluppo mobile, applicazioni desktop o server.
  • Sicurezza: lasciare che il linguaggio gestisca alcune delle insidie ​​comuni relative a problemi come eccezioni di riferimento nullo.
  • Interazione: consentire al linguaggio di interagire con le basi di codice, le librerie e i framework Java esistenti, consentendo un'adozione incrementale e trarre vantaggio dagli investimenti già effettuati.
  • Utensili: JetBrains crea strumenti e li rende basati sulla convinzione che molte attività di routine possono essere automatizzate e portare a uno sviluppo più efficiente e produttivo. Pertanto, il linguaggio dovrebbe consentire facilmente l'uso di strumenti ausiliari.

Kotlin è stato, e sarà sempre, concentrato sul pragmatismo, alla ricerca di problemi comuni che incontriamo spesso quando scriviamo codice e cerchiamo di aiutarli a risolverli. Questo scorre come un filo rosso attraverso varie funzionalità del linguaggio, come ad esempio:

  • Null sicuro per impostazione predefinita: I tipi Kotlin non sono annullabili per impostazione predefinita, il che evita fastidiose eccezioni di riferimento/puntatore nullo.
  • Delegazione di prima classe: la capacità di delegare la funzionalità di un membro della classe a una funzione esterna, che facilita il riutilizzo e migliora la composizione.
  • Accordi: un insieme di convenzioni che consentono di scrivere codice espressivo, aprendo la strada a un DSL fortemente tipizzato che migliora la leggibilità e semplifica il refactoring.
    html ( head ( title (+"codifica XML con Kotlin") ) body ( p (+ "This is some HTML" ) ) )

Kotlin 1.0 è stato rilasciato a febbraio 2016 dopo oltre cinque anni di sviluppo e test approfonditi in progetti reali. Attualmente ci sono oltre dieci prodotti JetBrains che utilizzano Kotlin. Viene utilizzato anche da aziende come Amex, NBC Digital, Expedia e Gradle.


Per ulteriori informazioni, visitare kotlinlang.org


Questa sezione è stata scritta

JavaScript è utile per aggiungere interattività di base alle pagine Web, ma quando il codice dell'applicazione Web è lungo migliaia di righe, i suoi punti deboli diventano evidenti. Ecco perché Google ha creato Dart, il linguaggio che secondo l'azienda sarà il nuovo linguaggio di programmazione web "nativo".

Come JavaScript, Dart usa le sintassi e parole chiave, simili a quelli utilizzati nel linguaggio C. Tuttavia, una differenza significativa è che mentre JavaScript è basato su prototipi, gli oggetti in Dart sono definiti utilizzando classi e interfacce, come in C++ o Java . Dart consente inoltre ai programmatori di definire opzionalmente variabili con tipi statici. L'idea è di rendere Dart familiare, dinamico e flessibile come JavaScript, consentendo allo stesso tempo agli sviluppatori di scrivere codici facili e veloci da eseguire e difficili da trovare bug.

Ci sono pochi posti in cui Dart può essere utilizzato oggi. È progettato per essere eseguito sul client o sul server (alla Node.js), ma l'unico modo per eseguire la versione client del codice Dart è compilarlo in modo incrociato in JavaScript. Tuttavia, anche dopo, non funzionerà in tutti i browser. Ma poiché Dart è rilasciato con una licenza di tipo BSD gratuita, qualsiasi fornitore che accetti i termini e le condizioni di Google è libero di utilizzare la lingua nei propri prodotti. Tutto ciò che resta da fare a Google è convincere l'intero settore.


Linguaggio di programmazione ricercato n. 2: Ceylon

Gavin King ha negato che Ceylon, il linguaggio che sta sviluppando in Red Hat, dovrebbe essere un "killer di Java". King è noto come il creatore del framework di mappatura relazionale a oggetti Hibernate per Java. Gli piace Java, ma pensa che abbia ancora bisogno di molti miglioramenti.

Tra le cose che a King non piace di Java ci sono la sintassi dettagliata del linguaggio, la mancanza di funzioni di prima classe e di ordine superiore e la mancanza di supporto per la metaprogrammazione. È particolarmente frustrato dalla mancanza di una sintassi dichiarativa per definire i dati strutturati, che, nelle parole di King, "equipara Java con XML". Ceylon mira a risolvere tutti questi problemi.

King e il suo team non hanno in programma di reinventare la ruota. Non ci sarà una macchina virtuale Ceylon, il compilatore Ceylon produrrà bytecode java che può essere eseguito sulla JVM. Ma Ceylon sarà più di un semplice compilatore. obiettivo strategico questo progettoè creare un nuovo kit di sviluppo per Ceylon che sostituirà Java, che, secondo King, è "gonfio", goffo e ancora non completamente modernizzato.

Questo è un compito difficile e finora Red Hat non ha rilasciato alcuna utilità per Ceylon. King dice che il compilatore dovrebbe uscire quest'anno. Ma non aspettarti nessun software scritto in "Ceylon puro al 100%" in qualunque momento presto.


Linguaggio di programmazione ricercato n. 3: vai

Il codice F# è in qualche modo simile al codice OCaml, ma ha la sua sintassi interessante. Ad esempio, per facilitare i calcoli scientifici, i tipi di dati numerici in F# possono essere unità di misura. F# ha anche costrutti per facilitare l'I/O asincrono, la parallelizzazione della CPU e l'output di processo alla GPU.

Dopo un lungo periodo di gestazione presso Microsoft Research, F# viene ora fornito con Visual Studio 2010 . Ancora meglio, ma fuori dal personaggio per un'azienda, Microsoft ha creato un compilatore F# e una libreria di base disponibile sotto la licenza open source Apache. Puoi iniziare con esso gratuitamente e persino usarlo Sistemi Mac e Linux (usando il runtime Mono).


Linguaggio di programmazione ricercato n. 5: Opa

La programmazione web è un'attività molto complessa. Anche le applicazioni web più semplici sono costituite da infinite righe scritte in diversi linguaggi: HTML e JavaScript per il client, Java o PHP per il server, SQL per il database e così via.

Opa non sostituisce nessuna di queste lingue isolatamente. Inoltre, cerca di sostituirli tutti in una volta, rappresentando un paradigma completamente nuovo nella programmazione web. In un'applicazione Opa, l'interfaccia utente del client, la logica del server e il database I/O sono scritti nella stessa lingua, Opa.

Ciò si ottiene attraverso una combinazione di framework lato client e lato server. Il compilatore Opa decide dove eseguire questo programma(sul client, sul server o su entrambi), quindi esegue il relativo codice. Per i programmi client, traduce Opa nel codice JavaScript appropriato, incluse le chiamate AJAX.

Naturalmente, con questo tipo di sistema integrato, alla fine dovrebbe succedere qualcosa di magico. Il runtime Opa raggruppa il proprio server Web e il sistema di gestione del database, che non può essere sostituito da alternative autonome. Comunque sia, questo potrebbe non essere un grosso problema, data la possibilità di sviluppare moderne applicazioni Web basate sui dati con poche decine di righe di codice. Opa viene gratis e via questo momentoè disponibile per piattaforme Linux e Mac OS X a 64 bit, altre porte sono ancora in fase di sviluppo.


Linguaggio di programmazione ricercato n. 6: Fantom

Vuoi creare applicazioni per Java o .Net? Se scrivi in ​​Fantom, puoi fare una scelta e poi anche cambiare piattaforma. Questo perché il Fantom è stato progettato da zero per la mobilità multipiattaforma. Il progetto Fantom consiste non solo in un compilatore in grado di produrre bytecode per JVM o .Net CLI, ma anche un insieme di API che separano le API Java e .Net e forniscono un ulteriore livello di portabilità.

Ci sono piani per aumentare ulteriormente la mobilità del Fantom. È già disponibile un compilatore da Fantom a JavaScript e le destinazioni seguenti possono includere il progetto del compilatore LLVM, Parrot VM e Objective-C per iOS.

Fantom è distribuito gratuitamente sotto la Licenza Academic Free 3.0 ed è disponibile per Windows e piattaforme simili a Unix (incluso Mac OS X).


Linguaggio di programmazione ricercato n. 7: Zimba

A causa della sua natura mista, la sintassi Zimbu è unica e specifica, ma allo stesso tempo ha molte caratteristiche. Utilizza espressioni e operatori simili a quelli utilizzati in C, ma con parole chiave, tipi di dati e strutture a blocchi propri. Supporta la gestione della memoria, thread e pipeline.

L'unico problema è la portabilità. Sebbene Zimbu sia un linguaggio compilato, il suo compilatore produce codice ANSI C e i binari possono essere generati solo su piattaforme con un compilatore C integrato.

Sfortunatamente, il progetto Zimbu è in fase di sviluppo. Il compilatore e alcuni programmi di esempio possono essere compilati da soli, ma non tutto il codice Zimbal effettivo verrà compilato ed eseguito correttamente. Non tutte le funzioni dichiarate sono state ancora sviluppate e alcune di quelle già presentate non funzionano correttamente. È probabile che anche la specifica della lingua cambi nel tempo, aggiungendo parole chiave, tipi e sintassi secondo necessità. Di conseguenza, anche la documentazione è ancora incompleta. Tuttavia, se vuoi provarlo, le utilità preliminari sono già disponibili con la licenza Apache.


Linguaggio di programmazione ricercato n. 8: X10

Un tempo, l'elaborazione parallela era una nicchia di sviluppo software specializzata, ma con la diffusione dei processori multi-core e del calcolo distribuito, il parallelismo ha guadagnato popolarità. Sfortunatamente, gli attuali linguaggi di programmazione non hanno tenuto il passo con questa tendenza. Ecco perché IBM Research sta creando X10, un linguaggio progettato specificamente per le odierne architetture parallele che mira ad aumentare "di dieci volte" la produttività degli sviluppatori.

Il parallelismo in X10 è possibile grazie al modello di programmazione PGAS (Shared Global Address Space Model). Il codice e i dati sono allocati in blocchi e distribuiti in diversi "spazi", facilitando così il ridimensionamento di un programma da un prototipo a thread singolo (spazio singolo) a un prototipo multi-thread in esecuzione su uno o più processori multi-core (spazi multipli ) in un cluster ad alte prestazioni.

Il codice X10 è molto simile a Java. In sostanza, il runtime X10 è disponibile sia come eseguibile integrato che come file di classe per la JVM. Il compilatore X10 potrebbe emettere codici sorgente in C++ o Java. Ci sono piani per sviluppare la compatibilità futura con Java in futuro.

Nel frattempo il linguaggio si sta sviluppando, anche se è già abbastanza sviluppato. Il compilatore e il runtime sono disponibili per una varietà di piattaforme, inclusi Linux, Mac OS X e Windows. Utilità aggiuntive sono un ambiente di sviluppo interattivo (IDE) basato su Eclipse e un debugger, che sono concessi in licenza in base alla Eclipse Public License.


Linguaggio di programmazione ricercato n. 9: haXe

Molte lingue possono essere utilizzate per scrivere codice portatile. I compilatori C sono disponibili per quasi tutte le architetture CPU e il bytecode Java verrà eseguito ovunque sia presente una JVM. Ma haXe (pronunciato "hex") è più di un semplice portatile. È un linguaggio multipiattaforma che può essere utilizzato in vari ambienti operativi che vanno dall'embedded

In un mondo che cambia dinamicamente, quando solo ieri le professioni rispettate si trasformano nel nulla, molte persone cercano qualcosa da fare nella vita, in modo che sia interessante e rilevante per il tempo presente e allo stesso tempo redditizio. Molto spesso queste ricerche portano alla programmazione: i bravi programmatori anche nella CSI guadagnano migliaia di dollari, hanno molto tempo libero, la possibilità di lavorare da remoto e hanno possibilità di crescita professionale.

Oltre a questi vantaggi, la programmazione è anche diversa in quanto per padroneggiarla non è necessario passare anni a pulirsi i pantaloni nelle università. L'autoeducazione decide tutto qui, tutto è su Internet materiali necessari per un autoapprendimento di successo in qualsiasi linguaggio di programmazione: lezioni testuali, tutorial video, istruzioni, suggerimenti di professionisti esperti e altro materiale didattico. In questo modo, puoi facilmente padroneggiare le moderne tecnologie di programmazione e trovare un lavoro davvero dignitoso.

Ma prima di metterti al lavoro, devi rispondere a una domanda importante per te stesso: quali moderni linguaggi di programmazione saranno rilevanti nel 2017, su quale di questi dedicare il tuo tempo e i tuoi sforzi? Molto dipende dalla risposta corretta qui: la complessità e la velocità del processo di apprendimento, la soglia minima per accedere all'attività reale e ulteriori prospettive di carriera.

Aree di programmazione e linguaggi promettenti per il 2017

Per decidere su un linguaggio di programmazione specifico da studiare (uno o più), devi prima rispondere alla domanda: in quale area della programmazione una persona vorrebbe lavorare. Le aree più popolari e in rapido sviluppo sono ora:

Tecnologie di programmazione web. Sviluppo del sito web, servizi online e servizi bancari, negozi online, pagine di destinazione per aziende e simili: tutto questo fa parte della programmazione web. Sempre più persone sul pianeta stanno diventando utenti di Internet, sta diventando sempre più veloce ed economico, anche persone di età matura e avanzata stanno diventando utenti attivi della rete. Nel 2017 questa tendenza si sta solo intensificando e il tetto del suo sviluppo non è ancora visibile. Pertanto, è molto utile imparare i linguaggi di programmazione relativi a Internet. Di seguito verrà presentato un elenco dei più popolari;

Programmazione per gadget: smartphone, tablet, smartwatch, occhiali per realtà virtuale e altro ancora. Questo è anche un campo di attività molto interessante e in rapido sviluppo. Miliardi di persone in tutto il mondo usano gadget, leggono notizie, guardano video, ascoltano musica e fanno molte altre cose su di essi. Tutte queste funzioni elettroniche sono possibili grazie a un software ben scritto. Spesso costa molto di più del dispositivo fisico stesso. La programmazione in questo settore è ora molto redditizia. Vale la pena notare che i linguaggi di programmazione sono usati più spesso qui. alto livello.

Quale lingua scegliere

È impossibile dire quale lingua sia la più moderna. Molti di loro sono usati molto ampiamente e attivamente. Ma se stiamo parlando di linguaggi di programmazione promettenti, allora i seguenti possono essere definiti i migliori:

  • Giava. Il linguaggio di programmazione più versatile e diffuso con il quale puoi sviluppare sia applicazioni per computer che gadget, soprattutto per Controllo Android Sistema operativo. Ha una sintassi chiara, apprende abbastanza facilmente e velocemente, i primi programmi in Java possono essere scritti già poche settimane dopo l'inizio della formazione. La caratteristica principale che lo rende molto promettente è l'utilizzo per la programmazione Android, che ora si sta sviluppando molto rapidamente;
  • C#. Un'ottima opzione per una persona che vuole dedicare le proprie attività alla scrittura di programmi per sistemi informatici. È il linguaggio C Sharp (C#) che è la base su cui vengono scritti la maggior parte dei programmi per varie piattaforme e servizi di Microsoft. Con esso, puoi sviluppare applicazioni Web utilizzando .NET e Azure, nonché programmi direttamente per Windows, varie applicazioni aziendali e molte altre cose. Ci vuole un po' di lavoro per capire C#, ma alla fine ripaga;
  • PHP. Se il tuo compito è scrivere script di alta qualità e modelli interattivi per risorse Internet o essere l'amministratore di un server, che ora è un'occupazione molto redditizia, PHP lo farà il modo migliore realizzare tale aspirazione. Lingue moderne la programmazione non può fare a meno di questo rappresentante. Impara abbastanza velocemente e facilmente: se studi PHP con attenzione e regolarmente, dopo 2-3 anni puoi fare domanda per un'ottima posizione e uno stipendio adeguato.

Naturalmente, questo è tutt'altro che una descrizione completa delle lingue e della loro classificazione, ma anche un elenco così piccolo è abbastanza per scegliere un campo di attività buono e promettente per te stesso.

Una revisione completa dei moderni linguaggi di programmazione potrebbe richiedere troppo tempo, ma non è così necessario, poiché vale la pena ricordare la cosa principale: una persona che parla correntemente almeno una lingua sarà sicuramente in grado di trovare il suo posto in il campo della programmazione. E la conoscenza di una di queste lingue sarà sicuramente sufficiente per guadagnare bene e risolvere problemi interessanti.

Titolo della relazione

Linguaggi di programmazione moderni e loro utilizzo

Autore del progetto

Struttura del progetto

● Schema di classificazione del linguaggio di programmazione

● Classificazione dei linguaggi di programmazione

● Panoramica dei linguaggi di programmazione

● Risorse utili

Schema di classificazione del linguaggio di programmazione

Classificazione dei linguaggi di programmazione

programmazione procedurale- è un riflesso dell'architettura von Neumann del computer. Un programma scritto in un linguaggio procedurale è una sequenza di comandi che definiscono un algoritmo per la risoluzione di un problema. L'idea di base della programmazione procedurale è l'uso della memoria per memorizzare i dati. Il comando principale è l'assegnazione, con l'aiuto del quale viene determinata e modificata la memoria del computer. Il programma converte il contenuto della memoria, cambiandolo dallo stato iniziale a quello risultante.

Esistono tali linguaggi di programmazione procedurale:

 Il linguaggio Fortran è stato creato nei primi anni '50 del XX secolo per la programmazione di problemi tecnici e scientifici;

 Cobol - creato alla fine degli anni '60 del XX secolo per risolvere i problemi di elaborazione di grandi quantità di dati archiviati su vari supporti dati;

 Algol (1960) è un linguaggio di programmazione avanzato multiuso. Ha introdotto per la prima volta i concetti di "struttura a blocchi di programma" e "allocazione dinamica della memoria";

 A metà degli anni '60 del 20° secolo è stato creato un linguaggio di programmazione specializzato per principianti: BASIC. È caratterizzato dalla facilità di sviluppo e dalla disponibilità di strumenti universali per la risoluzione di problemi scientifici, tecnici ed economici, nonché da compiti, ad esempio i giochi.

Tutti i linguaggi sopra elencati erano focalizzati su diverse classi di problemi, ma erano, in un modo o nell'altro, legati a una specifica architettura di computer.

 Nel 1963-1966 è stato creato il linguaggio universale multiuso PL-1. Questo linguaggio è adatto per lo studio e la pianificazione di processi computazionali, la modellazione, la risoluzione di problemi logici e lo sviluppo di sistemi software.

 Il linguaggio Pascal (PASCAL) (1968-1971) è il più popolare linguaggio di programmazione procedurale per PC, che è ancora utilizzato con successo. Il linguaggio Pascal si basa sull'approccio dal compito generale allo specifico (più semplice e di volume più piccolo). I principi fondamentali che Pascal possiede includono: a) la programmazione strutturale, che si basa sull'uso di subroutine e strutture dati indipendenti; b) Programmazione top-down, quando il compito è suddiviso in compiti semplici e risolti indipendentemente. Quindi la soluzione del problema originale viene costruita completamente dall'alto verso il basso.

 I linguaggi di programmazione procedurale includono il linguaggio ADA (1979), che prende il nome dalla prima programmatrice Ada Lovelace, figlia di Byron. Si distingue per la modularità dei design.

 Anche il linguaggio C (primi anni '70) appartiene ai linguaggi di programmazione procedurale. La sua versione originale è stata pianificata come lingua per l'implementazione sistema operativo Unix invece del linguaggio assembly. Una delle caratteristiche del linguaggio C è che le differenze tra espressioni e istruzioni vengono appianate, il che lo avvicina ai linguaggi di programmazione funzionale. Inoltre, il linguaggio C non ha il concetto di procedura e l'uso dei sottoprogrammi si basa sul concetto di funzione, che può combinare le capacità di una procedura. Da un lato, in base all'insieme delle strutture di controllo e delle strutture dati, può essere classificato come un linguaggio di alto livello e, dall'altro, dispone di un insieme di strumenti per l'accesso diretto alle unità funzionali di un computer, il che significa che può essere utilizzato come linguaggio operativo.

Programmazione orientata agli oggetti (OOP)è un metodo di programmazione in cui gli elementi principali dei programmi sono oggetti. Nei linguaggi di programmazione, il concetto di oggetto è implementato come insieme di proprietà (strutture dati specifiche di un dato oggetto), metodi per elaborarle (subroutine per modificarne le proprietà) ed eventi a cui un dato oggetto può rispondere e che, come una regola, comportano una modifica delle proprietà dell'oggetto. La combinazione dei dati e delle relative procedure di elaborazione in un oggetto è chiamata incapsulamento ed è uno dei principi più importanti dell'OOP.

Un altro concetto fondamentale è la classe. Una classe è un modello da cui è possibile creare un particolare oggetto programma, descrive le proprietà e i metodi che determinano il comportamento degli oggetti di questa classe. Ogni oggetto specifico che ha la struttura di questa classe è chiamato istanza della classe.

I successivi principi più importanti dell'OOP sono l'ereditarietà e il polimorfismo. L'ereditarietà prevede la creazione di nuove classi basate su quelle esistenti e consente alla classe discendente di avere (ereditare) tutte le proprietà della classe madre.

Il polimorfismo significa che gli oggetti nati hanno informazioni su quali metodi dovrebbero usare a seconda di dove si trovano nella catena.

Un altro importante principio dell'OOP è la modularità: gli oggetti contengono una definizione completa delle loro caratteristiche, nessuna definizione di metodi e proprietà deve trovarsi al di fuori di esso, questo rende possibile copiare e implementare liberamente un oggetto in altri.

I linguaggi di programmazione più moderni sono C++ e Java. Dalla metà degli anni '90, molti linguaggi orientati agli oggetti sono stati implementati come sistemi di progettazione visiva in cui la parte di interfaccia prodotto software viene creato in modalità interattiva, praticamente senza scrivere istruzioni di programma. I sistemi di progettazione visiva orientati agli oggetti includono Visual Basic, Delphi, C++ Builder, Visual C++. Linguaggio VBA (Visual Basic for Application) - lingua dell'applicazione Microsoft Office(Excel, Word, Power Point, ecc.). VBA segue la sintassi di base del linguaggio e le regole dei linguaggi di programmazione Basic - dialetti, consente di creare macro per automatizzare l'esecuzione di determinate operazioni e un'interfaccia utente grafica, integrazione tra vari prodotti software.

Linguaggi di programmazione dichiarativi

Questi includono linguaggi di programmazione funzionali e logici. La programmazione funzionale è un modo di scrivere programmi in cui l'unica azione è chiamare una funzione. La programmazione funzionale non utilizza la memoria come luogo in cui archiviare i dati e pertanto non utilizza variabili intermedie, istruzioni di assegnazione e cicli. Il concetto chiave nei linguaggi funzionali è l'espressione. Un programma scritto in un linguaggio funzionale è una sequenza di descrizioni di funzioni ed espressioni. L'espressione viene calcolata riducendo il complesso al semplice. Tutte le espressioni sono scritte come liste. Lisp (LISP, LIST Processing) è stato creato nel 1959 come prima lingua. Questa lingua consente di elaborare grandi quantità di informazioni testuali. La programmazione logica è programmazione in termini di logica. Nel 1973 è stato creato il linguaggio di intelligenza artificiale Prolog (PROLOG) (Programmazione in Logica). Un programma Prolog è costruito da una sequenza di fatti e regole, quindi viene formulata una dichiarazione che Prolog cerca di provare con l'aiuto delle regole. Il linguaggio stesso cerca una soluzione utilizzando i metodi di ricerca e corrispondenza che sono incorporati in esso. I programmi logici non si distinguono per l'alta velocità, poiché il processo della loro esecuzione si riduce alla costruzione di catene di ragionamento dirette e inverse utilizzando vari metodi di ricerca.

Panoramica dei linguaggi di programmazione

assemblatore

I linguaggi di programmazione per computer sono divisi in 2 gruppi principali:

1) lingue di basso livello;

2) linguaggi di alto livello.

I linguaggi assembly sono linguaggi di basso livello. Hanno preso il nome dal nome del programma di sistema Assembler, che converte i programmi sorgente scritti in tali linguaggi direttamente in codici di istruzioni macchina. Le parti qui sono dichiarazioni e il risultato dell'assembly è una sequenza di istruzioni macchina.Il linguaggio assembly combina i vantaggi di un linguaggio di istruzioni macchina e alcune caratteristiche dei linguaggi di alto livello. L'assembler offre la possibilità di utilizzare nomi simbolici nel programma sorgente e salva il programmatore dal noioso lavoro (inevitabile quando si programma in linguaggio macchina) nell'allocare memoria del computer per istruzioni, variabili e costanti.

L'assemblatore consente la stessa flessibilità e il pieno utilizzo delle capacità tecniche del computer, nonché il linguaggio delle istruzioni della macchina. Il traduttore di sorgenti dell'assembler è più semplice del compilatore richiesto per un linguaggio di programmazione di alto livello. È possibile scrivere un programma in linguaggio Assembly che sia efficiente in termini di dimensioni e tempo di esecuzione come un programma in linguaggio macchina. Questo vantaggio è assente nelle lingue di alto livello. Questo linguaggio viene spesso utilizzato per la programmazione in tempo reale di sistemi, processi tecnologici e apparecchiature, garantendo il funzionamento dei sistemi informativi e di misura. Tali sistemi di solito richiedono elevate quantità di memoria della macchina occupata. Spesso il linguaggio assembly viene integrato mediante la formazione di macro, ciascuna delle quali equivale a un intero gruppo di istruzioni macchina. Tale linguaggio è chiamato linguaggio assemblatore di macro. L'uso di blocchi "costruiti" di papavero e avvicina il linguaggio assembly a un linguaggio di alto livello. Assembler è un linguaggio dipendente dalla macchina, ovvero riflette le caratteristiche dell'architettura di un particolare tipo di computer

Pasquale

Il linguaggio di programmazione Pascal è stato sviluppato da Nicholas Wirth, professore al Dipartimento di Informatica del Politecnico Federale Svizzero, nel 1968 come alternativa ai linguaggi di programmazione esistenti e sempre più complessi come PL/1, Algol, Fortran. L'intenso sviluppo di Pascal ha portato alla comparsa già nel 1973 del suo standard sotto forma di messaggio rivisto, e il numero di traduttori da questa lingua nel 1979 ha superato 80. All'inizio degli anni '80, Pascal ha ulteriormente rafforzato la sua posizione con l'avvento di Traduttori MS-Pascal e Turbo -Pascal per PC. Da quel momento, Pascal è diventato uno dei linguaggi di programmazione più importanti e ampiamente utilizzati. È essenziale che la lingua sia andata da tempo al di là dell'ambito dell'interesse accademico e strettamente professionale e sia utilizzata nella maggior parte delle università dei paesi altamente sviluppati non solo come strumento di lavoro per l'utente. La caratteristica più importante di Pascal è l'idea incarnata della programmazione strutturata. Un'altra caratteristica essenziale è il concetto di struttura dei dati come uno dei concetti fondamentali.

Le ragioni principali della popolarità di Pascal sono le seguenti:

La semplicità del linguaggio consente di padroneggiarlo rapidamente e creare programmi algoritmicamente complessi.

I mezzi sviluppati per rappresentare le strutture di dati offrono la comodità di lavorare con informazioni sia numeriche che simboliche e bit

La presenza di metodi speciali per la creazione di compilatori da Pascal semplificò il loro sviluppo e contribuì all'ampia diffusione del linguaggio

Le proprietà di ottimizzazione dei compilatori di Pascal consentono di creare programmi efficienti. Questo è stato uno dei motivi per cui Pascal è stato utilizzato come linguaggio di programmazione dei sistemi.

Il linguaggio Pascal implementa le idee della programmazione strutturata, che rende il programma visivo e dà buone opportunità per lo sviluppo e il debug

Il dipendente di Bell Labs Denis Ritchie ha creato il linguaggio C nel 1972 durante lavoro congiunto con Ken Thompson come strumento per l'implementazione del sistema operativo Unix, ma la popolarità di questo linguaggio ha rapidamente superato i confini di un sistema operativo specifico e di attività di programmazione del sistema specifiche. Attualmente, qualsiasi strumento e sistema operativo non può essere considerato completo se non include un compilatore C. Ritchie non ha semplicemente inventato la C dalla sua testa: il linguaggio B sviluppato da Thompson è servito da prototipo. Il linguaggio di programmazione C è stato sviluppato come strumento per programmatori pratici. In accordo con ciò, l'obiettivo principale del suo autore era creare un linguaggio conveniente e utile sotto tutti gli aspetti.

C è uno strumento per programmatori di sistema e consente di approfondire i meccanismi più sottili di elaborazione delle informazioni su un computer. Sebbene il linguaggio richieda un alto grado di disciplina da parte del programmatore, non è rigoroso nelle pretese formali e consente formulazioni concise.

C è una lingua moderna. Comprende quelle strutture di controllo raccomandate dalla teoria e dalla pratica della programmazione. La sua struttura incoraggia il programmatore a utilizzare la progettazione top-down, la programmazione strutturata e lo sviluppo graduale dei moduli nel proprio lavoro.

C è un linguaggio potente e flessibile. La maggior parte del sistema operativo Unix, dei compilatori e degli interpreti per Fortran, Pascal, Lisp e BASIC sono scritti con esso.

C è un linguaggio conveniente. È abbastanza strutturato per supportare un buon stile di programmazione senza essere vincolato da limiti rigidi. In un certo senso, il linguaggio C è il più versatile, perché oltre a un insieme di strumenti inerenti ai moderni linguaggi di programmazione di alto livello (strutturalità, modularità, alcuni tipi di dati), include strumenti per la programmazione quasi a livello di assemblatore. Una vasta gamma di operatori e strutture richiede al programmatore di essere attento, accurato e di avere una buona conoscenza del linguaggio con tutti i suoi vantaggi e svantaggi.

Il linguaggio C++ è apparso nei primi anni '80. Creato da Bjorn Stroustrup con l'obiettivo originale di salvare se stesso e i suoi amici dalla programmazione in assembly, C o vari altri linguaggi di alto livello.

Secondo l'autore del linguaggio, la differenza tra l'ideologia del C e del C++ è grosso modo la seguente: un programma C riflette il “modo di pensare” del processore, mentre C++ riflette il modo di pensare del programmatore. Soddisfare i requisiti programmazione moderna, C++ si concentra sullo sviluppo di nuovi tipi di dati che meglio si adattano ai concetti del campo di conoscenza prescelto e ai compiti dell'applicazione. La classe è un concetto chiave in C++. La descrizione della classe contiene una descrizione dei dati richiesti per rappresentare oggetti di questo tipo e un insieme di operazioni per lavorare con oggetti simili.

A differenza delle tradizionali strutture C e Pascal, i membri della classe non sono solo dati, ma anche funzioni. Le funzioni membro di una classe hanno accesso privilegiato ai dati all'interno degli oggetti di quella classe e forniscono un'interfaccia tra quegli oggetti e il resto del programma. A ulteriori lavori non è assolutamente necessario ricordare la struttura interna della classe e il meccanismo delle funzioni integrate. In questo senso, l'aula è come un dispositivo elettrico: poche persone conoscono il suo dispositivo, ma tutti sanno come usarlo.

Il linguaggio C++ è uno strumento per la programmazione a oggetti, l'ultima tecnica per la progettazione e l'implementazione di programmi, che è probabile che nel decennio in corso sostituirà la tradizionale programmazione procedurale. L'obiettivo principale del creatore del linguaggio, il Dr. Bjorn Stroustrap, era quello di dotare il linguaggio C++ di costrutti che rendessero possibile aumentare la produttività dei programmatori e facilitare il processo di padronanza di prodotti software di grandi dimensioni.

L'astrazione, l'implementazione, l'ereditarietà e il polimorfismo sono proprietà essenziali di C++, che lo rendono non solo universale come il C, ma anche un linguaggio a oggetti. Fortran Fortran è un linguaggio ampiamente utilizzato, soprattutto tra gli utenti che fanno modellazione numerica. Ciò è dovuto a diverse ragioni:

L'esistenza di ingenti fondi di programmi Fortran applicati accumulati negli anni, nonché la presenza di un numero enorme di programmatori che utilizzano efficacemente questo linguaggio;

La presenza di efficaci traduttori Fortran su tutti i tipi di computer e le versioni per varie macchine sono abbastanza standardizzate e il trasferimento di programmi da macchina a macchina di solito non pone grandi difficoltà;

Il focus originale di Fortran sulle applicazioni fisiche, matematiche e tecniche; in particolare, ciò si è manifestato nel fatto che per lungo tempo è rimasto l'unico linguaggio con un tipo complesso di variabili integrate e un ampio insieme di funzioni integrate per lavorare con tali variabili.

Nell'ultimo periodo si è formata una nuova metodologia e filosofia di programmazione. Dall'inizio degli anni '70 Fortran è stato oggetto di meritate critiche. Adottato nel 1977 nuovo standard Lingua Fortran-77. Ci è voluto molto tempo per creare un nuovo standard, ma ora possiamo già considerare che il suo sviluppo è stato completato e il nuovo standard Fortran-90 ha iniziato a entrare nella pratica degli utenti Fortran. Solo su macchine come il PC IBM, ci sono diversi traduttori come Watfor, Lap-Fortran, ecc. Ma i più diffusi su macchine di questo tipo sono varie versioni del traduttore Fortran-77. Rilasciato nel 1990, il traduttore MS-Fortran 5.0 è quasi completamente conforme allo standard Fortran-90. La maggior parte delle principali applicazioni scientifiche e tecniche sono scritte in Fortran per via della sua portabilità e stabilità, e anche per le funzioni matematiche e trigonometriche integrate. Una parte integrante e aggiuntiva di qualsiasi programma applicativo Fortran è una libreria grafica estesa che consente di utilizzare vari dati grafici e immagini.

Il linguaggio è stato creato principalmente negli anni 1975 - 1980 a seguito di un grandioso progetto intrapreso dal Dipartimento della Difesa statunitense per sviluppare un unico linguaggio di programmazione per i cosiddetti sistemi embedded (ovvero i sistemi di controllo in tempo reale per complessi automatizzati). In primo luogo, avevano in mente i sistemi di controllo di bordo per le strutture militari (navi, aerei, carri armati, missili, proiettili, ecc.). Pertanto, le decisioni prese dagli autori di Ada non sono da ritenersi universali. Devono essere percepiti nel contesto delle caratteristiche dell'area disciplinare prescelta. La lingua di Ada è nata a seguito di un concorso internazionale per progetti linguistici tenutosi nel 1978-1979. I partecipanti dovevano soddisfare requisiti piuttosto severi e dettagliati sviluppati sotto gli auspici del Dipartimento della Difesa degli Stati Uniti. È interessante notare che tutte le lingue che hanno raggiunto gli ultimi round di questa competizione erano basate su Pascal. A questo proposito, Ada può essere provvisoriamente caratterizzato come un Pascal sviluppato tenendo a mente i cinque requisiti di base di cui sopra. Allo stesso tempo, gli autori hanno seguito principalmente il percorso di espansione di Pascal con nuovi elementi. Il risultato è un linguaggio molto più complesso.

cobolo

Il cobol è un linguaggio relativamente antico, sviluppato principalmente per la ricerca economica. Il linguaggio ti consente di lavorare in modo efficace con una grande quantità di dati, è pieno di varie capacità di ricerca, ordinamento e distribuzione. Informazioni sui programmi Cobol basati sull'uso diffuso in inglese, si dice che siano comprensibili anche a chi non parla Cobol, poiché i testi in questo linguaggio di programmazione non necessitano di commenti particolari. Tali programmi sono chiamati autodocumentanti. Altri vantaggi di Cobol sono solitamente attribuiti alla sua struttura. Sono stati sviluppati compilatori abbastanza potenti da questo linguaggio computer personale. Alcuni di essi sono così efficaci che un programma sottoposto a debug su un personal computer può essere facilmente trasferito su computer mainframe.

Elencando i contro, non si può fare a meno di ricordare che su Cobol si possono programmare solo i più semplici calcoli algebrici. Per i calcoli di ingegneria, questo linguaggio non è adatto. Un altro motivo che in una certa misura ostacola lo sviluppo della lingua è la presenza negli Stati Uniti di un comitato di settore appositamente creato che sviluppa standard monitorati da una commissione governativa. Come sempre accade in questi casi, le aziende di sviluppo software non hanno fretta di adattare le loro bozze ai rigidi requisiti della commissione, non c'è competizione di versioni e alla fine perdono la diffusione del linguaggio

PL/1 è stato sviluppato nel 1964-1965 da IBM. PL/1 è uno dei linguaggi universali, ovvero consente di risolvere problemi di diverse aree: calcoli numerici, elaborazione testi, problemi economici, ecc. In termini di capacità, si sovrappone a linguaggi come Fortran, Algol-60 (creato per calcoli numerici), Kobol (per problemi economici), anche se per una serie di ragioni PL/1 non poteva sostituire questi linguaggi.

PL/1 contiene tutte le costruzioni di base caratteristiche dei cosiddetti linguaggi di alto livello, nonché una serie di strumenti specifici utili per la programmazione pratica. Il linguaggio ricorda un costruttore con un gran numero di dettagli: l'utente deve solo padroneggiare quelle parti del linguaggio che sono praticamente necessarie per lui. Le sue istruzioni sono abbastanza capienti, il che spesso rende possibile scrivere un programma in modo più compatto rispetto ad altri linguaggi. Un programmatore che conosce PL/1 può facilmente padroneggiare qualsiasi altro linguaggio della stessa classe o di una classe simile.

Allo stesso tempo, PL/1 presenta anche una serie di carenze che rendono difficile l'apprendimento e l'uso della lingua. I principali sono i seguenti. In primo luogo, ci sono molti mezzi che si duplicano a vicenda; In secondo luogo, i programmi non sono completamente indipendenti dalla macchina.

Modula

Si può considerare che la storia del linguaggio Modula inizia nel 1980, quando Niklaus Wirth, uno dei più importanti teorici dell'informazione, noto alla maggior parte degli informatici principalmente come il creatore del linguaggio Pascal, pubblicò la descrizione di un nuovo linguaggio di programmazione, che chiamò Modula. A differenza del Pascal, inteso come linguaggio per l'insegnamento della programmazione, Modula è stato fin dall'inizio un linguaggio per programmatori di sistemi professionisti, continuando le migliori tradizioni del suo predecessore e arricchendole con nuove idee che soddisfano tali requisiti per i linguaggi di programmazione come struttura , modularità e possibilità di espansione. Come molti altri linguaggi di programmazione, Modula ha subito un'evoluzione, durante la quale il suo nome originale è stato cambiato in Modula-2. Contemporaneamente allo sviluppo del linguaggio Modula sono stati creati nuovi compilatori per esso, tuttavia nessuno di essi poteva competere con le migliori implementazioni dei linguaggi Pascal e C, ad esempio quelli sviluppati da Borland. In questo periodo di transizione per il linguaggio Modula sono state considerate le migliori le implementazioni realizzate da Logitech, che per caratteristiche hanno perso contro Turbo Pascal e Turbo C. Solo nel 1988, dopo che il sistema Top Speed ​​è apparso sul mercato americano, Modula-2 ha preso il suo giusto posto tra i linguaggi procedurali destinati alla programmazione di sistema. Diversi fattori hanno contribuito alla crescente popolarità del sistema Top Speed: un ambiente operativo comodo e, inoltre, facilmente modificabile, un compilatore veloce e un linker selettivo. Ma la cosa più significativa si è rivelata che i programmi creati si distinguevano per l'alta velocità e non occupavano molto spazio di memoria.

DI BASE

BASIC (Basic - Codice di istruzione simbolico per tutti gli usi per principianti - "codice di istruzione simbolico universale per principianti"). Un diretto discendente di Fortran e tuttora il linguaggio di programmazione più popolare per personal computer. BASIC è apparso nel 1963 (sarebbe difficile nominare l'autore, ma il merito principale nel suo aspetto appartiene senza dubbio agli americani John Kemeny e Thomas Kurtz). Come ogni vantaggio, la semplicità del BASIC andava a scapito della strutturazione, specialmente nelle prime versioni; inoltre, BASIC non consentiva la ricorsione, un trucco interessante che consente di scrivere programmi efficaci e allo stesso tempo brevi.

Sono stati sviluppati potenti compilatori BASIC che forniscono non solo un ricco vocabolario e prestazioni elevate, ma anche la possibilità di programmazione strutturata. Secondo alcuni programmatori, le versioni più interessanti sono GWBASIC, Turbo-Basic e Quick Basic.

Un tempo, la comparsa di Quick Basic segnò la nascita della seconda generazione di sistemi di programmazione BASIC. Ha fornito la possibilità di programmazione modulare e procedurale, creazione di librerie, compilazione di programmi già pronti, ecc., Che lo hanno portato al livello di linguaggi di programmazione classici come C, Pascal, Fortran, ecc. Inoltre, a causa della mancanza di uno standard linguistico BASIC ufficiale, sotto forma di Quick Basic è diventato lo standard de facto. I leader indiscussi tra le varie versioni di BASIC furono Quick Basic 4.5 e PDS 7.1 di Microsoft, apparsi alla fine degli anni '80.

Liscio

Il linguaggio Lisp è stato proposto da J. McCarthy nel 1960 e si concentra sullo sviluppo di programmi per la risoluzione di problemi non numerici. titolo inglese questo linguaggio - LISP è l'abbreviazione dell'espressione LIST Processing (elaborazione di elenchi) e sottolinea bene l'area principale della sua applicazione. Il concetto di “lista” si è rivelato molto capiente. Sotto forma di elenchi, è conveniente rappresentare espressioni algebriche, grafici, elementi di gruppi finiti, insiemi, regole di inferenza e molti altri oggetti complessi. Gli elenchi sono la forma più flessibile di rappresentazione delle informazioni nella memoria del computer. Non c'è da stupirsi, quindi, che un linguaggio pratico progettato specificamente per la gestione degli elenchi abbia preso rapidamente piede.

Dopo l'avvento del Lisp, vari autori hanno proposto una serie di altri linguaggi algoritmici incentrati sulla risoluzione di problemi nel campo dell'intelligenza artificiale, tra cui si possono notare Planner, Snobol, Refal, Prolog. Tuttavia, ciò non ha impedito al Lisp di rimanere il linguaggio più popolare per risolvere tali problemi. Nel corso di quasi quarant'anni della sua esistenza, sono comparsi numerosi dialetti di questa lingua: Common LISP, Mac LISP, Inter LISP, Standard LISP, ecc. Le differenze tra loro non sono fondamentali e si riducono principalmente a una leggermente diversa insieme di funzioni integrate e alcune differenze nella forma dei programmi di notazione. Pertanto, un programmatore che ha imparato a lavorare su uno di essi può facilmente padroneggiarne un altro. Il grande vantaggio di Lisp è il suo orientamento funzionale, ovvero la programmazione avviene tramite funzioni. Inoltre, una funzione è intesa come una regola che abbina gli elementi di una certa classe con gli elementi corrispondenti di un'altra classe. Il processo di abbinamento stesso non ha alcun effetto sul funzionamento del programma, solo il suo risultato è importante: il valore della funzione. Ciò rende relativamente facile scrivere ed eseguire il debug di sistemi software di grandi dimensioni. La chiarezza dei programmi, una chiara delimitazione delle loro funzioni, l'assenza di effetti collaterali complicati durante la loro esecuzione sono requisiti obbligatori per la programmazione di compiti logicamente complessi come i compiti di intelligenza artificiale. La disciplina nella programmazione diventa particolarmente importante quando non una persona ma un intero gruppo di programmatori sta lavorando al programma.

Il linguaggio di programmazione Lisp è progettato principalmente per l'elaborazione di informazioni simboliche. Pertanto, è naturale che nel mondo della Lisp i numeri giochino ben lontani dal ruolo principale. I principali tipi di dati in Lisp sono chiamati "atomo" e "coppia di punti".

Prologo

Un linguaggio di programmazione logica è progettato per rappresentare e utilizzare la conoscenza su una determinata area tematica. I programmi in questo linguaggio sono costituiti da un certo insieme di relazioni, e la sua esecuzione si riduce alla derivazione di una nuova relazione basata su quelle date. Prolog implementa un approccio dichiarativo, in cui è sufficiente descrivere il problema con l'aiuto di regole e affermazioni su determinati oggetti. Se questa descrizione è sufficientemente accurata, il computer può trovare autonomamente la soluzione richiesta.

Oggetto PAL

Object PAL è un potente linguaggio di programmazione. Object PAL è un linguaggio di programmazione visuale orientato agli oggetti, guidato dagli eventi. Al livello iniziale della funzionalità di Object PAL, è possibile eseguire operazioni sui dati, creare menu speciali e gestire la sessione di immissione dati. Gli eventi in Object PAL generano comandi che imitano l'effetto dell'uso interattivo di Paradox. È possibile automatizzare le attività eseguite di frequente, nonché eseguire azioni su tabelle, moduli e report che non erano disponibili durante il lavoro interattivo. Inoltre, Object PAL fornisce tutte le funzionalità di un linguaggio di programmazione completo in Ambiente Windows. È possibile utilizzare Object PAL per creare sistemi completi che implementano un sistema di menu dedicato, un sistema di guida e tutti i tipi di convalida dei dati. In Object PAL, puoi archiviare il tuo lavoro in una libreria di collegamento dinamico a cui è possibile accedere da più moduli. Inoltre è possibile stabilire collegamenti con altre librerie dinamiche contenenti programmi scritti in linguaggi come C, C++ o Pascal.

Object PAL può essere utilizzato come strumento per la creazione di programmi standalone. Puoi scrivere un'applicazione Windows completa ed eseguirla in Paradox.

Object PAL supporta lo scambio di dati dinamico sia come client che come server. Inoltre, Object PAL supporta il motore di documenti compositi come client. Oltre a quanto sopra, è possibile includere strumenti multimediali nell'applicazione fornendo all'applicazione in esecuzione effetti sonori e di animazione.

L'implementazione dBase di Borland è un felice ibrido di orientamento agli oggetti e programmazione tradizionale. Ha consentito la creazione di sistemi utilizzando la progettazione di oggetti e l'uso di tecniche di elaborazione dei record convenzionali. Il grande risultato dell'azienda Borland è stato quello di combinare con successo tecniche di programmazione a oggetti e procedurali. La prima versione per Windows offriva all'utente lo strumento a oggetti più potente sul mercato del software di database. Ti consente di creare nuove classi di oggetti che hanno le proprietà di ereditarietà, incapsulamento e polimorfismo. Consente inoltre di programmare questi oggetti utilizzando i tradizionali comandi dBase, ideali per la gestione di semplici database tabulari. Tutto ciò offre un innegabile vantaggio: per eseguire senza troppe difficoltà il passaggio alle tecniche di programmazione a oggetti, il passaggio è complicato, ad esempio, come in Paradox DBMS.

Il linguaggio Java è nato nell'ambito di un progetto per la creazione di software avanzati per vari elettrodomestici. L'implementazione del progetto è stata avviata in C++, ma presto sono sorti diversi problemi, miglior rimedio combattimento che è stato un cambiamento nello strumento stesso: il linguaggio di programmazione. È diventato ovvio che era necessario un linguaggio di programmazione indipendente dalla piattaforma, che consentisse di creare programmi che non avrebbero dovuto essere compilati separatamente per ciascuna architettura e che potevano essere utilizzati su vari processori sotto vari sistemi operativi. Il linguaggio Java era necessario per creare prodotti interattivi per Internet. In effetti, la maggior parte delle decisioni architettoniche prese durante creazione di Java, è stato dettato dal desiderio di fornire una sintassi simile a C e C++. Java utilizza convenzioni quasi identiche per la dichiarazione di variabili, il passaggio di parametri, il passaggio di operatori e il controllo del flusso di codice. Java aggiunge tutte le buone caratteristiche di C++.

Tre elementi chiave che si uniscono nella tecnologia del linguaggio Java

Java mette a disposizione del pubblico le sue applet (applet) - applicazioni di rete attive piccole, affidabili, dinamiche e indipendenti dalla piattaforma che sono incorporate nelle pagine Web. Le applet Java possono essere personalizzate e distribuite ai consumatori con la stessa facilità di qualsiasi documento HTML.

Java libera la potenza dello sviluppo di applicazioni orientato agli oggetti combinando una sintassi semplice e familiare con un ambiente di sviluppo robusto e facile da usare. Ciò consente a un'ampia gamma di programmatori di creare rapidamente nuovi programmi e nuove applet.

Java fornisce al programmatore un ricco set di classi di oggetti per astrarre chiaramente molte delle funzioni di sistema utilizzate in windowing, networking e I/O. La caratteristica fondamentale di queste classi è che forniscono astrazioni indipendenti dalla piattaforma per un'ampia varietà di interfacce di sistema.

Linguaggi di programmazione per reti di computer

I linguaggi di programmazione per le reti di computer vengono interpretati. Gli interpreti per loro sono distribuiti gratuitamente e i programmi stessi sono nel codice sorgente. Tali linguaggi sono chiamati linguaggi di script.

Perl è un linguaggio interpretato creato dal programmatore Larry Wall per l'elaborazione di testi e file di grandi dimensioni e sta per Practical Extraction e Report Language (linguaggio per l'estrazione pratica e il reporting dei dati). Con Perl, ad esempio, puoi creare uno script che apra uno o più file, elabora le informazioni e scriva i risultati.

Perl è un linguaggio adattato per gestire l'arbitrario file di testo, estraendo da essi le informazioni necessarie ed emettendo messaggi. Perl è utile anche per scrivere vari programmi di sistema. Questo linguaggio è facile da usare, efficiente, ma è difficile dire che sia elegante e compatto. La sintassi delle espressioni Perl è vicina a quella di C. La ricorsione può essere di profondità arbitraria. Sebbene Perl sia in grado di scansionare file di testo, può anche gestire dati binari. Perl consente di utilizzare espressioni regolari, creare oggetti, inserire parti di codice Perl in un programma C o C++ e consente inoltre di accedere ai database, incluso Oracle.

Con l'invenzione del World Wide Web, Perl si è rivelato un ottimo modo per comunicare con i server Web attraverso la Common Gateway Interface (CGI), un'interfaccia di comunicazione comune. I comandi Perl possono facilmente ottenere dati da un modulo HTML o da un'altra fonte ed eseguire alcune azioni su di esso.

Lingua PHP(1995-1997) ha accesso al database ed è utilizzato dai creatori di siti dinamici in tutto il mondo.

Lingua tcl/tk(fine anni '80) è costituito da potenti comandi progettati per funzionare con oggetti astratti non tipizzati e consente di creare programmi con un'interfaccia grafica.

Lingua VRML(1994) è stato creato per organizzare interfacce tridimensionali virtuali su Internet.

Lingua XML. Dal 1996 è in corso il lavoro per creare un linguaggio universale per la struttura dei documenti. Può diventare un sostituto del linguaggio HTML.

Conclusione

Risorse utili

La recensione di Isili

Dov'è il rapporto?

Recensito da Ranifka

Re: Dov'è il rapporto?
Tutto sarà :D

Feedback da Shamagulova Elite

Recensito da Alexander Mishin

Ottimo rapporto. Ho imparato molto sui linguaggi di programmazione.

Feedback di Alexander Morozov

Naturalmente, mi piacerebbe vedere un rapporto o almeno una presentazione in qualche modo.

1. Giava

Giava una delle lingue più popolari per parte posteriore sviluppo di moderne applicazioni web aziendali. E questo è il suo principale vantaggio. Con l'aiuto della lingua Giava e i suoi framework, gli sviluppatori web possono creare applicazioni web scalabili per un'ampia gamma di utenti. Giava - la lingua principale per lo sviluppo di applicazioni native sotto Androide e altre applicazioni per smartphone e tablet. Il grande vantaggio di questa lingua si chiama LAVORA ( " Scrivi una volta, corri ovunque" ) - principio "scrivi una volta, lavora ovunque", dichiarato Microsistemi solari per dimostrare multipiattaforma Giava . Ma questo vantaggio non nega il fatto che questo linguaggio sia più lento di altri simili.



2. JavaScript

Un linguaggio ultra popolare tra i giovani sviluppatori. È adatto per creare interattività del sito o creare interfacce utente utilizzando una delle dozzine di framework popolari. Questa lingua viene vista raramente al di fuori del browser, probabilmente perché è l'unico posto in cui è utile. Tuttavia, JavaScript vale la pena imparare, non solo perché lui e le sue dozzine di framework stanno guadagnando popolarità, ma anche perché in futuro la lingua ti permetterà di creare cose più complesse.

3.C#

C # vale la pena imparare, perché conoscerlo ti aiuterà a trovare un lavoro abbastanza facilmente. Attualmente è il linguaggio più popolare per lo sviluppo di applicazioni finestre e molto popolare per i dispositivi mobili. Inoltre, il motore di sviluppo del gioco Unità utilizza anche C # come una delle lingue principali. È molto simile ad altri linguaggi di programmazione orientati agli oggetti ed è abbastanza facile da imparare con conoscenze di base. C++ o Java.

4. PHP



Un buon linguaggio per la creazione di applicazioni Web di dati. È la tecnologia di base per la creazione di potenti sistemi di gestione dei contenuti come WordPress , che può essere successivamente esteso per rendere il sito più potente. È stato criticato come un linguaggio non sicuro, ma la situazione è cambiata in meglio dopo un aggiornamento nel 2004. Per chi vuole insegnare PHP consigliato di sapere HTML, CSS e Javascript.

5. C++

Creato nel 1979, il linguaggio è ancora molto popolare e viene utilizzato per costruire vari tipi applicazioni - dai giochi alle applicazioni per ufficio. C ++ è progettato per la programmazione di sistema ed è adatto per lo sviluppo di software potenti, giochi con accelerazione hardware e applicazioni che richiedono grandi quantità di memoria su computer desktop, console e dispositivi mobili. Tra le carenze del C ++, i programmatori chiamano "goffaggine" rispetto a Giava.

6. Pitone

Vale la pena studiare, se non altro perché Python: la scelta di Google e Ubuntu . Ma questa non è l'unica caratteristica positiva della lingua. Pitone , tra cui spiccano anche l'eccellente leggibilità e l'eleganza del codice. Pitone non richiede tanto codice per eseguire un programma quanto altri linguaggi.

7. rubino

rubino - la lingua è facile da imparare e incredibilmente potente, inoltre in essa sono scritte migliaia di applicazioni Web popolari in tutto il mondo. Se ami gli oggetti, questo linguaggio fa per te. Il suo principale vantaggio è la velocità. Ruby è molto simile a Python ma meno "umano".

PROSPETTIVA

8. Erlang

Erlang è un linguaggio di programmazione funzionale sviluppato dall'azienda Ericsson , per lo sviluppo di sistemi distribuiti real-time. La sua caratteristica principale è il parallelismo. Vale la pena studiare perché usano grandi banche con milioni di utenti Erlang per i sistemi bancari. Ad esempio, sta cercando PrivatBank, la più grande banca ucraina Erlang sviluppatori per lavorare con il sistema bancario Internet Privat24, che era stato precedentemente scritto Giava.

9. R

Ampiamente usato per lo sviluppo di software statistico, ma non molto popolare tra gli sviluppatori. Questo linguaggio è consigliato a coloro che necessitano di un'analisi seria dei dati. Funziona su tutte le piattaforme e si integra con molti linguaggi di programmazione come Java, Ruby, C++, Python . Anche se ora non è così popolare, la situazione potrebbe cambiare in meglio. gennaio 2015 Microsoft ha acquisito la società Analisi della rivoluzione , secondo loro, per contribuire all'ulteriore sviluppo della lingua R.

10. Veloce

Linguaggio di programmazione Veloce sviluppatori catturati come un modo nuovo, più veloce e più semplice per sviluppare sotto Mac e iOS, rispetto a Objective-C . Tuttavia, è rilevante solo nell'ecosistema Mela. Buono per Apple - male per uno sviluppatore che non vuole lavorare esclusivamente per Mela soprattutto vista la popolarità Androide . Vale la pena imparare se vuoi contribuire al mondo dei giochi iOS.

11. Vai)

Ci sono molte più informazioni su Internet sul perché di più andare linguaggio cattivo che buono. Questa lingua è progettata Google. Quindi, secondo Google, vai fornisce un supporto fondamentale per l'esecuzione e la comunicazione di programmi paralleli e offre un approccio alla creazione di software di sistema su computer multi-core. Questa lingua può essere inclusa nell'elenco di quelle promettenti, ma abbiamo qualche dubbio sul suo futuro.