IP Pascal
IP Pascal est une exécution du langage de programmation de Pascal using la plate-forme de portabilité d'IP, un système multiple de machine, du système d'exploitation et de langue d'exécution.
Vue d'ensemble
IP Pascal met en application un superjeu d'OIN 7185 Pascal. Il ajoute la modularité , y compris le concept du moniteur de l'imposition de parallèle de , les rangées dynamiques , les surcharges , et une foule d'autres prolongements mineurs à la langue. L'IP met en application une plate-forme de mise en communication, y compris une trousse à outils de gadget de , bibliothèque de TCP/IP , Midi et bibliothèque saine et d'autres fonctions, qui permet des programmes écrits sous IP Pascal, et IP Pascal elle-même, pour se déplacer aux logiciels d'exploitation et aux machines multiples.
IP Pascal est l'une des seules réalisations de Pascal qui existent toujours cela ont passé la suite de validation de Pascal, une grande suite des essais créés pour vérifier la conformité à OIN 7185 Pascal.
Langue
Les débuts d'IP Pascal avec le Pascal (qui d'OIN 7185 de a normalisé le langue originale de s de Wirth Niklaus '), et s'ajoute :
les modules de
, y compris la tâche parallèle construit le de processus, le moniteur et la part .
mymod du module (entrée, rendement) ;
const un = 1 de ;
le type corde = de de a emballé le de la rangée de du char de ;
wrtstr du procédé (vue s de : corde) ;
privé
variété s de : corde ;
wrtstr du procédé (vue s de : corde) ;
variété i de : nombre entier ;
le commencent
pour i : = 1 à extrémité ;
le commencent {initialiser le moniteur}
extrémité ;
le commencent {moniteur d'arrêt}
extrémité .
Les modules ont des sections d'entrée et de sortie. Les déclarations dans des modules forment leurs propres caractéristiques d'interface, et il n'est pas nécessaire d'avoir des sections d'interface et d'exécution. Si un dossier séparé de déclaration d'interface est nécessaire, il est créé en dépouillant le code hors d'un module et en créant un " ; skeleton" ; du module. Ceci est typiquement fait seulement si l'objet pour un module doit être envoyé sans source.
Un programme d'OIN 7185 Pascal est directement analogue à un module, et est effectivement un module sans section de sortie. Puisque tous les modules dans le système sont " ; " connecté en série ; tel que chacun est exécuté dans l'ordre, un programme assume le " ; command" ; du programme simplement parce qu'il ne sort pas son initialisation jusqu'à ce que sa pleine fonction soit complète, à la différence d'un module qui fait. En fait, il est possible d'avoir des sections de programme multiples, qui s'exécuteraient dans l'ordre.
Un module du processus , comme un module du programme , a seulement une section d'initialisation, et court son début, pleine fonction et accomplissement dans cette section. Cependant, il obtient son propre fil pour l'exécution hormis le fil principal qui court des modules du programme . En soi, il peut seulement appeler le moniteur et les modules de la part .
Un moniteur est un module qui inclut la tâche fermant à clef à chaque appel à un procédé extérieurement accessible ou à la fonction , et met en application la communication entre les tâches par des sémaphores.
Un module de la part , parce qu'il n'a aucune donnée globale du tout, peut être employé par n'importe quel autre module dans le système, et est employé pour placer le code de bibliothèque dedans.
Puisque le système de module met en application directement multitâche/multifile using le concept du moniteur , il résout la majorité de problèmes multifile d'accès. Des données pour un module sont liées au code avec les mutexes ou les sections d'exclusivité de mutuellement -. Des tâches secondaires/subthreads sont commencés d'une manière transparente par le module de processus. Les tâches secondaires/subthreads multiples peuvent accéder à des moniteurs ou à des modules de part. Un module de part est un module sans données, qui n'ont pas besoin des dispositifs de verrouillage d'un moniteur.
Rangées dynamiques de
. Dans IP Pascal, la dynamique est considérée " ; containers" ; pour des rangées statiques. Le résultat est qu'IP Pascal est peut-être le seul Pascal où les rangées dynamiques sont entièrement compatibles avec les rangées statiques d'OIN 7185 de la langue originale. Une rangée statique peut être passée dans un paramètre dynamique de rangée à un procédé ou à une fonction, ou être créée avec nouveau.
essai du programme (rendement) ;
le type corde = de de a emballé le de la rangée de du char de ;
variété s de : corde ;
wrtstr du procédé (vue s de : corde) ;
variété i de : nombre entier ;
le commencent
pour i : = 1 à extrémité ;
le commencent
nouveau (s, 12) ; s : = « bonjour, monde » ; wrtstr (s^) ; wrtstr (« qui est tous les gens ")
extrémité .
Expressions constantes de
. Une déclaration constante peut contenir des expressions d'autres constantes.
const b = a+10 ;
Base de
pour des nombres.
$ff, &76, %011000
Étiquettes goto alphanumériques de
.
sortie de l'étiquette ; sortie goto du ;
« _ » dans toutes les étiquettes.
my_number de la variété : nombre entier ;
Ordres de caractère spécial de
qui peuvent être inclus dans les cordes constantes :
streptocoque du const = « la pluie en l'Espagne \ Cr \ LF » ;
Using le memnemonics standard du ASCII .
Duplication de
s en-têtes expédiés.
procédé X (I de : nombre entier) ; le expédient ;
…
procédé X (I de : nombre entier) ;
le commencent
…
extrémité ;
Ceci le facilite pour déclarer un vers l'avant par coupé-collé, et maintient les paramètres du procédé ou de la fonction dans l'en-tête réel où vous pouvez les voir.
procédé de « halte » de
.
erreur du procédé (vue s de : corde) ;
le commencent
writeln (« erreur de *** : », s : 0) ; halte {terminer le programme}
extrémité ;
Dossiers d'en-tête prédéfinis spéciaux de
.
myprog du programme (entrée, rendement, liste) ;
le commencent
writeln (liste, « début de la liste : ") ; …
écho du programme (rendement, commande) ;
variété c de : char ;
le commencent
le tandis que le d'eoln du pas de (commande) font le de commencent
lu (commande, c) ; écrire (c)
extrémité ; writeln
extrémité .
newprog du programme (entrée, rendement, erreur) ;
le commencent
… writeln (erreur, « mauvais paramètre ") ; halte …
la « commande » est un dossier qui se relie à la ligne de commande, de sorte qu'il puisse lire using des opérations "lecture" de dossier normal.
Raccordement automatique de
s dossiers d'en-tête de programme à la ligne de commande noms.
copie du programme (source, destination) ;
source de la variété , destination : texte ; c : char ;
le commencent
remise (source) ; réécriture (destination) ; le tandis que le du pas EOF (source) de font le de commencent
le tandis que le d'eoln du pas de (source) font le de commencent
lu (source, c) ; écrire (destination, c)
extrémité ; readln (source) ; writeln (destination)
extrémité
de extrémité .
Dossier de
appelant et opérations de manipulation.
programme extfile (rendement) ;
variété f de : dossier de nombre entier ;
le commencent
assigner (f, « myfile ") ; {nom réglé de dossier externe} mettre à jour (f) ; {le dossier existant de subsistance, et l'ensemble à écrivent le mode} placer (f, longueur (f)) ; {position à de fin de fichier à apposer à lui} writeln (« l'extrémité du dossier est : », endroit (f)) ; {dire l'endroit d'utilisateur du nouvel élément} écrire (f, 54321) ; {écrire le nouveau dernier élément} se fermer (f) {étroit le dossier}
extrémité .
le
« a fixé » les déclarations qui déclarent les types constants structurés.
table fixe du : de la rangée du disque a de de : nombre entier ; le a emballé le de la rangée de de l'extrémité de de char de = du rangée
de record 1, extrémité du « data1 », record 2, extrémité du « data2 », record 3, extrémité du « data3 », record 4, extrémité du « data4 », record 5, extrémité
du « data5 » extrémité ;
Opérateurs booléens de peu de
.
essai du programme ;
variété a, b de : nombre entier ;
le commencent
a : = un et un b ; b : = ou $a5 de b ; a : = pas b ; b : = un xor b
de extrémité .
Structure modulaire
IP Pascal emploie un concept de empilement unique pour des modules. Chaque module est empilé un placé sur l'autre dans la mémoire, et exécuté au fond. Le module inférieur appelle le prochain module, et des appels de ce module le prochain module, et ainsi de suite.
emballage serlib programme chapeau
Le module de chapeau (parfois appelé un " ; cell" ; dans la terminologie d'IP Pascal, après qu'un concept dans la conception du circuit intégré ) termine la pile, et commence un processus de retour ce des ondulations en arrière vers le bas jusqu'à ce que le programme se termine. Chaque module a sa section de démarrage ou d'entrée exécutée sur le chemin vers le haut de la pile, et sa section d'achèvement ou de sortie exécutée sur le chemin en arrière vers le bas.
Ceci assortit les dépendances normales dans un programme. Les modules les plus primitifs, tels que l'appui de base d'entrée-sortie dans le " ; serlib" ; , exécuter leur initialisation d'abord, et leur bout d'achèvement, avant et après les modules de plus haut niveau dans la pile.
Plate-forme de mise en communication
IP Pascal a une série de modules (ou de " ; libraries" ;) cette forme un " ; platform" de mise en communication ;. Ces bibliothèques présentent un idéalisé api pour chaque fonction qui s'applique, comme des dossiers et des fonctions du système d'exploitation prolongées, des graphiques, le Midi et le bruit, etc. La collection entière forme la base pour une exécution sur chaque du système d'exploitation et l'usine qu'IP Pascal apparaît dessus.
Les deux différences importantes entre IP Pascal et beaucoup d'autres langues qui ont été simplement jointes aux bibliothèques portatives de graphiques sont celle :
1. IP Pascal utilise sa propre plate-forme de mise en communication pour son propre code de bas niveau, de sorte qu'une fois que la plate-forme est créée pour un du système d'exploitation particulier et machine, le système d'IP et les programmes qu'il compile peuvent fonctionner sur cela. C'est semblable au Java de manière et les systèmes d'UCSD Pascal fonctionnent, mais avec la véritable optimisation élevée a compilé le code, le code ou le " non interprété ; juste dans le time" ; code compilé. Puisque les modules peuvent dépasser les fonctions plus basses telles que le " de Pascal ; write" ; le rapport, normale, des programmes non modifiés d'OIN 7185 Pascal peut également employer des aspects avancés de la plate-forme de mise en communication. C'est à la différence de beaucoup ou la plupart des bibliothèques portatives de graphiques qui forcent l'utilisateur à employer une méthodologie complètement différente d'entrée-sortie pour accéder à un système de graphiques windowed, par exemple C, d'autres Pascal, et Visual Basic .
Les modules d'IP peuvent également être créés qui sont indépendant de système, et compter seulement sur les modules de mise en communication de plate-forme. Le résultat est qu'IP Pascal est très fortement portatif.
< ! -- Commenté dehors parce que l'image a été supprimée : -->
Exemple : Le " standard ; bonjour world" ; le programme est couplé pour produire dans a fenêtre graphique.
programme HelloWorld (rendement) de ;
le commencent
writeln (« bonjour, monde ! ")
extrémité .
< ! -- Commenté dehors parce que l'image a été supprimée : -->
Exemple : " ; bonjour world" ; les commandes graphiques étant ajouté. Noter ce Pascal standard des rapports de rendement sont encore employés.
programme bonjour (entrée, rendement) ;
le emploie le gralib de ;
variété heu : evtrec ;
le commencent
bcolor (rendement, vert) ; curvis (rendement, faux) ; automatique (rendement, faux) ; page (rendement) ; fcolor (rendement, rouges) ; frect (rendement, 50, 50, maxxg (rendement) - 50, maxyg (rendement) - 50) ; fcolorg (rendement, maxint, maxint- (division de maxint 3), division de maxint-maxint 3) ; frect (rendement, 50, 50, 53, maxyg (rendement) - 50) ; frect (rendement, 50, 50, maxxg (rendement) - 50, 53) ; fcolorg (rendement, division de maxint 2, 0, 0) ; frect (rendement, 52, maxyg (rendement) - 53, maxxg (rendement) - 50, maxyg (rendement) - 50) ; frect (rendement, maxxg (rendement) - 53, 52, maxxg (rendement) - 50, maxyg (rendement) - 50) ; police (rendement, font_sign) ; fontsiz (rendement, 100) ; binvis (rendement) ; fcolor (rendement, cyan) ; cursorg (rendement, division 2+3 de strsiz de division 2 de maxxg (rendement) (rendement, « bonjour, monde "), division de la division 2-100 de maxyg (rendement) 2+3) ; writeln (« bonjour, monde ") ; fcolor (rendement, bleus) ; cursorg (rendement, division 2 de strsiz de division 2 de maxxg (rendement) (rendement, « bonjour, monde "), division de la division 2-100 de maxyg (rendement) 2) ; writeln (« bonjour, monde ") ; d'événement de la répétition (entrée, heu) jusqu'à er.etype = etterm
extrémité .
Exemple : Jeu d'évasion.
Exemple : Horloge graphique dans une fenêtre considérable.
Puisque les modules d'IP Pascal mettent en boîte le " ; override" ; , un module graphique de prolongation (ou tout autre type de module) peut dépasser les appels standard d'entrée-sortie mis en application dans un module au-dessous de lui. Ainsi, le paslib met en application des rapports standard de Pascal tels que lu, écrit, et d'autres services de support. le gralib dépasse ces services et réoriente toute l'entrée-sortie standard de Pascal aux fenêtres graphiques.
La différence entre ceci et de telles bibliothèques dans d'autres réalisations est que vous typiquement devez cesser d'employer les rapports standard d'entrée-sortie et commuter à un ensemble complètement différent d'appels et de paradigmes. Ceci signifie que vous ne pouvez pas " ; apporter le forward" ; programmes mis en application avec le paradigme périodique d'entrée-sortie aux systèmes graphiques.
Une autre différence importante avec IP Pascal est qu'elle emploie des méthodes de langage procédural pour accéder à la bibliothèque de graphiques de Windowed. La plupart des trousses à outils de graphiques forcent l'utilisation des méthodes orientées objectivement du à la trousse à outils. Une raison de ceci est parce que l'orientation d'objet de est une bonne allumette pour des graphiques, mais elle se produit également parce que les systèmes communs tels que Windows forcent le programme d'application pour apparaître comme programme de service au du système d'exploitation, apparaissant comme collection de fonctions appelées par le du système d'exploitation, au lieu de avoir la commande de programme sa propre exécution et appeler le du système d'exploitation. Ceci est généralement connu comme conception du rappel de service . Le code orienté objectivement fonctionne souvent mieux avec des rappels de service parce qu'il permet aux méthodes d'un objet de s'appeler comme rappels de service, au lieu d'un programmeur devant enregistrer plusieurs indicateurs aux fonctions à l'événement manipulant le code, qui serait un rappel de service individuel.
L'orientation d'objet est une bonne méthode de programmation, mais IP Pascal lui fait un facultatif, pas un required, méthodologie pour écrire des programmes. La capacité d'IP Pascal d'employer des méthodes procédurales pour accéder à tous les graphiques fonctionne signifie qu'il n'y a aucun " ; " de l'effet de falaise de ; pour des programmes plus anciens. Ils n'ont pas besoin d'être récrits juste pour tirer profit des environnements de programmation modernes.
Un autre dispositif intéressant de la plate-forme de mise en communication d'IP est qu'il soutient un mode caractère, même dans les environnements graphiques, en fournissant un " ; grid" de caractère ; cela recouvre la grille de Pixel, et les programmes qui emploient seulement les appels de mode caractère (qui travailleraient à n'importe quelle borne ou à raccordement de telnet) fonctionnent sous les environnements graphiques automatiquement.
Histoire
L'exécution Z80
Le compilateur a commencé en 1980 sur le disque de Micropolis du système d'exploitation, mais a été déplacé rapidement au CP/M fonctionnant sur le Z80. Le système original a été codé en Z80 langage d'assemblage, et code machine direct de rendement pour le Z80 . C'était un compilateur de passage simple sans éditeur de liens, il a inclus sa bibliothèque de soutien de système dans le compilateur, et l'a replacé et le rendement qui dans le code produit dans le fichier-disque praticable.
Après que le compilateur ait été opérationnel, presque exactement à la nouvelle année de 1980, un compagnon que l'assembleur pour le compilateur a été écrit, en Pascal, suivi d'un éditeur de liens, dans Z80 langage d'assemblage. Cette combinaison impaire était due à un calcul qui a montré que les tables d'éditeur de liens seraient un problème dans le Z80 limité par 64kb, ainsi l'éditeur de liens requis être aussi petites comme possible. Ceci a été alors employé pour écarter le code source de compilateur et d'éditeur de liens Z80 le monteur de Micropolis (qui était un monteur linkerless qui a créé une binaire à sortie unique) au nouveau système d'éditeur de liens d'assembleur.
Après ceci, le compilateur a été rééquipé pour produire au format d'éditeur de liens, et à la bibliothèque de soutien entrée dans un dossier séparé et liée dedans.
En 1981, le compilateur a été intensivement refait pour ajouter l'optimisation, telle que l'attribution de registre, booléenne au saut, au code mort, au pliage constant, et à d'autres optimisations. Ceci a créé une exécution de Pascal qui a évalué mieux que tous les compilateurs Z80 existants, aussi bien que les la plupart 8086 compilateurs. Malheureusement, à 46kb, il était également difficile d'employer, pouvant compiler seulement quelques pages de code source avant de déborder ses tables (c'était un problème commun avec la plupart des réalisations de Pascal sur de petits processeurs d'adresse). Le système pouvait être employé principalement en raison de la décision pour créer un éditeur de liens compact permis pour que les grands systèmes soient construits à partir de ces petits fichiers objets d'exécution.
En dépit de ceci, l'exécution originale d'IP Pascal a fonctionné jusqu'à 1987 comme compilateur d'usage universel. Dans cette phase, IP Pascal était C comme dans sa disposition modulaire. Chaque fichier source était une unité, et s'est composé d'une certaine combinaison d'un module, des types, des constantes, des variables, des procédures ou des fonctions de « programme ». Ceux-ci étaient dans le " ; format" libre ;. Les procédures, les fonctions, les types, les constantes et les variables ont pu être en dehors de n'importe quel bloc, et en n'importe quelle règle. Des procédures, les fonctions, et les variables dans d'autres dossiers ont été mises en référence par des déclarations « externes », et les procédures, les fonctions, et les variables dans le dossier courant étaient « globales » avoué. Chaque dossier a été compilé à un fichier objet d'exécution, et ensemble puis lié. Il n'y avait aucun type vérifiant à travers des fichiers objets d'exécution.
En tant qu'élément du compilateur original, un module non tributaire du type d'unité d'entrée-sortie de borne a été créé pour permettre l'utilisation de n'importe quelle borne périodique (semblable unité de tube de s de Pascal Turbo à '), qui demeure à ce jour.
En 1985, un effort a été commencé de récrire le compilateur en Pascal. Le nouveau compilateur serait le passage deux avec l'intermédiaire, qui a été conçue pour résoudre les problèmes de mémoire liés au premier compilateur. L'embout avant du compilateur a été créé et examiné sans possibilités intermédiaires de génération de code (analyser seulement).
en 1987, le système Z80 utilisé pour l'IP a été échangé pour des 80386 IBM-PC, et le travail là-dessus s'est arrêté. De ce temps plusieurs autre, compilateurs standard d'OIN 7185 ont été employés, finissant avec le compilateur de SVS Pascal, 32 une exécution basée par unité d'extension du DPMI de bit.
L'exécution 80386
D'ici 1993, les compilateurs compatibles d'OIN 7185 qui ont fourni le code de bit de la qualité 32 mouraient au loin. En ce moment, le choix était de cesser d'employer Pascal, ou de rétablir l'ancien projet d'IP Pascal et le moderniser comme compilateur 80386. En ce moment, un analyseur de Pascal, et l'assembleur (pour Z80) étaient tout ce qui a existé qui étaient utilisables sur l'IBM-PC. De 1993 à 1994, l'assembleur a été rendu modulaire pour viser les unités centrales de traitement multiples comprenant les 80386, un éditeur de liens pour remplacer l'éditeur de liens Z80 langage d'assemblage a été créé, et l'embout avant de compilateur de Pascal a été fini pour produire au code intermédiaire. En conclusion, un simulateur intermédiaire de code a été construit, en Pascal, pour prouver le système dehors.
En 1994, le simulateur a été utilisé pour prolonger le " d'IP Pascal d'OIN 7185 ; core" ; langue pour inclure des dispositifs tels que des rangées dynamiques.
En 1995, un " ; vérifier l'encoder" ; a été créé pour viser le code machine 80386, et un programme de convertisseur créé pour prendre les fichiers objets d'exécution de rendement et pour créer un " ; Executable" portatif ; dossier pour Windows. La bibliothèque de soutien de système a été créée pour IP Pascal, elle-même dans IP Pascal. C'était une mesure peu commune prise pour empêcher devoir plus tard recoder la bibliothèque d'une assemblée ou d'un Pascal différent à IP Pascal, mais avec le problème que le générateur de code 80386 et la bibliothèque devrait être corrigé ensemble.
Au début de 1996, la cible originale de Windows NT a été commutée à Windows 95, et IP Pascal est devenu complètement opérationnel comme compilateur 80386 sous Windows. Le système s'est amorcé, et le code restant de Pascal a été mis en communication de SVS Pascal à IP Pascal pour accomplir le circuit fermé. Ce processus a été facilité considérablement par la capacité du SVS basé par Pascal du DPMI de courir sous Windows 95, qui a signifié que la nécessité d'initialiser dans les deux sens entre le DOS et la Windows 95 a été éliminée.
L'exécution de Linux
En 2000, une version du Linux (Red Hat) de a été créée pour le mode des textes seulement. Cette exécution emploie directement les appels système et évite l'utilisation du Glibc , et crée ainsi des binaires plus minces que si le plein système de support requis pour C/C++ étaient utilisés.
Le plan est de créer une version de la bibliothèque des textes qui emploie l'information de termcap, et de la bibliothèque graphique sous X11.
Étapes au " ; écrire une fois, courir l'anywhere" ;
En 1997, une version de la bibliothèque terminale de l'IP 1980 original Pascal a été mise en communication aux fenêtres, et à un encodeur final commencé pour les 80386. Cependant, la raison principale d'avoir besoin d'un encodeur amélioré, vitesse d'exécution, a été en grande partie rendue non pertinente par des augmentations de vitesse de processeur dans l'IBM-PC. En conséquence, le nouvel encodeur n'était pas de finition jusqu'en 2003.
En 2001, un programme de compagnon à IP Pascal a été créé pour traduire des dossiers d'en-tête de C aux dossiers d'en-tête de Pascal. Ceci a été censé pour remplacer la méthode manuelle de créer les interfaces du système d'exploitation pour IP Pascal.
En 2003, un module indépendant entièrement graphique et du système d'exploitation a été créé pour IP Pascal.
En 2005, les fenêtres gestion et le kit de gadget ont été ajoutés.
Leçons
Dans la vue rétrospective, la plus grande erreur dans la version Z80 était sa structure de passage simple. Il n'y avait aucun motif réel pour lui, le compilateur (de base) précédent de l'auteur était passage multiple avec l'intermédiaire. Le seul argument pour c'était que la compilation de passage simple a été censée être plus rapide. Cependant, le passage simple compilant s'avère être une mauvaise allumette pour de petites machines, et n'est pas susceptible d'aider les optimisations avancées communes dans de grandes machines.
De plus, l'aspect de passage simple a ralenti ou a empêché obtenir le compilateur amorcé hors de Z80 langage d'assemblage et sur Pascal lui-même. Puisque le compilateur était monolithique, la conversion en Pascal ne pourrait pas être faite une section à la fois, mais a dû procéder comme remplacement en gros. Quand le remplacement a été commencé, le projet duré plus longtemps que la machine a fait. La plus grande aide que le passage deux compilant a donnée à l'exécution I80386 était l'entretien d'un livre standard des instructions intermédiaires qui ont communiquée entre les saisons avant et arrière du compilateur. Ceci a bien compris le " ; stage" ; de la compilation complexité globale réduite. Intuitivement, quand deux programmes de taille égale sont joints intimement, la complexité n'est pas additive, mais multiplicative, parce que les raccordements entre les moitiés de programme se multiplient hors de la commande.
Une autre leçon Z80 des jours, qui a été corrigée sur le compilateur 80386 était d'écrire autant du code comme possible dans Pascal lui-même, même la bibliothèque de soutien. Avoir le code de 80386 soutiens tout écrit en Pascal l'a rendu si modulaire et portable que la plupart a été entrée hors du secteur spécifique du système d'exploitation et dans le " ; code" commun ; section de bibliothèque, une section réservée pour le code qui ne change jamais pour chaque machine et du système d'exploitation. Même le " ; " spécifique du système ; le code a besoin de la modification seulement légèrement de l'exécution à l'exécution. Le résultat est des quantités élevées de travail d'exécution sauvées tout en mettant en communication le système.
Davantage de lecture
Kathleen Jansen et Niklaus Wirth : PASCAL de - manuel d'utilisation et rapport. Sauteur-Verlag, 1974, 1985, 1991, ISBN 0-387-97649-3, ISBN 0-387-90144-2, et ISBN 3-540-90144-2 * Niklaus Wirth : le langage de programmation Pascal. Acta Informatica, 1 de , (juin 1971) 35-63 ISO/IEC 7185 : Langages de programmation de - PASCAL.
| Random links: | Elizabeth Patterson Bonaparte | Evoldo | Omophorion | Clemens Winkler | Treuhand | IP_Pascal |