**Pascal** é unha linguaxe de programación desenvolta polo profesor suízo Niklaus Wirth a finais da década de 1960. O seu obxectivo era crear unha linguaxe que facilitase a aprendizaxe da programación aos seus alumnos. Con todo, co tempo a súa utilización excedeu o ámbito académico para converterse nunha ferramenta para a creación de aplicacións de todo tipo. Caracterízase por ser unha linguaxe de programación estruturada fortemente tipificada.

Historia
--------

O suízo Niklaus Wirth desenvolveu a linguaxe de programación Pascal no ano 1970, co obxectivo de que fose unha linguaxe educativa de cara a aprendizaxe da programación estruturada. Pascal está baseada na linguaxe Algol e chamouse así en honra ao matemático e filósofo Blaise Pascal.

Características
---------------

Pascal é orixinariamente unha linguaxe de programación estruturada, mais non é orientada a obxectos.

A diferenza de linguaxes de programación descendentes de C, Pascal utiliza o símbolo := para a asignación no canto de =. Aínda que o segundo é máis conciso, a práctica demostrou que moitos usuarios utilizan o símbolo de igualdade para comparar valores en lugar do comparador de C que é o símbolo ==. Esta sintaxe conduce a moitos erros ou *bugs* difíciles de rastrexar en código C. Dado que Pascal non permite dentro de expresións e utiliza sintaxe distinta para asignacións e comparacións, non sofre estes erros.

Ademais os seus programas teñen definidas dous partes: declarativa e executiva. Na primeira debe aparecer todo o que se usará na segunda, pola contra detéctase como descoñecido e evita certas incomprensións como veremos máis adiante. Na parte declarativa enúncianse librarías existentes (*unit*), procedementos (*procedure*), funcións (*function*), variables (*var*), constantes (*const*) e novos tipos de datos estruturados (*type*).

Outra diferenza importante é que en Pascal, o tipo dunha variable fíxase na súa definición; a asignación a variables de valores de tipo incompatible non están autorizadas (En C, en cambio, o compilador fai o mellor esforzo para dar unha interpretación a case todo tipo de asignacións). Isto prevén erros comúns onde variables son usadas incorrectamente porque o tipo é descoñecido. Isto tamén evita a necesidade de notación húngara, que son prefixos que se engaden aos nomes das variables e que indican o seu tipo.

Postas en funcionamento
-----------------------

As primeiras versións do compilador de Pascal, entre elas a máis distribuída foi UCSD Pascal, traducían o código fonte para unha máquina virtual chamada máquina-P. A gran vantaxe deste enfoque é que para ter un compilador de Pascal nunha nova arquitectura de máquina só facía falta reimplementar a máquina-P. Como consecuencia disto, só unha pequena parte do intérprete tiña que ser reescrita cara a moitas arquitecturas.

Nos anos oitenta, Anders Hejlsberg escribiu o compilador Blue Label Pascal para a Nascom-2. Máis tarde foi traballar para Borland e reescribiu o seu compilador que se converteu en Turbo Pascal para a IBM PC. Este novo compilador vendeuse por 49 $ un prezo orientado á distribución masiva.

O económico compilador de Borland tivo unha longa influencia na comunidade de Pascal que o comezou a utilizar principalmente no IBM PC. En busca dunha linguaxe estruturada moitos afeccionados ao PC substituíron a linguaxe BASIC por este produto. Dado que Turbo Pascal, só estaba dispoñible para unha arquitectura, traducía directamente cara ao código máquina do Intel 8088, logrando construír programas que se executaban moito máis rapidamente que os producidos nos esquemas interpretados.

Durante os anos 1990, estivo dispoñible a tecnoloxía para construír compiladores que puidesen producir código para diferentes arquitecturas de hardware. Isto permitiu que os compiladores de Pascal traducisen directamente ao código da arquitectura na que corresen.

Con Turbo Pascal versión 5, Borland, agregou programación orientada a obxectos a Pascal.

Con todo, Borland despois decidiu mellorar esa extensión da linguaxe introducindo o seu produto Delphi, deseñado a partir de *estándar Object Pascal* proposto por Apple como base. Borland chamouno tamén Object Pascal nas primeiras versións, pero nas últimas versións o nome da linguaxe de programación foi Delphi.

Exemplos de programas
---------------------

### Ola Mundo

```
 program OlaMundo(output);
  begin
   Writeln('¡Ola, Mundo!')
  end.

```

### Raíz Cadrada

```
 program raiz(input, output);
 (\*
 Obter a raíz cadrada dun número real x calquera.
 \*)
 
 var x, y: real;
 
 begin
   writeln('\*\* Calcular a raíz cadrada de x \*\*');
   writeln;
   writeln('Entrar x (> 0): '); readln(x);
   y := sqrt(abs(x)); (\* Obten a raíz cadrada do valor absoluto de x para evitar problemas coas
 raíces imaxinarias \*)
   writeln;
   if (x<0) then (\* Aquí evalua si x é negativo, polo que p resultado modificase coma imaxinario \*)
      writeln('A raíz cadrada de ', x, ' é o número imaxinario ', y,'i')
   else
      writeln('A raíz cadrada de ', x:4:2, ' é ', y:4:2);
   writeln; writeln('\*\* Fin \*\*');
   readln; (\* Espera a que o usuario pulse enter para saír do programa \*)
 end.

```

Compiladores dispoñibles
------------------------

Varios compiladores de Pascal están dispoñibles para o uso do público en xeral:

* Compilador GNU Pascal (GPC), escrito en C, baseado en GNU Compiler Collection (GCC). Distribúese baixo licenza GPL.
* Free Pascal está escrito en Pascal (o compilador está creado usando FreePascal), é un compilador estable e potente. Tamén distribuído libremente baixo a licenza GPL. Este sistema permite mesturar código Turbo Pascal con código Delphi, e soporta moitas plataformas e sistemas operativos.
* Turbo Pascal foi o compilador Pascal dominante para PCs durante os anos 1980 e ata principios dos anos 1990, moi popular debido ás súas magníficas extensións e tempos de compilación sumamente curtos. Actualmente, versións vellas de Turbo Pascal (ata a 5.5) están dispoñibles para descargalo gratuíto desde o sitio de Borland (é necesario rexistrarse).
* Delphi é un produto tipo RAD (Rapid Application Development) de Borland. Utiliza a linguaxe de programación Delphi, descendente de Pascal, para crear aplicacións para a plataforma Windows. As últimas versións soportan compilación na plataforma .NET.
* Kylix é a versión máis nova de Borland. É descendente de Delphi, con soporte para o sistema operativo Linux e unha librería de obxectos mellorada (CLX). O compilador e o IDE están dispoñibles para uso non comercial. Actualmente este proxecto está descontinuado.

Véxase tamén
------------

### Outros artigos

* Linguaxe de programación estruturada
* Modula-2
* Oberon
* Algol

### Ligazóns externas

* Lazarus
* Blaise Pascal

| * v
* c
* e
Linguaxes de programación |
| --- |
| Baixo nivel | 

|  |  |
| --- | --- |
| Primeira xeración | Código máquina |
| Segunda xeración | Assembly |

 |
| Alto nivel | 

|  |  |
| --- | --- |
| Terceira xeración | 
* A+
* ABC
* Algol
* B
* BASIC
* C
* C++
* C#
* COBOL
* CPL
* D
* E
* Fortran
* Go
* Java
* JavaScript
* Lisp
* Objective-C
* PL/1
* Pascal
* Smalltalk
* Visual Basic .NET

 |
| Cuarta xeración | 
* Clarion
* Clipper
* Clojure
* Common Lisp
* Erlang
* GNU Octave
* Haskell
* Lisp
* Lua
* Julia
* Perl
* PHP
* Prolog
* Python
* R
* Ruby
* Rust
* S
* Scilab
* Stata
* SQL

 |
| Quinta xeración | 
* Mercury
* OPS5
* Prolog

 |

 |
| 
* Ambiente de desenvolvemento
* Metaprogramación
* Programación a nivel funcional
* Programación estruturada
* Programación non estruturada
* Programación imperativa
* Programación modular
* Programación multidimensional
* Orientación a obxectos

 |

|  |  |
| --- | --- |
| Control de autoridades | 
* Wd: Q81571
* BNF: 11941547z
* EBID: ID
* FAST: 1054264
* GEC: 0049253
* JSTOR: pascal-programming-language
* LCCN: sh85098423
* MAG: 94176051
* NKC: ph117098
* PSH: 13864

 |