Je suis en train de compiler un historique détaillé du langage Pascal, et il manque quelques détails.
Il y a tellement de fonctionnalités aujourd'hui que nous tenons pour acquises. Quelles fonctionnalités ont significativement contribué à l'évolution de Pascal, et pourquoi étaient-elles significatives?
Je recherche des fonctionnalités de langage, pas des fonctionnalités de plateforme ou de framework. Comme la surcharge de l'opérateur ou les paramètres par défaut, mais pas la prise en charge Linux ou le nouveau widget Rich Text.
Je sais qu'il existe différentes saveurs de Pascal (Delphi, Free Pascal, Oxygene, Quick Pascal, Apple Pascal, etc.) et ils ont introduit les mêmes fonctionnalités à différents moments et en parallèle. Ça va. Je regarde le langage Pascal dans son ensemble, et quand les jalons importants se sont produits (dates, versions, etc.)
Apps
, ce qui est juste une nouvelle saveur de client-serveur).Réponses:
Du point de vue historique de la langue, la plus grande contribution de Pascal était probablement la sécurité de type fort. Cette bataille est presque terminée maintenant - l'équipe de Pascal a gagné - et le point de basculement industriel a été Java. Mais pendant très longtemps, C a été favorisé devant Pascal par des gens qui se considéraient comme des codeurs adultes en grande partie à cause de cela: les gens voulaient la liberté de manipuler leurs pointeurs comme s'ils étaient des entiers. Les implémentations pratiques de Pascal avaient cependant des failles, comme les unions qui ne vérifiaient pas dynamiquement le champ discriminant, ou même avaient une transtypage complet des pointeurs au point d'être tout sauf C (Turbo Turbo en faisait partie).
Ceci, et une simplification de la spécification ALGOL 68 compliquée [1], pourrait être un point de départ.
[1] Essayez de lire le rapport ALGOL 68 un jour - c'est certainement un produit des années 60! Un site sur le Web mentionne une partie de son étrange jargon: «jeton de bus», «arbres de production invisibles», «environs primitifs», «unions incestueuses», «notions», «protonotions», «métanotions», «hypernotions», « paranotions », etc.
la source
Je dirais que les deux moteurs les plus importants de l'histoire de Pascal ont été:
la source
Il faut vraiment revenir aux origines - retrouver un peu d'histoire de Niklaus Wirth. Pascal a commencé sa vie comme langue d'enseignement. "Algorithmes + Structures de données = Programmes" est un bon point de départ.
À l'époque, Pascal était beaucoup plus simple que Algol 68 et PL / 1. Il a forcé la structure et la déclaration, et une sécurité de type forte, contrairement à Fortran4 (Fortran 77 a un peu amélioré les choses mais vous pouvez toujours jouer terriblement vite). Et par rapport à COBOL, il était court, simple et plus facile à écrire des programmes. (Bonjour tout le monde en environ 6 lignes au lieu de 600).
À son origine, il y avait des choses comme les tableaux de caractères en Pascal - c'était tout pour la gestion des chaînes. Les choses se sont améliorées au fil des ans.
Si vous voulez vraiment vous plonger dans une histoire Pascal, quelques points que vous devez prendre en compte:
Dans les années 1980, il y avait une énorme fête des limaces entre Pascal et C. Il y avait une grande quantité de développement et d'activité dans les deux camps.
En conséquence, des choses étranges et merveilleuses comme Bliss-32, Algol et PL / 1 ont quasiment disparu - mais leurs idées ont fait leur chemin vers Pascal.
EDIT: les tableaux de caractères pourraient être emballés, ce qui conférait des propriétés spéciales, mais si vous vouliez ce que nous connaissons maintenant comme la gestion des chaînes, vous deviez le développer vous-même.
la source
packed array[1..n] of char;
, par exemple en lecture (ln) et écriture (ln)Extensions orientées objet! Object Pascal a été le plus grand saut de normes (non officiel) avec la sortie de Delphi (1) au milieu des années 90. Il est difficile d'en choisir un seul, mais l'ensemble du noyau du modèle objet dans son ensemble a contribué à amener le langage à un statut moderne. Malheureusement à ce jour, il n'a pas été transformé en un standard officiel unique auquel tous les compilateurs se conformeraient pour la symétrie de codage.
Heureusement, les développeurs du projet Free Pascal ont été assez accommodants avec les fonctionnalités ajoutées à Delphi par Borland et Embarcadero. RemObjects n'est pas tellement mais au moins ils ont des liens avec Embarcadero sous Delphi Prism, donc tout écart par rapport à une norme (pour rendre le langage plus conforme à .NET) serait hautement documenté.
la source
virtual
mot - clé pour les remplacer par des sous-classes.Juste une ou deux choses dont je me souviens d'avoir utilisé Pascal il y a longtemps avec MS-DOS:
Turbo Pascal a plus ou moins introduit une sorte d'IDE dans les années 80 (et les performances de compilation ont été considérablement améliorées par rapport à UCSD Pascal
Vers le milieu des années 90, Borland a changé le nom de Turbo en Borland Pascal . Dans un premier temps, les unités introduites, qui ont permis de diviser les grands projets en unités de compilation distinctes.
Plus tard, ils ont également ajouté une programmation orientée objet.
la source
L'une des principales étapes évolutives de Pascal était la notion propre de chaînes. ISO 7185 ("Standard Pascal") n'en avait pas, ce qui est assez embarrassant. Cependant, tous les vrais programmeurs en avaient besoin, et des implémentations viables de Pascal (comme Borland / Turbo Pascal) les ont fournies.
la source
En repensant aux innovations du langage Pascal de Delphi - j'ajouterais le modèle Property, Method, Event (PME) et la section "Published" pour les classes. Cela a rendu le code natif, facile à utiliser et à étendre la construction de composants. Les composants ont rempli la promesse de Brad Cox de circuits intégrés logiciels.
la source
Le combat entre de nombreuses saveurs de Pascal dans les années 80 et au début des années 90.
Vous aviez Apple Pascal , Microsoft Pascal et QuickPascal et Turbo Pascal .
Tous ont introduit Object Pascal d'une manière ou d'une autre (QuickPascal 1.0 et Turbo Pascal 5.5 dans le même laps de temps). Apple parce qu'ils en avaient besoin pour leur plate-forme, Microsoft et Borland parce que OO devenait `` cool '' (puis QuickPascal est mort peu de temps après, et Turbo Pascal 6.0 a ajouté un cadre OO raisonnable appelé Turbo Vision ).
Rudy Velthuis est assez complet à ce sujet dans son message sur le forum .
Vous pouvez télécharger une image ISO avec DOS 6.22 et quelques-uns des compilateurs DOS Pascal de cette époque .
la source
Je pense que l'introduction des interfaces (dans Delphi 3 IIRC) était très importante pour en faire un langage moderne orienté objet.
la source
J'ajouterai des méthodes et des génériques anonymes au mix.
la source
Les nouvelles fonctionnalités de langage entre Delphi 7 et Delphi XE sont décrites à la page 52 dans ce livre blanc d'Embarcadero:
http://www.embarcadero.com/images/dm/technical-papers/reasons-to-migrate-to-delphi-xe -blanc-papier.pdf
la source
Pour moi, les deux choses les plus importantes (après quelques autres langages comme C ...) étaient l'insensibilité à la casse et la vitesse du compilateur.
Et après c'est le fait qu'il est plus facile d'écrire avec le clavier finlandais, car je n'ai pas besoin constamment du {} ou d'autres touches difficiles à atteindre ...
Je suis à bord depuis Delphi2 mais j'ai utilisé D1 au travail quelques années ...
la source
Commencez par la "Programmation structurée" de Dahl, Dijkstra et Hoare. La section de Dijkstra est fondamentale, même aujourd'hui. La section de Tony Hoare sur la structuration des données a jeté les bases de PASCAL. (La section de Dahl a parlé de ce qui est finalement devenu une programmation orientée objet. Il a décrit ce qui est devenu des classes dans Simula 67.)
Découvrez ALGOL-W, l'implémentation par Wirth d'une variante d'ALGOL-60.
Vous devez également connaître PL / I et l'éditeur de liens IBM 360 (éditeur de liens) à l'époque. C'était une merveille de généralité, avec le problème mineur qu'elle courait plus lentement que la mélasse en janvier à Juneau, en Alaska. PASCAL a été spécialement conçu pour être compilé et lié en un seul passage, pour la vitesse. (Cela a aidé le démarrage du langage sur un supercalculateur junior CDC 6400, avec beaucoup de mémoire, ce qui rend un compilateur en un seul passage pratique.)
Il y avait en fait deux versions principales de PASCAL de l'ETH Zurich. La langue que tout le monde connaît actuellement sous le nom de PASCAL était en fait PASCAL2, la deuxième version.
la source