Una breve storia dei primi linguaggi di programmazione

Questo includeva diverse automazioni e assemblatori. Un tempo ‘segnato da molti primati’.,

Friedman ci chiede di considerare la programmazione o la ‘codificazione’ cultura alla luce delle novità che sono venuti:

“dobbiamo tenere a mente, in primo luogo, che la mentalità di codifica struttura era tale che qualcosa di diverso a mano di codifica è stata considerata inferiore e, in secondo luogo, che quelli manualmente il codice in linguaggio macchina i programmi erano in realtà molto complessa e intricata e fatto tanto con meno di memorizzazione come i nostri sofisticati programmi di oggi.,”

Dice anche che lo scetticismo era giustificato dal momento che questi sistemi risultavano programmi meno efficienti e più costosi delle equivalenti versioni codificate a mano prodotte da programmatori umani intelligenti e inventivi.

Quindi, in questo momento i programmatori non hanno sempre programmato “da zero”. Molti potrebbero copiare manualmente sezioni di codice.

La copia era piena di “errori di trascrizione”.

Nel 1949 John Mauchly propose ‘Short-Order Code’ o ‘Short Code’ per il BINAC (Computer automatico binario). Il computer è stato costruito da John Mauchly e J., Presper Eckert, è stato successivamente acquistato da Remington-Rand.

Codice breve: era un insieme di subroutine interpretative memorizzate in memoria. Codice breve eseguito circa cinquanta volte più lento del programma codificato a mano equivalente.

Gli anni 1950-1951 videro l’emergere di una serie di linguaggi macchina artificiali o ‘pseudo codici’.

“Nei primi anni 1950 Betty Holbertson Sort-Merge Generator è stato un primo tentativo verso l’utilizzo di un computer per scrivere programmi e ha ispirato un’intera famiglia di altri generatori di programmi.,”

Nel 1951 il primo libro di testo per la programmazione arrivò dall’Inghilterra. Si chiamava” La preparazione di programmi per un computer digitale”, scritto da Wilkes, Wheeler e Gill.

Discuteva di “routine di assemblaggio”, riferendosi a: “a un pezzo di codice che combinava un insieme di subroutine e allocava lo storage come blocchi di indirizzi rilocabili chiamati “indirizzi mobili”.,”

Nel 1951, Grace Murray Hopper lavorando all’UNIVAC di Remington-Rand, inventai quella che lei chiamava una “routine di compilazione”, come l’atto di tradurre “pseudo-codice” in un set completo di istruzioni in linguaggio macchina.

Nel 1952, Millie Coss uscì con il ‘Generatore di editing’ prendendo operazioni aritmetiche e stampando un output leggibile da manager e altri esseri umani.

Friedman descrisse nel 1952 lo sviluppo di un sistema AUTOCODE da parte di Alick E. Glennie come un collegamento alla “terza generazione” di software., Era un compilatore algebrico primitivo, altamente dipendente dalla macchina, che traduceva le istruzioni algebriche nel linguaggio macchina del Manchester Mark I.

Terza generazione di software — linguaggi procedurali

Nel 1945, un linguaggio di programmazione teorico fu sviluppato in Fed. Rep. Germania di Konrad Zuse, chiamato Plankalkul (programmacalcolo), anche se questo è passato inosservato fino a circa 1972.,

In Italia la tesi di dottorato di Corrado Bohm del 1951 descrive un sistema che definisce ogni istruzione come un caso speciale dell’istruzione assegnata, ad esempio S sarebbe equivalente a ‘impostare il contatore del programma sul valore della variabile S’.

Il primo compilatore algebrico è considerato per il computer WHIRLWIND del MIT progettato da Jay Forrester e Ken Olsen. Fu il primo minicomputer a 16 bit capace di elaborazione parallela e calcolo in tempo reale. Fu dimostrato nella primavera del 1953 e attivo e funzionante nel gennaio del 1954.,

Nel 1955, il team di programmazione di Grace Murray Hoppe ha iniziato a sviluppare un linguaggio di programmazione algebrico che utilizza alcune parole chiave inglesi.

Nel 1957, è stato rilasciato come MATH-MATIC, ed eseguito in modo inefficiente. Nel 1957 IBM finalmente consegnato il compilatore per FORTRAN. È stato sempre più accettato nella comunità informatica.

Nel 1958, FLOW-MATIC fu rilasciato e divenne un fattore importante nella successiva progettazione di COBOL.,

FORTRAN (FORmula TRANslating System)

Nel 1954, John Backus guidò un team di ricercatori IBM (in seguito chiamato Programming Research Group) per progettare e sviluppare traduttori automatici di formule matematiche in codice macchina IBM 704. Accetterebbero niente di meno che qualcosa di efficiente come le loro controparti codificate a mano. La loro preoccupazione principale era l’efficienza, poiché secondo Friedman potrebbe essere più probabile che venga accettata dalla comunità di codifica. L’aspetto del design del linguaggio è stato gestito rapidamente., Descritto da Friedman :”in alla maniera di un lavoro che doveva essere completato prima che il lavoro “reale” (il design del compilatore) potesse essere fatto.”

FORmula TRANslating System,o FORTRAN è stato rilasciato nel 1954 con gran parte del documento dedicato alla giustificazione del sistema, tra cui un’aspettativa ottimistica che FORTRAN avrebbe eliminato la codifica e il debug.

Nel 1958, i compilatori FORTRAN furono rilasciati per l’IBM 709 e il 650; nel 1960 per il 1620 e il 7070., Le versioni non erano necessariamente identiche e un programma scritto su un computer non produceva necessariamente lo stesso risultato su un altro.

Nel 1961, i compilatori FORTRAN furono resi disponibili per altri computer (UNIVAC, Remington-Rand LARC e ALTAC).

Nel 1964 c’erano più di 40 diversi compilatori FORTRAN sul mercato. Va detto che non era un linguaggio indipendente dalla macchina, e il computer in modo diverso su computer diversi.

Nel 1958 fu rilasciato FORTRAN II, seguito da FORTRAN III e FORTRAN IV nel 1962., FORTRAN IV è stato lo standard per la lingua fino a quando FORTRAN 77 è stato rilasciato nel 1978.

LISP (LISt Processor)

Durante gli anni 1956-1958 un linguaggio interattivo e applicativo è stato progettato a Darthmouth da John McCarthy.

Nel 1959, questo è stato poi implementato al MIT con un manuale di riferimento pubblicato nel 1960.

LISP è basato sul lambda-calculus e, a differenza di altri linguaggi, è stato progettato per la manipolazione di formule simboliche. Friedman sostiene che è diventato il ‘lingua franca’ (mezzo di comunicazione) per la comunità di intelligenza artificiale.,

Elenca alcune caratteristiche innovative come la seguente:

  • La funzione come unità di programma di base.
  • L’elenco come struttura dati di base.
  • Strutture dati dinamiche.
  • Strutture per ‘garbage collections’.
  • Uso di espressioni simboliche in contrapposizione ai numeri.
  • Ricorsione.
  • Espressione condizionale come strutture di controllo.
  • La funzione’ eval ‘ per la valutazione interattiva delle istruzioni LISP.,

ALGOL (ALGOrithmic-Language)

Nel 1958, un comitato si riunì a Zurigo per progettare un linguaggio di programmazione universale di alto livello. Ha visto la partecipazione di rappresentanti europei della GAMM (associazione tedesca per la matematica applicata e la meccanica) e dell’Associazione per le macchine informatiche. Uno dei membri del comitato era John Backus, che aveva guidato il gruppo di sviluppo FORTRAN.

Uno degli obiettivi era quello di facilitare la comunicazione e lo scambio nella comunità informatica internazionale insieme all’obiettivo pratico di portare un compilatore in Europa (erano ancora codifica a mano)., Uno dei motivi per cui si desiderava un nuovo linguaggio era che FORTRAN era un prodotto IBM proprietario. Adottare FORTRAN significherebbe quindi in qualche modo acquistare solo macchine IBM, e c’era il desiderio che IBM non dominasse in Europa.

Il linguaggio è stato inizialmente chiamato IAL, per il linguaggio algebrico internazionale ,e alla fine rinominato ALGOL (ALGOrithmic-Language). La prima versione era conosciuta come ALGOL 58.

Il comitato si riunì nuovamente a Parigi nel 1960 per migliorare la lingua ed eliminare le debolezze.,

“L’influenza di ALGOL60 sulla progettazione del linguaggio di programmazione e sullo sviluppo dell’informatica in generale, è stata niente meno che profonda.”

Friedman elenca alcune caratteristiche innovative:

  • BNF (Backus Normal Form), metalanguage per la definizione del linguaggio di programmazione.
  • Il linguaggio di programmazione come oggetto di studio, piuttosto che solo un mezzo verso un fine.
  • Utilizzato come linguaggio di pubblicazione per algoritmi.
  • Struttura a blocchi e ambienti di dati localizzati.
  • Nidificazione di unità di programma.,
  • Codice programma in formato libero.
  • Declinazioni di tipo esplicito.
  • Allocazione dinamica della memoria.
  • Parametro che passa per valore e nome.
  • If / then / else e begin / end per delimitare le istruzioni composte.
  • Regole di ambito.
  • Dichiarazione di variabili locali.
  • Parametri passati per nome, valore o riferimento.

COBOL (COmmonBusiness-Oriented-Language

Nel 1959, un altro gruppo si riunì sotto la supervisione del Dipartimento della Difesa degli Stati Uniti per discutere lo sviluppo di un linguaggio di programmazione “comune”.,

“Questo gruppo, composto da circa 40 membri, rappresentava produttori di computer e utenti dell’industria, delle università e del governo e divenne noto come Comitato CODASYL(COOnferenceon Data SYstemsLanguages).”

Era nell’interesse sia dei produttori di computer che del governo progettare un linguaggio che potesse funzionare su macchine diverse.

Nell’aprile del 1960 fu creato un linguaggio chiamato COBOL.

A differenza di FORTRAN, il linguaggio è iniziato relativamente “indipendente dalla macchina”.,

Per molti la programmazione di prima e seconda generazione era poco compresa dalla maggior parte e considerata come dice Friedman: una “arte nera”.

Importanti innovazioni in COBOL secondo Friedman sono le seguenti:

  • La struttura dei dati dei record.
  • Descrizioni dei file e strumenti di manipolazione.
  • Indipendenza della macchina dei dati e delle descrizioni dei programmi.
  • Uguale enfasi sulla descrizione dei dati nelle Divisioni dati e sulle operazioni nella Divisione Procedure.
  • Influenza dell’inglese nell’uso di verbi, clausole, frasi, paragrafi, sezioni e divisioni.,
  • A stili di linguaggio relativamente naturali, comprese le parole di rumore per la leggibilità.
  • Lo sforzo complessivo verso un linguaggio che produrrebbe il codice del programma di auto-documentazione.

Hanno iniziato una tendenza importante verso i linguaggi orientati ai dati. Friedman sostiene che ciò è culminato nella proliferazione di sistemi di gestione di database, linguaggi di query e strumenti e ambienti di programmazione ad alta produttività centrati sul database.,

C’era una diffusa disponibilità di compilatori COBOL in parte a causa di un coinvolgimento del governo:

“…il Dipartimento della Difesa ha inviato un forte dura lettera a tutti i produttori di computer consigliando loro che se volevano continuare a vendere i computer del Dipartimento della Difesa(il più grande computer contracter e endower di assegni di ricerca) che era meglio mettere un compilatore COBOL su di esso.”

Friedman commenta che FORTRAN, COBOL e LISP erano tra i linguaggi di programmazione più utilizzati al momento della scrittura (ca. 1990).,

Babel → 1960 e 1970

” I decenni degli anni 1960 e 1970 hanno visto una proliferazione davvero sorprendente di programmazione languages.It era questo hubub di attività che Jean Sammetin 1969 paragonato alla Torre biblica di Babele.”

APL (un linguaggio di programmazione). Definito e presentato al pubblico nel 1962 attraverso un libro di Kenneth Harvardon ad Harvard, che ha preso parte alla progettazione di questo. Ha richiesto una tastiera speciale e non è diventato ampiamente utilizzato.

SNOBOL (linguaggio simbolico orientato alle stringhe)., Implementato per la prima volta nel 1963, è stato progettato dai ricercatori dei Bell Laboratories come linguaggio di manipolazione delle stringhe. L’implementazione era in realtà denominata SEXI (String EXpression Interpreter), ma apparentemente era considerata inaccettabile. Il nome della lingua era un jab umoristico a acronimi: SNOBOL (stringa OrientedsymBOlicLanguag). SNOBOL4 è stato rilasciato nel 1968 progettato per hardware di computer di terza generazione, tratta i modelli come oggetti dati. La caratteristica unica era la sua facilità per la corrispondenza di stringhe e pattern.

BASIC (codice didattico simbolico per tutti gli usi per principianti)., Il codice correva nel 1964 e il design del linguaggio aveva lo scopo di introdurre gli studenti in discipline non scientifiche all’informatica. La semplicità è stata scelta rispetto all’efficienza del compilatore e sono stati forniti messaggi di errore chiari.

PL / 1 (Linguaggio di programmazione / one). Rilasciato 1966, inteso come il ‘linguaggio per porre fine a tutte le lingue’, ma non così popolare come IBM aveva sperato. I compilatori erano inefficienti e inaffidabili. È stato criticato come un linguaggio da grande, in quanto ha cercato di includere ogni elemento immaginabile del design del linguaggio.

Logo. Sviluppato nel corso degli anni 1966-1968., Progettato specificamente per l’educazione matematica, utilizzato sperimentalmente nelle aule. Logo è molto simile a LISP. Esso comprende ‘tartaruga grafica’, per insegnare ai bambini principi geometrici.

FORTH (lingua di quarta generazione). Charles H. Moore voleva un linguaggio abbastanza efficiente per le applicazioni scientifiche e ingegneristiche, ma consentiva una programmazione più rapida utilizzando meno righe di codice. Due (apparentemente) obiettivi di progettazione in conflitto a quanto pare. Secondo Friedman non può essere considerato un linguaggio di quarta generazione oggi.

SIMULA., Progettato nel 1962 da Kristen Nygaard e Ole-Johan Dahl presso il Norwegian Computing Center sotto contratto con Univac. Motivato dal desiderio di simulare applicazioni-una tecnica di ricerca operativa utilizzata con successo in una serie di settori diversi. Questo linguaggio ha introdotto il ‘concetto di classe’, un’astrazione importante per la programmazione orientata agli oggetti.

Pascal (dal nome del filosofo e matematico francese del xvii secolo Blaise Pascal). La revisione di ALGOL68 (da ALGOL60) non era popolare, in quanto era inutilmente grande e imbarazzante., Uno dei’ dissidenti ‘ Niklaus Wirth ha progettato Pascal, che è stato implementato per la prima volta nel 1970. Friedman sostiene che Pascal progettato per l’uso nell’educazione si è distinto: “opposition in opposizione a una tendenza”. Una tendenza a complicare una lingua con funzionalità in modo che nessun utente possa aspettarsi di conoscerle tutte.

C. Kenneth Thompson e Dennis Ritchie hanno sviluppato C per la codifica delle routine in un sistema operativo UNIX. C era un’estensione di B (anch’essa progettata da Thompson) che si basava su un precedente linguaggio BCPL. C ha creato la nozione di un sistema operativo portatile., Friedman sostiene che una sintassi concisa rende i programmi C difficili da leggere, capire, eseguire il debug e mantenere.

Modula-2 (Linguaggio modulare / due). Discendente di Pascal, destinato a sistemi di grandi dimensioni. Il modulo facilita la condivisione delle informazioni, incapsulando il codice in pezzi chiaramente delineati.

Ada. Proposto nel 1980 e standardizzato nel 1983, aveva intenti simili a PL/1 (language to end all languages) e un successo simile.,

Dopo l’annuncio di FORTRAN con il rapporto nel 1954 c’erano una grande quantità di lingue che tentavano di: “t domare il computer elettronico per un uso di alto livello da parte degli esseri umani in ogni area di applicazione.,tra le diverse lingue:

Modello di Friedman

Quarto il software di generazione dei linguaggi dichiarativi

“di von Neumann-typeof architettura del computer, mentre serve come catalizzatore per una generazione di linguaggi di programmazione possono anche, sembra, essere in colpa, in gran parte, per il grado di stagnazione abbiamo visto in sviluppo concettuale del linguaggio di programmazione tecnologia.,”

Ciò a cui Friedman si riferisce è il programma memorizzato in posizioni di memoria con un singolo contatore in un flusso di istruzioni di sequenza. I linguaggi di programmazione che si basano su questa precedente architettura paradigmatica (procedurale) tendono ad essere:

  1. Orientato all’istruzione (assumendo l’esecuzione sequenziale di un numero limitato di operazioni).
  2. Composto da un gran numero di righe di codice. Il debug è arduo e lungo.
  3. La manutenzione richiede tempo e costi.,

Friedman sostiene che questo paradigma successivo è declerativo:

“Un linguaggio di quarta generazione è dichiarativo, cioè le sue istruzioni al computer si concentrano più su ciò che deve essere fatto piuttosto che sulla descrizione dettagliata di come farlo.”

La quarta generazione cerca di ottimizzare il lavoro umano nel tempo del computer.

Spesso rivolto a un utente non tecnico in una particolare area di applicazione.

Alcune delle tendenze secondo Friedman sono:

  • Linguaggio dichiarativo.
  • Software confezionato.,
  • Pacchetti integrati.
  • Ambienti interattivi di facile utilizzo.
  • Lingue di interrogazione.
  • Strumenti di programmazione ad alta produttività.
  • L’integrazione delle lingue.
  • Strumenti di programmazione (editor, linker, traduttori, gestore di file e interfaccia utente all’interno di un unico sistema interattivo).

Menziona che non tutti i sistemi sono non procedurali e la classificazione è arbitraria.

Nel 1961, il pacchetto statistico BMD (BioMeDicalpackage) viene sviluppato presso l’Università della California Berkeley e implementato in FORTRAN sull’IBM 7090.,

Nel 1967, Arthur S. Couch sviluppò DATATEXT all’Università di Harvard rivolto agli scienziati sociali.

PROLOG (Programmazione in logica). Implementato nel 1972 in ALGOL-W ai fini dell’elaborazione del linguaggio naturale. Dal 1981 è stato associato al progetto di quinta generazione del Giappone.

OPS (Sistema di produzione ufficiale). Un sistema di produzione o linguaggio basato su regole utilizzato nel campo dell’intelligenza artificiale. OPS5 rilasciato nel 1977.

Smalltalk., Progettato e implementato presso Xerox Palo Alto Research Center (PARC) come componente software di: “Dynabook leggendario di Alan Kay, un personal computer di dimensioni notebook per l’utente non tecnico.”L’ambiente era importante: mouse per la selezione e il puntamento; menu utente grafici e così via. Steve Jobs ha utilizzato questo approccio con i computer Apple Lisa e il sistema operativo Macintosh.

Linguaggi di query. Realizzati per rendere i database accessibili a persone con una formazione minima, i linguaggi di query sono stati sviluppati per essere user-friendly. SQL è stato sviluppato per SystemsR e molti altri modi per eseguire query., SQL è stato progettato presso IBM e commercializzato nel 1979 da Oracle.

Friedman sostiene:

“Uno strumento ad alta produttività di quarta generazione è in gran parte non procedurale, user-friendly e orientato ai problemi.”

Inoltre, afferma che questi sistemi sono stati centrati su un database e includono componenti di un sistema di gestione del database.

Il software è iniziato con gli esseri umani costretti a “pensare” in codice per una macchina specifica.

Al momento della scrittura Friedman sostiene già che i computer possono ‘pensare’ o agire in una certa misura come gli esseri umani.,

L’articolo di Linda Weiser Friedman è una lettura affascinante e ovviamente consiglio di leggerlo per intero piuttosto che il mio riassunto limitato.

Spero che ti sia piaciuto questo articolo!

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *