Quali caratteristiche hanno contribuito all'evoluzione di Pascal?

17

Sto compilando una cronologia dettagliata della lingua Pascal e ci sono alcuni dettagli che mi mancano.

Oggi ci sono così tante funzionalità che diamo per scontate. Quali caratteristiche hanno contribuito in modo significativo all'evoluzione di Pascal e perché sono state significative?

Sto cercando funzionalità linguistiche, non funzioni di piattaforma o framework. Così come l'overloading dell'operatore oi parametri predefiniti, ma non il supporto Linux o il nuovo widget Rich Text.

So che ci sono alcuni gusti diversi di Pascal (Delphi, Free Pascal, Oxygene, Quick Pascal, Apple Pascal, ecc.) e hanno introdotto le stesse caratteristiche in momenti diversi e in parallelo. Va bene. Sto osservando la lingua Pascal nel suo complesso e quando si sono verificati gli importanti traguardi (date, versioni, ecc.)

    
posta Jim McKeeth 28.07.2011 - 20:02
fonte

13 risposte

10

Da una prospettiva storica della lingua, probabilmente il più grande contributo di Pascal era la sicurezza del tipo strong. Quella battaglia è finita per ora - la squadra di Pascal ha vinto - e il punto di svolta industriale era Java. Ma per molto tempo, C è stato favorito davanti a Pascal da persone che si consideravano grandi codificatori per questo: la gente voleva la libertà di manipolare i propri indicatori come se fossero interi. Le implementazioni pratiche di Pascal avevano tuttavia delle scappatoie come i sindacati che non controllavano dinamicamente il campo discriminante, o avevano persino un typecasting completo di puntatori al punto di essere tutti tranne C equivalente (Turbo Pascal era uno di questi).

Questo, e una semplificazione della complicata specifica ALGOL 68 [1], potrebbe essere un punto di partenza.

[1] Prova a leggere il report di ALGOL 68 a volte - è sicuramente un prodotto degli anni '60! Un sito sul web menziona alcuni dei suoi strani gerghi: "token bus", "alberi di produzione invisibili", "dintorni primitivi", "unioni incestuose", "nozioni", "protonotions", "metanotions", "hypernotions", " paranotions ', ecc.

    
risposta data 02.08.2011 - 02:57
fonte
15

Direi che le due forze guida più importanti nella storia di Pascal sono state:

  1. Sicurezza dei caratteri: Pascal è stato determinante nel creare la convinzione che la sicurezza del tipo sia importante e critica in una lingua.
  2. Efficienza del compilatore: Pascal è sempre stato progettato come un linguaggio a passaggio singolo e ha mostrato al mondo quanto può essere veloce un compilatore senza rinunciare alla potenza. Le cose che rendono un compilatore veloce sono anche le cose che rendono un linguaggio ben progettato e facile da leggere. Il genus di Borland era nel fornire tutto ciò e anche le prestazioni.
risposta data 01.08.2011 - 22:43
fonte
11

Hai davvero bisogno di tornare alle origini - trova un po 'di storia di Niklaus Wirth. Pascal ha iniziato la sua vita come lingua di insegnamento. "Algorithms + Data Structures = Programs" è un buon punto di partenza.

All'epoca, Pascal era molto più semplice di Algol 68 e PL / 1. Ha forzato la struttura e la dichiarazione, e la sicurezza del tipo strong, a differenza di Fortran4 (Fortran 77 ha migliorato le cose un po 'ma è ancora possibile giocare terribilmente veloce-n-loose). E rispetto a COBOL è stato un programma breve, semplice e facile da scrivere. (Ciao mondo in circa 6 righe invece di 600).

Quando ha avuto origine, c'erano cose come gli array di caratteri in Pascal - che era per la gestione delle stringhe. Le cose sono migliorate nel corso degli anni.

Se vuoi veramente approfondire una storia di Pascal, alcuni punti che devi tenere in considerazione:

  • L'originale di Wirth (Pascal standard)
  • estensioni di Digital Equipment Corp (DEC) su Vax
  • il sistema p UCSD (su molte macchine ma in particolare su Apple-2)
  • Turbo Pascal
  • Apollo Domain Pascal (utilizzato per scrivere il sistema operativo Dominio / OS, chiamato anche Aegis)
  • Turbo Pascal con oggetti e unità (versione 5.5 e successive Modifica: appena trovato TP 5.5 OOP PDF )
  • Delphi

Negli anni '80 c'era un'enorme festa tra Pascal e C. C'era una grande quantità di sviluppo e attività in entrambi i campi.

Di conseguenza, le cose strane e meravigliose come Bliss-32, Algol e PL / 1 sono praticamente scomparse, ma le idee da queste sono arrivate in Pascal.

EDIT: gli array di caratteri potevano essere impacchettati che conferivano alcune proprietà speciali, ma se volevi ciò che ora conosciamo come gestione delle stringhe, dovevi farcela da solo.

    
risposta data 02.08.2011 - 03:57
fonte
5

Estensioni orientate agli oggetti! Object Pascal è stato il più grande (non ufficiale) salto di qualità con il rilascio di Delphi (1) a metà degli anni '90. È difficile sceglierne solo uno, ma l'intero nucleo del modello di oggetto nel suo insieme ha contribuito a portare il linguaggio allo stato moderno. Sfortunatamente fino ad oggi non è stato creato un singolo standard unificato ufficiale di cui tutti i compilatori sarebbero conformi per la simmetria di codifica.

Fortunatamente gli sviluppatori del progetto Free Pascal sono stati abbastanza accomodanti per le funzionalità aggiunte a Delphi da Borland e Embarcadero. RemObjects non così tanto ma almeno ha legami con Embarcadero con Delphi Prism, quindi qualsiasi deviazione da uno standard (per rendere il linguaggio più compatibile con .NET) sarebbe altamente documentato.

    
risposta data 29.07.2011 - 00:55
fonte
4

Solo una o due cose che ricordo di aver usato Pascal molto tempo fa con MS-DOS:

Turbo Pascal più o meno ha introdotto una sorta di IDE negli anni '80 (e le prestazioni della compilazione hanno ottenuto un notevole miglioramento rispetto a UCSD Pascal

In qualche modo verso la metà degli anni '90 Borland ha cambiato il nome da Turbo a Borland Pascal . Come primo passo, le Unità introdotte, che hanno permesso di suddividere grandi progetti in unità di compilazione separate.

Successivamente hanno aggiunto anche la programmazione orientata agli oggetti.

    
risposta data 28.07.2011 - 20:51
fonte
4

Uno dei passaggi evolutivi fondamentali in Pascal era la corretta nozione di stringhe. ISO 7185 ("Pascal standard") non li ha, il che è un po 'imbarazzante. Tuttavia, tutti i programmatori reali ne avevano bisogno, e le implementazioni Pascal praticabili (come Borland / Turbo Pascal) li hanno forniti.

    
risposta data 02.08.2011 - 12:10
fonte
4

Guardando alle innovazioni del linguaggio Pascal di Delphi - aggiungerei il modello Property, Method, Event (PME) e la sezione "Published" per le classi. Ciò ha reso possibile la creazione di codice nativo, facile da usare ed estendere la creazione di componenti. I componenti hanno soddisfatto la promessa di Brad Cox relativa ai circuiti integrati software.

    
risposta data 04.08.2011 - 00:09
fonte
3

La lotta tra molti sapori di Pascal negli anni '80 e nei primi anni '90.

Hai Apple Pascal , Microsoft Pascal e QuickPascal e Turbo Pascal .

Tutti introdotti Object Pascal in un modo o nell'altro (QuickPascal 1.0 e Turbo Pascal 5.5 nello stesso arco di tempo). Apple perché lo richiedevano per la loro piattaforma, Microsoft e Borland perché OO stava diventando "cool" (quindi QuickPascal morì poco dopo, e Turbo Pascal 6.0 aggiunse un framework OO ragionevole chiamato Turbo Vision ).

Rudy Velthuis è abbastanza completo su questo nel suo post sul forum .

Puoi scaricare un'immagine ISO con DOS 6.22 e alcuni dei compilatori DOS Pascal di quell'era .

    
risposta data 13.08.2011 - 23:55
fonte
2

Penso che l'introduzione delle interfacce (in Delphi 3 IIRC) fosse molto importante per renderlo un linguaggio moderno orientato agli oggetti.

    
risposta data 29.07.2011 - 08:59
fonte
2

Aggiungerò metodi anonimi e generici al mix.

    
risposta data 29.07.2011 - 10:02
fonte
2

Le nuove funzionalità linguistiche tra Delphi 7 e Delphi XE sono descritte a pagina 52 in questo white paper di Embarcadero:
link

    
risposta data 30.07.2011 - 20:16
fonte
2

Per me le due cose più importanti (dopo altri linguaggi come C ...) sono state l'insensibilità del caso e la velocità del compilatore.

E dopo questo è il fatto che è più facile scrivere con la tastiera finlandese, perché non ho bisogno costantemente di {} o di altri tasti che è difficile da raggiungere ...

Sono stato a bordo da Delphi2 ma ho usato D1 in un paio d'anni di lavoro ...

    
risposta data 08.08.2011 - 11:11
fonte
1

Inizia con "Programmazione strutturata" , di Dahl, Dijkstra e Hoare. La sezione di Dijkstra è fondamentale, anche oggi. La sezione di Tony Hoare sulla strutturazione dei dati ha posto molte basi per PASCAL. (La sezione di Dahl parlava di ciò che alla fine divenne programmazione orientata agli oggetti, descrivendo cosa diventarono le classi in Simula 67).

Guarda in ALGOL-W, l'implementazione di Wirth di una variante di ALGOL-60.

Al momento è necessario conoscere anche PL / I e l'editor di link IBM 360 (linker). Era una meraviglia della generalità, con il problema minore che correva più lentamente della melassa a gennaio a Juneau, in Alaska. PASCAL è stato specificamente progettato per essere compilato e collegato in un passaggio, per la velocità. (È stato di aiuto che la lingua abbia iniziato la vita su un supercomputer junior CDC 6400, con molta memoria, rendendo pratico un compilatore one-pass.)

In realtà c'erano due versioni principali di PASCAL del Politecnico di Zurigo. La lingua che tutti conoscono attualmente come PASCAL era in realtà PASCAL2, la seconda versione.

    
risposta data 30.03.2013 - 05:08
fonte

Leggi altre domande sui tag