iBet uBet web content aggregator. Adding the entire web to your favor.
iBet uBet web content aggregator. Adding the entire web to your favor.



Link to original content: http://ca.wikipedia.org/wiki/Pascal_(llenguatge_de_programació)
Pascal (llenguatge de programació) - Viquipèdia, l'enciclopèdia lliure Vés al contingut

Pascal (llenguatge de programació)

De la Viquipèdia, l'enciclopèdia lliure
Infotaula de llenguatge de programacióPascal
Tipusllenguatge de programació imperatiu, llenguatge de programació i llenguatge interpretat Modifica el valor a Wikidata
Data de creació1970 Modifica el valor a Wikidata
DissenyNiklaus Wirth Modifica el valor a Wikidata
DesenvolupadorNiklaus Wirth Modifica el valor a Wikidata
EpònimBlaise Pascal Modifica el valor a Wikidata
Paradigma de programacióllenguatge imperatiu i programació estructurada Modifica el valor a Wikidata
Influenciat perALGOL, ALGOL 60, ALGOL W (mul) Tradueix i Simula67 Modifica el valor a Wikidata
Extensió dels fitxerspp, p i pas Modifica el valor a Wikidata

Pascal és un llenguatge de programació desenvolupat pel professor Niklaus 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 un llenguatge de programació estructurat fortament tipificat. Per tant:

  1. El codi està dividit en fragments fàcils de llegir, denominats funcions o procediments. D'aquesta forma Pascal facilita la utilització de la programació estructurada, en oposició a l'antic estil de programació monolítica.
  2. El tipus 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àtic Blaise Pascal.

Característiques úniques

[modifica]

A diferència dels llenguatges de programació derivats del C, 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 o bugs, 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: la declaració 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 la notació hongaresa, que afegeix prefixos als noms de les variables indicant el seu tipus.

Implementacions

[modifica]

Les primeres versions del compilador de Pascal (la més distribuïda fou UCSD 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 a Borland i va reescriure el seu compilador que es va convertir en Turbo Pascal per a la IBM 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 el BASIC 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 de maquinari. 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 la programació orientada a objectes a Pascal.

Tanmateix, Borland va decidir millorar aquesta extensió del llenguatge introduint el seu producte Delphi, dissenyat a partir de l'estàndard Object Pascal, proposat per Apple com a base. Borland també el va anomenar Object Pascal en les primeres versions, però va canviar el nom a llenguatge de programació Delphi en les seves últimes versions.

Exemple de codi utilitzant l'estructura lineal

[modifica]
 program arrel;

(*Programa que obté l'arrel quadrada d'un nombre real x donat.*)

 uses
 crt;

 var 
 x, y: real;

 begin
 writeln('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')
 else
 writeln('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:

 program suma; 

 uses crt; 

 var
 x,s:integer; 

 begin 
 x:=1; 
 s:=0; 
 repeat 
 s:=s+x; 
 x:=x+1; 
 until x=50; 
 writeln('la suma es ',s); 
 readln; 
 end.

Vegeu també

[modifica]

Enllaços externs

[modifica]