viernes, 25 de marzo de 2011

portada

UNIVERSIDAD NACIONAL AUTONOMA DE MEXICO

COLEGIO DE CIENCIAS Y HUMANIDADES

PLANTEL SUR

FABIOLA HURTADO ZUZUARREGUI

LENGUAJE PASCAL

CIBERNETICA

VESPERTINO

indice

leguaje pascal

elementos basicos

concepto de tipo de datos

elementos gramaticales

simbolos especiales en pascal

reglas sintacticas

estructura de un programa

caracteristicas

implementacion

ejemplos

compiladores disponibles publicos

introduccion

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:
  1. El 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.
  2. El tipo de dato de todas las variables debe ser declarado previamente para que su uso quede habilitado.

lenguaje pascal

Pascal se caracteriza por ser un lenguaje de programación estructurado fuertemente tipificado. Esto implica que: Una versión preliminar del lenguaje apareció en 1968 y el primer compilador totalmente completo apareció a finales de 1970. Desde entonces, muchos compiladores han sido construídos y están disponibles para diferentes máquinas. Durante muchos años, el libro Pascal User Manual and Report , publicado por Wirth y Kathleen Jensen en 1974, ha servido de facto como estándar de todas las versiones.
Las diferentes versiones ofrecían iterpretaciones ligeramente diferentes que impedían la compatibilidad entre ellas. Por estas razones, diferentes proyectos se iniciaron para producir una definición estándar del lenguaje y culminaron en dos estándar: uno de la Internacional Standard Organization (ISO) en 1982 y otro por un comité conjunto del American National Standards Institute (ANSI) y del Institute of Electrical and Electronics Engineers (IEEE). Estas dos versiones o definiciones se conocen como ISO Pascal y ANSI/IEEE Pascal, y difieren en algunos aspectos no especialmente significativos. Sin embargo, una versión no estándar se ha popularizado considerablemente: Turbo Pascal (marca registrada por Borland International, Inc.). Esta versión ha contribuido en gran medida a la popularización del lenguaje Pascal.


Pascal se caracteriza por ser un lenguaje de programación estructurado fuertemente tipificado. Esto implica que:
  1. El 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.
  2. El tipo de dato de todas las variables debe ser declarado previamente para que su uso quede habilitado.
El nombre de Pascal fue escogido en honor al matemático Blaise Pascal.
El PASCAL se usa hoy ampliamente en los Estados Unidos de América y en
Europa, como lenguaje de enseñanza y como lenguaje de propósito general para una
gran variedad de aplicaciones diferentes. Su uso se esta generalizando en ordenadores
grandes y pequeños. Efectivamente el PASCAL ha llegado a ser muy popular entre
usuarios de ordenadores personales, hasta el punto de que se especula sobre si podrá
llegar a sustituir al BASIC como lenguaje dominante en los microprocesadores en un
próximo futuro. Otros lenguajes como el FORTRAN y el COBOL, muy arraigados en
los ámbitos científico y comercial, han ido adoptando algunas de las estructuras de
datos y estructuras lógicas del PASCAL y son cada vez más parecidos.Es el resultado
de una tendencia generalizada hacia la práctica de la programación estructurada. Hoy es
frecuente oir hablar de FORTRAN estructurado, COBOL estructurado. Sin embargo,
en el PASCAL es donde se encuentra la vía más natural hacia el método estructurado y,
además, mantiene características diferenciadoras como la recursividad y las estructuras
de datos dinámicas.
En este curso se hablará del PASCAL estándar ISO/ANSI, aunque también se
presentarán algunas extensiones de uso muy común. Todo este material proporciona la
base para casi todas las implementaciones comerciales del PASCAL, por lo que quien
domine esta materia encontrará muy pocas dificultades en aprender otras versiones del
lenguaje.

El PASCAL es un lenguaje de programación de alto nivel y de propósito general
que ha derivado del ALGOL-60 y fue diseñado para enseñar técnicas de programación
estructurada. Es de alto nivel porque su repertorio de instrucciones lo hacen próximo a
los lenguajes humanos y a los procesos humanos de pensamiento. Sus instrucciones o
sentencias se componen de expresiones de apariencia algebraica y de ciertas palabras
inglesas como BEGIN, END, READ, WRITE, IF, THEN, REPEAT, WHILE, DO.
Es de propósito general como el BASIC, el COBOL, el FORTRAN, el PL/I;
porque no está enfocado a un tipo especifico de aplicaciones.
Pero el PASCAL, a diferencia de otros lenguajes, contiene algunos rasgos
singulares que han sido diseñados para estimular el uso de la "programación
estructurada", un enfoque ordenado y disciplinado de la programación que conduce a
la obtención de programas claros, eficientes y libres de errores. Por ello, el PASCAL se
utiliza ampliamente en la enseñanza de la informática.
Con PASCAL no sólo se dispone de un lenguaje de programación, sino que
además se adquiere una metodología para el diseño y escritura de programas.
El nombre PASCAL fue elegido en honor de Blaise Pascal (1623-1662), brillante
científico y matemático francés entre cuyos logros se encuentra la invención de la
primera máquina de calcular mecánica.
El PASCAL fue desarrollado inicialmente a principios de los años 70 por Niklaus
Wirth, en la Universidad Técnica de Zurich, Suiza. El propósito original de Wirth fue
crear un lenguaje de alto nivel para enseñar programación estructurada.
La definición original del lenguaje debida a Wirth se suele conocer como
PASCAL estándar o " PASCAL estándar según definición de Jensen y Wirth " (4) .Pero
en la actualidad el término " PASCAL estándar " resulta ambiguo porque hoy existen
varios estándares diferentes.
La mayor parte de las implementaciones actuales se diferencian algo de la
definición original de Wirth. La Organización Internacional de Normas (ISO/DIS 7185)
ha propuesto un estándar europeo. También se desarrolla un estándar americano muy
parecido bajo los auspicios conjuntos del Instituto Nacional Americano de Normas
(ANSI, comité X3J9, plan BSR X3.97-1983) y del Instituto de Ingenieros Eléctricos y
Electrónicos ( IEEE ) .

  1. El 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.
  2. El tipo de dato de todas las variables debe ser declarado previamente para que su uso quede habilitado.
El nombre de Pascal fue escogido en honor al matemático Blaise Pascal.
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.
Introducción
1 - 2

elementos basicos

Un programa en PASCAL es un conjunto de instrucciones o sentencias, escritas según
ciertas reglas, para realizar operaciones sobre entidades de datos conocidas como
constantes, variables y resultados de funciones.
La constante es una entidad cuyo valor no puede ser modificado durante la ejecución.
La variable es una entidad cuyo valor puede modificarse durante la ejecución.
Una función es un conjunto de operaciones asociadas a un nombre y que devuelve un
valor.

concepto de tipo de datos

En PASCAL, todo dato está asociado a un TIPO de datos y debe ser declarado antes
de utilizarse.
Un TIPO de datos está representado por un identificador y determina el rango de
valores que un elemento de datos puede tomar, así como las operaciones a que puede ser
sometido. Además, el TIPO determina el espacio en memoria necesario para almacenar
cualquiera de los valores posibles que puede tomar esa entidad.
El compilador de PASCAL proporciona identificadores para algunos tipos que están
predefinidos : números enteros y reales, valores lógicos, caracteres alfanuméricos, registros,
tablas, cadenas de caracteres, conjuntos, ficheros y punteros a estructuras dinámicas. Pero,
además, el PASCAL permite al usuario crear sus propios tipos definiendo identificadores de
su elección para representar rangos de valores. Estos también llevan asociados un conjunto
de operadores admisibles y unas necesidades determinadas de espacio en memoria.
El tipo de una constante es el tipo de su valor correspondiente. El tipo de una variable
es el tipo establecido cuando se declaró y no puede modificarse en general. El tipo de una
función es el del valor que devuelve.
Los valores de las variables y de las funciones pueden cambiar tantas veces como se
desee durante la ejecución de un programa, pero esos valores deben permanecer siempre
dentro del rango establecido por su tipo. Una variable no adopta un valor hasta que el
programa le asigna uno. El valor de una función se calcula durante la ejecución de dicha
función.


En PASCAL también existen las EXPRESIONES que, igualmente, corresponden a
algun tipo siempre. Una expresión representa al valor resultante de operar alguna
combinación de constantes, variables, funciones, con ciertos operadores. Se pueden usar
operadores aritméticos, relacionales, lógicos, de manejo de cadenas de caracteres, y de
conjuntos. Las operaciones aritméticas producen valores enteros o reales. Las operaciones
relacionales y lógicas producen valores booleanos. Las operaciones entre conjuntos permiten
obtener la unión, la intersección y las diferencias entre conjuntos.
Resumiendo y hablando en términos generales, se puede enunciar el principio básico
de que cada constante, variable, expresión o función es de un tipo determinado.
Como en los equipos de proceso de datos sólo hay un tipo de escritura, la norma que
se adopta para hacer distinciones consiste en manifestar explicitamente el tipo asociado a
cada entidad en sentencias de declaración y hacer que esta declaración preceda en el texto a
la utilización de las constantes, variables o funciones.
Las características del concepto de TIPO que están incorporadas al PASCAL son las
siguientes :
1. Un tipo de datos determina el conjunto de valores al que pertenece una
constante,o que puede tomar una variable o expresión, o que pueden ser
generados por un operador o función.
2. El tipo de valor identificado por una constante, variable o expresión puede
deducirse de su forma o de su declaración sin necesidad de ejecutar el proceso
de cálculo.
3. Cada operador o función presupone argumentos de un tipo determinado y
produce un resultado también de un tipo determinado. Si un operador admite
argumentos de varios tipos ( por ejemplo, se utiliza el símbolo "+" igualmente
para sumar enteros y reales ) el tipo del resultado puede determinarse a partir
de reglas específicas del lenguaje.

elementos gramaticales



Las PALABRAS usadas en un programa en PASCAL son combinaciones de
caracteres alfabéticos y numéricos. Ocasionalmente pueden incluirse el signo del dólar ($),
el de subrayar ( _ ) y el del tanto por ciento (%) en algunas implementaciones.
Algunas PALABRAS están RESERVADAS para nombres de sentencias ejecutables,
de operaciones y de estructuras de datos predefinidas. En la tabla 2.3 se presentan todas las
PALABRAS RESERVADAS. Ejemplo : ARRAY, BEGIN, CASE, DIV, etc...
Otras PALABRAS usadas en los programas son los IDENTIFICADORES. Algunos
están PREDEFINIDOS y representan rutinas y tipos de datos que proporciona el PASCAL.
Otros identificadores usados son los DEFINIDOS POR EL USUARIO para poner nombre
a programas, constantes simbólicas, variables y cualquier elemento del programa que no
haya sido denominado. En las tablas 2.4 y 2.5 se indican los IDENTIFICADORES
PREDEFINIDOS. Ejemplo : CHAR, EOF, EXP, WRITE, etc...


El conjunto de caracteres
El PASCAL estandar usa el conjunto de la tabla de codificación ASCII ( American
Standard Code for Information Interchange ) que contiene 128 caracteres puestos en orden.
Hay varias clases de caracteres :
. Las letras mayúsculas y las minúsculas desde la " A " a la " Z " y desde la " a " a
la " z ".
. los números del " 0 " al " 9 ".
. Caracteres especiales, tales como el "ampersand" (&), el signo de interrogación (?),
el signo de igualdad (=).
. Caracteres no imprimibles, tales como el espacio en blanco, el tabulador, el salto
de linea, el retorno de carro, el pitido.
En general, los compiladores de PASCAL no distinguen entre letras mayúsculas y
minúsculas excepto cuando se escriben entre apóstrofos.
Ejemplo : PROGRAM Uno y PROGRAM UNO son equivalentes.
' Pepe Pérez ' y ' PEPE PEREZ ' son diferentes.
La tabla 2.1 resume el conjunto de caracteres ASCII. Cada elemento es un valor
constante del tipo predefinido CHAR.
El número decimal que lleva asociado cada elemento es el ordinal que devuelve la
función ORD de PASCAL aplicada a ese carácter.



Conjunto de caracteres ASCII

 
Significado de algunas abreviaturas:
nul nulo nl salto de linea
ht tabulador horizontal esc escape
cr retorno de carro bs retroceso
bel campana vs tabulador vertical
Observacioes:
• Los códigos de los caracteres 0 a 31 y 127 no son imprimibles
• Los códigos de las letras mayúsculas, los de las minúsculas y los de las cifras son
contiguos entre sí.
• La diferencia entre una letra mayúscula y su correspondiente minúscula es 32.

Las sentencias de un programa en PASCAL se forman con elementos que pueden ser :
- símbolos individuales, tales como los operadores aritméticos.
- palabras con un significado especial en PASCAL y palabras definidas
por el usuario.
Los elementos gramaticales se construyen con caracteres. Un carácter es cualquier
elemento de la tabla de codificación ASCII ( Tabla 2.1 ).
Algunos caracteres son SIMBOLOS ESPECIALES que se usan en PASCAL como
delimitadores de sentencias, como operadores y como elementos sintácticos del lenguaje.
Ejemplo : " ; " , " > ", " < > " , " = " . En la tabla 2.2 se indican todos.

simbolos especiales en el PASCAL

Símbolos especiales
Se usan para representar delimitadores, operadores y otros elementos sintácticos.
Cuando un símbolo está formado por más de un carácter, éstos deben escribirse
seguidos sin espacios en blanco de separación.
Nombre Símbolo Nombre Símbolo
Sumar, signo más + Menor que <
Restar, signo menos - Menor o igual que <=
Multiplicar * Mayor que >
Dividir / Mayor o igual que >=
Operador de asignación := Paréntesis ( )
Punto . Corchetes [ ]
Punto y coma ; Comentarios { }, (* *)
Dos puntos : Puntero @, ^
Apóstrofo ' Operador de subrango . .
Igual = Distinto < >

palabras reservadas

En la definición del lenguaje PASCAL, algunas palabras están reservadas. Se usan
como nombres de sentencia, de tipos de datos y de operadores. Suelen escribirse con
mayúsculas, aunque no es necesario.
Las palabras reservadas sólo se pueden usar, dentro de un programa, en el contexto
para el que han sido definidas. No se pueden redefinir para usarlas como identificadores.

La tabla 2.3 muestra las palabras reservadas estándar.
AND END NIL SET
ARRAY FILE NOT THEN
BEGIN FOR OF TO
CASE FUNCTION OR TYPE
CONST GOTO PACKED UNTIL
DIV IF PROCEDURE VAR
DO IN PROGRAM WHILE
DOWNTO LABEL RECORD WITH
ELSE MOD REPEAT

Palabras reservadas estándar
Identificadores
Son nombres que denotan constantes, tipos, variables, procedimientos y funciones.
Pueden incluir letras y dígitos cumpliendo las restricciones siguientes:
. Un identificador no puede comenzar con un dígito.
. Un identificador no puede tener espacios en blanco ni dígitos especiales.
. Los primeros caracteres de un identificador (31 en VAX PASCAL) deben designar
un nombre único dentro del bloque de programa en el que ha sido definido.
En PASCAL hay algunos identificadores que están predeclarados como nombres de
procedimientos, de funciones, tipos de datos, constantes simbólicas y variables de fichero.
En la tabla 2.4 se indican los incluidos en el estándar.
ABS FALSE PACK SQR
ARCTAN GET PAGE SQRT
BOOLEAN INPUT PRED SUCC
CHAR INTEGER PUT TEXT
CHR LN READ TRUE
COS MAXINT READLN TRUNC
DISPOSE NEW REAL UNPACK
EOF NIL RESET WRITE
EOLN ODD REWRITE WRITELN
EXP ORD ROUND
OUTPUT SIN

Identificadores predeclarados estándar
En un programa puede redefinirse cualquier identificador predeclarado para denominar
otra entidad. Si se hace eso, no podrá utilizarse tal identificador para su propósito habitual
dentro del bloque donde se haya redefinido.
No es recomendable redefinir identificadores predeclarados porque se pierde acceso a
prestaciones del lenguaje útiles.
Los identificadores definidos per el usuario se usan para nombrar programas,
módulos, constantes, variables, procedimientos, funciones, secciones de un programa y tipos
definidos por el usuario. Estos identificadores representan estructuras de datos
significativas, valores y acciones que no están representadas por alguna palabra reservada,
identificador predeclarado o símbolo especial.


Palabras reservadas

reglas sintácticas

Elementos básicos
2 - 9
PROGRAM
(* Ejemplo PAS002 , en VAX-PASCAL *)
(* *)
(* Sección de las declaraciones *)
TYPE (* Declaración del tipo "colores" *)
colores = (verde,rojo,ámbar,amarillo) ;
(* *)
VAR color : colores ; (* Declaración de la variable "color" *)
(* *)
(* No hay más declaraciones *)
(* *)
BEGIN (* Aqui comienza la parte ejecutable *)
WRITELN (' De que color está el semáforo (verde, rojo, ámbar) ? ') ;
READLN (color) ; (* en PASCAL estandar, es errónea *)
CASE color OF
verde : WRITELN(' PUEDES PASAR, PERO MIRA POR SI ACASO ');
amarillo, ámbar, rojo : WRITELN (' QUIETO !, ESPERA ')
END ;
END.
Este mismo programa sin tanto comentario es asi:
Cruzar_calle ( INPUT, OUTPUT ) ;
PROGRAM
TYPE
colores = (verde,rojo,ámbar,amarillo) ;
VAR
color : colores ;
BEGIN
WRITELN (' De que color está el semáforo (verde, rojo, ámbar) ? ') ;
READLN (color) ;
CASE color OF
verde : WRITELN(' PUEDES PASAR, PERO MIRA POR SI ACASO ');
amarillo, ámbar, rojo : WRITELN (' QUIETO !, ESPERA ')
END ;
END.
Cruzar_calle ( INPUT, OUTPUT ) ;

1. El punto y coma ( ; ) y el punto ( . ) son DELIMITADORES en PASCAL.
El punto y coma separa sentencias consecutivas. También se usa para terminar el
encabezamiento del programa y las declaraciones de los datos. No es necesario
escribir punto y coma después de la palabra BEGIN ni antes de la palabra END
porque BEGIN y END no son sentencias.
El punto indica el final del programa.
2. Las palabras BEGIN y END también son delimitadores, no son sentencias.Se
usan para separar las partes funcionales de un programa. Con ellas se indica el
principio y el final de la sección ejecutable. También sirven para delimitar una
sentencia compuesta. Cada BEGIN debe estar asociado con un END, excepto en
dos casos : la sentencia CASE y la declaración de RECORD.
3. El PASCAL permite formato libre en la escritura del texto que compone el
programa. Se pueden colocar las sentencias en cualquier lugar de una línea,
escribir una sentencia en más de una línea y colocar varias sentencias en una
misma línea. Pero no se puede dividir un nombre y un número entre varias líneas
o con un espacio en blanco.
4. Un programa puede contener comentarios en cualquier lugar. Los comentarios
se delimitan encerrándolos entre llaves ( { } ). También es posible comenzar un
comentario con " ( * " y acabarlo con " * ) ".
En el segundo ejemplo que se muestra a continuación, se presenta un programa algo
más completo para indicar el aspecto de las partes que lo componen. En este momento no
hay que prestar demasiada atención a las sentencias que contiene porque se estudiarán más
adelante. El programa simula el comportamiento de un transeunte cuando se dispone a
cruzar un paso de peatones con semáforo. Evidentemente es demasiado simple.

estructura de un programa


PROGRAM
(* Ejemplo PAS001 *)
(* Aqui no hay declaraciones. No se necesitan *)
BEGIN
WRITELN (' Que tal va con este capítulo ? ') ; (* Esta es la única sentencia END.
Uno ( INPUT, OUTPUT ) ; (* Este es el encabezamiento *)

Un programa escrito en PASCAL consta de un ENCABEZAMIENTO y un
BLOQUE.
En el encabezamiento se especifica el nombre del programa y los nombres de los
ficheros externos que se usan para entrada de datos y salida de resultados.
El bloque está dividido en dos partes :
. La sección de las declaraciones, donde se declaran todos los datos y las
rutinas.
. La sección ejecutable, que contiene sentencias ejecutables.
Un programa también puede contener lineas de comentario intercaladas en cualquier
lugar.
Sintácticamente, un programa comienza con la palabra PROGRAM y termina con un
punto "."
El primer ejemplo muestra un caso sencillo donde sólo se pretende ofrecer un visión
general :

miércoles, 23 de marzo de 2011

caracteristicas

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.

compiladores disponibles publicamente

Varios compiladores de Pascal están disponibles para el uso del público en general:
  • Epox
  • Compilador GNU Pascal (GPC), escrito en C, basado en GNU Compiler Collection (GCC). Se distribuye bajo licencia GPL.
  • Free Pascal está escrito en Pascal (el compilador está creado usando Free Pascal), es un compilador estable y potente. También distribuido libremente bajo la licencia GPL. Este sistema permite mezclar los codigos de mas utilidad en el mercado de la programacion, y soporta muchas plataformas y sistemas operativos.
  • Turbo Pascal fue el compilador Pascal dominante para PC durante los años 1980 y hasta principios de los años 1990, muy popular debido a sus magníficas extensiones y tiempos de compilación sumamente cortos. Actualmente, versiones viejas de Turbo Pascal (hasta la 7.0) están disponibles para descargarlo gratuito desde el sitio de Borland (es necesario registrarse).
  • Delphi es un producto tipo RAD (Rapid Application Development) de Borland. Utiliza el lenguaje de programación Delphi, descendiente de Pascal, para crear aplicaciones para la plataforma Windows. Las últimas versiones soportan compilación en la plataforma .NET.
  • Kylix es la versión más nueva de Borland reiterando la rama de Pascal de sus productos. Es descendiente de Delphi, con soporte para el sistema operativo Linux y una librería de objetos mejorada (CLX). El compilador y el IDE están disponibles para uso no comercial. Actualmente este proyecto está descontinuado.
  • Lazarus es un clon de Delphi, basado en Free Pascal es software libre.
  • MidletPascal para la plataforma J2ME.
  • TMT. Pascal.