Pascal és unllenguatge de programació desenvolupat pel professorNiklaus Wirth a finals dels anys 60. El seu objectiu era crear un llenguatge que facilités l'aprenentatge de la programació als seus alumnes. Tanmateix, amb el temps la seva utilització es va estendre més enllà de l'àmbit acadèmic per a convertir-se en una eina per la creació d'aplicacions de tota classe.
Pascal es caracteritza per ser unllenguatge de programació estructurat fortament tipificat. Per tant:
- El codi està dividit en fragments fàcils de llegir, denominatsfuncions oprocediments. D'aquesta formaPascal facilita la utilització de laprogramació estructurada, en oposició a l'antic estil deprogramació monolítica.
- Eltipus de dada de totes les variables ha de ser declarat prèviament per tal que s'habiliti el seu ús.
El nom de Pascal va ser escollit en honor del matemàticBlaise Pascal.
A diferència dels llenguatges de programació derivats delC, Pascal utilitza el símbol:= per a l'assignació en comptes de=. Encara que el segon és més concís, la pràctica ha demostrat que molts usuaris utilitzen el símbol d'igualtat per a comparar valors, en comptes del que pertoca en C (==). Aquesta sintaxi porta a molts errors obugs, difícils de localitzar en un codi C. Donat que Pascal no permet assignacions dins de les expressions, i utilitza una sintaxi diferent per a les assignacions i les comparacions, evita aquest tipus d'errors.
A més, els seus programes tenen definides dues parts: ladeclaració i l'execució. A la primera part ha d'aparèixer tot el que s'utilitzarà en la segona, ja que si no és així, es detecta el codi com a desconegut i s'eviten certes incomprensions. A la part declarativa s'enuncien Unit existents, procedimients, funcions, variables, constants i nous tipus de dades estructurades.
Una altra diferència important és que en Pascal, el tipus d'una variable es fixa en la definició; l'assignació a variables de valors de tipus incompatible no estan autoritzades, a diferència del C, on el compilador intenta trobar una interpretació a quasi qualsevol tipus d'assignació. Això evita errors comuns on les variables són utilitzades incorrectament, perquè el seu tipus és desconegut. També s'evita la necessitat de lanotació hongaresa, que afegeix prefixos als noms de les variables indicant el seu tipus.
Les primeres versions del compilador de Pascal (la més distribuïda fouUCSD Pascal) traduïen el llenguatge en codi per a una màquina virtual anomenada màquina-P. Com a conseqüència, tan sols una petita part de l'intèrpret havia de ser reescrita cap a moltes arquitectures.
Als anys 80, Anders Hejlsberg va escriure el compilador Blue Label Pascal per a la Nascom-2. Més tard va anar a treballar per aBorland i va reescriure el seu compilador que es va convertir en Turbo Pascal per a laIBM PC. Aquest nou compilador es va vendre per 49$, un preu orientat a la distribució massiva.
El compilador econòmic de Borland va tenir una llarga influència en la comunitat de Pascal, que va començar a utilitzar principalment l'IBM Pc. Tot buscant un llenguatge estructurat, molts aficionats al PC van substituir elBASIC per aquest producte. Donat que Turbo Pascal només estava disponible per a una arquitectura, traduïa directament a codi màquina de l'Intel 8088, aconseguint així programes que s'executaven molt més ràpidament que els que es produïen en esquemes interpretats.
Durant els anys 1990 va passar a estar disponible la tecnologia necessària per a construir compiladors que poguessin escriure codi per a diferents arquitectures demaquinari. Això va permetre que els compiladors de Pascal traduïssin directament al codi de l'arquitectura en què s'executessin.
Amb Turbo Pascal versió 5, Borland, es va agregar laprogramació orientada a objectes a Pascal.
Tanmateix, Borland va decidir millorar aquesta extensió del llenguatge introduint el seu producteDelphi, dissenyat a partir de l'estàndard Object Pascal, proposat perApple com a base. Borland també el va anomenar Object Pascal en les primeres versions, però va canviar el nom allenguatge de programació Delphi en les seves últimes versions.
Exemple de codi utilitzant l'estructura lineal
[modifica]programarrel;(*Programa que obté l'arrel quadrada d'un nombre real x donat.*)usescrt;varx,y:real;beginwriteln('Calcular l''arrel quadrada de x');writeln;writeln('Entrar x: ');readln(x);y:=sqrt(abs(x));(* Arrel quadrada del valor absolut de x per evitar arrels complexes *)writeln;if(x<0)then(* Si x és negatiu, el resultat s'escriu com a complex *)writeln('L''arrel quadrada de ',x,' es el nombre complex ',y,'i')elsewriteln('L''arrel quadrada de ',x,' es ',y);writeln;writeln('Fi');readln;(* Espera que l'usuari premi enter per a sortir del programa *)end.Un altre exemple:
programsuma;usescrt;varx,s:integer;beginx:=1;s:=0;repeats:=s+x;x:=x+1;untilx=50;writeln('la suma es ',s);readln;end.Viccionari