Pascal es un lenguaje de programación desarrollado por el profesor suizo Niklaus Wirth entre los
años 1968 y 1969 y publicado en 1970. Su objetivo era crear un lenguaje que facilitara el
aprendizaje de programación a sus alumnos, utilizando la programación estructurada y
estructuración de datos. Sin embargo con el tiempo su utilización excedió el ámbito académico
para convertirse en una herramienta para la creación de aplicaciones de todo tipo.
Pascal se caracteriza por ser un lenguaje de programación estructurado fuertemente tipificado.
Esto implica que:
[Link] código está dividido en porciones fácilmente legibles llamadas funciones o procedimientos. De
esta forma Pascal facilita la utilización de la programación estructurada en oposición al antiguo
estilo de programación monolítica.
[Link] tipo de dato de todas las variables debe ser declarado previamente para que su uso quede
habilitado.
Características únicas
A diferencia de lenguajes de programación descendientes de C, Pascal utiliza el símbolo ":=" para
la asignación en vez de "=". Si bien el segundo es más conocido, la práctica ha demostrado que
muchos usuarios utilizan el símbolo de igualdad para comparar valores en lugar del comparador
de C que es el símbolo ==. Esta sintaxis conduce a muchos errores o bugs difíciles de rastrear en
código C. Dado que Pascal no permite asignaciones dentro de expresiones y utiliza sintaxis
distintas para asignaciones y comparaciones, no sufre estos errores.
Además sus programas tienen definidas dos partes: declarativa y ejecutiva. En la primera debe
aparecer todo lo que se usará en la segunda, de lo contrario se detecta como desconocido y evita
ciertas incomprensiones como veremos más adelante. En la parte declarativa se enuncian Unit
existentes, procedimientos, funciones, variables, constantes y nuevos tipos de datos
estructurados.
Otra diferencia importante es que en Pascal, el tipo de una variable se fija en su definición; la
asignación a variables de valores de tipo incompatible no están autorizadas (en C, en cambio, el
compilador hace el mejor esfuerzo para dar una interpretación a casi todo tipo de asignaciones).
Esto previene errores comunes donde variables son usadas incorrectamente porque el tipo es
desconocido; y también evita la necesidad de notación húngara, que vienen a ser prefijos que se
añaden a los nombres de las variables y que indican su tipo.
Implementaciones
Las primeras versiones del compilador de Pascal, entre ellas la más distribuida fue UCSD Pascal,
traducían el lenguaje en código para una máquina virtual llamada máquina-P. La gran ventaja de
este enfoque es que para tener un compilador de Pascal en una nueva arquitectura de máquina
solo hacía falta reimplementar la máquina-P. Como consecuencia de esto, solo una pequeña parte
del intérprete tenía que ser reescrita hacia muchas arquitecturas.
En los años 1980, Anders Hejlsberg escribió el compilador Blue Label Pascal para la Nascom-2. Más
tarde fue a trabajar para Borland y reescribió su compilador que se convirtió en Turbo Pascal para
la IBM PC. Este nuevo compilador se vendió por $49, un precio orientado a la distribución masiva.
El económico compilador de Borland tuvo una larga influencia en la comunidad de Pascal que
comenzó a utilizarlo principalmente en el IBM PC. En busca de un lenguaje estructurado muchos
aficionados al PC reemplazaron el BASIC por este producto. Dado que Turbo Pascal sólo estaba
disponible para una arquitectura, traducía directamente hacia el código máquina del Intel 8088,
logrando construir programas que se ejecutaban mucho más rápidamente que los producidos en
los esquemas interpretados.
Durante los años 1990, estuvo disponible la tecnología para construir compiladores que pudieran
producir código para diferentes arquitecturas de hardware. Esto permitió que los compiladores de
Pascal tradujeran directamente al código de la arquitectura en que corrieran.
Con Turbo Pascal versión 5.5, Borland agregó programación orientada a objetos a Pascal.
Sin embargo, Borland después decidió mejorar esa extensión del lenguaje introduciendo su
producto Delphi, diseñado a partir de estándar Object Pascal, propuesto por Apple como base.
Borland también lo llamó Object Pascal en las primeras versiones, pero cambió el nombre a
'lenguaje de programación Delphi' en sus últimas versiones.
Ejemplos Raíz cuadrada
program raiz(input, output);
uses crt;
(*
Obtener la raíz cuadrada de un número real x cualquiera.
*)
var x, y: irreal;
respuesta: string;
begin
writeln('** Calcular la raíz cuadrada de 12 **');
writeln('Entrar x (> 0): ');
readln(x);
y := sqrt(abs(x)); (* Raíz cuadrada del valor absoluto de x para evitar raíces imaginarias *)
writeln;
if (x<0) then (* Si x es negativo, el resultado se notifica como imaginario *)
writeln('La raíz cuadrada de ', x, ' es el número imaginario ', y,'i')
else
writeln('La raíz cuadrada de ', x, ' es ', y);
writeln;
writeln('** Fin **');
end.
Suma
program suma; uses crt;
var x,s:integer;
begin
clrscr;
x:=1;
s:=0;
repeat
s:=s+x;
x:=x+1;
until x=50;
writeln('la suma es ',s);
end.
Multiples
program multi;
{$APPTYPE CONSOLE}
uses
SysUtils;
var n,x:integer;
begin
x:=0;
writeln('Entra un numero de la serie');
readln(n);
while n<>0 do
begin
if (n mod 3)=0 then
begin
x:=x+1;
writeln('Dame otro numero');
readln(n);
end
else
begin
writeln ('Dame otro numero');
readln(n);
end;
end;
writeln ('El numero de multiples de 3 es',x);
end.