viernes, 1 de abril de 2011

Lenguaje de pascal y su programacion.

La historia del lenguaje de pascal.


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.
El nombre de Pascal fue escogido en honor al matemático Blaise Pascal.

Para poder entender el lenguaje de pascal es necesario conocer sus conceptos generales.


¿Que es un lenguaje?


Se le llama lenguaje a cualquier codigo estructurado para el cual existe un contexto y principio es decir ya se ha formalizado su uso y sus definiciones.


¿Que es programacion?


La programación es el proceso de diseñar, escribir, probar, depurar y mantener el código fuente de programas computacionales. El código fuente es escrito en un lenguaje de programación. El propósito de la programación es crear programas que exhiban un comportamiento deseado. El proceso de escribir código requiere frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos especializados y lógica formal. Programar no involucra necesariamente otras tareas tales como el análisis y diseño de la aplicación (pero si el diseño del código), aunque si suelen estar fusionadas en el desarrollo de pequeñas aplicaciones.


¿Cuales son sus 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.

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. 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. 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.


¿Cuales son sus 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 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.

PASCAL, el lenguaje estructurado por excelencia , y que en algunas versiones tiene una potencia comparable a la del lenguaje C, como es el caso de Turbo Pascal en programación para DOS y de Delphi en la programación para Windows. Frente al C tiene el inconveniente de que es menos portable, y la ventaja de que en el caso concreto de la programación para DOS, Turbo Pascal no tiene nada que envidiar la mayoría de versiones del lenguaje C en cuanto a potencia, y además resulta más fácil de aprender, es muy rápido, crea ficheros EXE más pequeños, etc., mientras que en la programación para Windows, Delphi es una muy buena herramienta para crear aplicaciones de calidad en un tiempo razonablemente breve.

Dos conceptos que se mencionan mucho al hablar de programación son "programación estructurada" y "programación orientada a objetos".
La programación estructurada consiste en dotar al programa de un cierto orden, dividiéndolo en bloques independientes unos de otros, que se encargan de cada una de las tareas necesarias. Esto hace un programa más fácil de leer y modificar.

La programación orientada a objetos son comandos ejecutables en un cuerpo fisico como tal ya sea un robot o una mquina."Objects Pascal" es el nombre que se suele dar a un lenguaje Pascal que permita programación orientada a objetos (como es el caso de Turbo Pascal), y que "C++" es una ampliación del lenguaje C, que también soporta P.O.O.

Lo primero que llama la atención es que casi todas las palabras están escritas en inglés. Esto será lo habitual: la gran mayoría de las palabras clave de Pascal (palabras con un significado especial dentro del lenguaje) son palabras en inglés o abreviaturas de éstas.

En el lenguaje Pascal no existe distinción entre mayúsculas y minúsculas, por lo que "BEGIN" haría el mismo efecto que "begin" o "Begin".  Así, lo mejor será adoptar el convenio que a cada uno le resulte más legible: algunos autores emplean las órdenes en mayúsculas y el resto en minúsculas, otros todo en minúsculas, otros todo en minúsculas salvo las iniciales de cada palabra.

Otra cosa que puede extrañar es eso de que algunas líneas terminen con un punto y coma.  Pues bien, cada sentencia de Pascal debe terminar con un punto y coma (;), salvo el último "end", que lo hará con un punto.

También hay otras tres excepciones: no es necesario un punto y coma después de un "begin", ni antes de una palabra "end" o de un "until".

Cuando definamos variables, tipos, constantes, etc., tampoco va punto y coma después de las cabeceras de las declaraciones.

Comienza con la palabra program. Esta  palabra no es necesaria en muchos compiladores, como Turbo Pascal o Surpas, pero sí lo era incialmente en Pascal estándar, y el formato era
program NombrePrograma (input, output);

Aunque para nosotros no sea necesario, su empleo puede resultar cómodo si se quiere poder recordar el objetivo del programa con sólo un vistazo rápido a su cabecera.

En algunos compiladores, puede que "nos regañe" si la palabra que sigue a "program" es distinta del nombre que tiene el fichero (es el caso de las primeras versiones de Tmt Pascal Lite), pero normalmente el programa funcionará a pesar de ello.

Los "identificadores" son palabras que se utilizan para referirse a una variable, una constante, el nombre de una función o de un procedimiento, etc. 
Estos nombres de "identificadores" serán combinaciones de letras (sin acentos) y números, junto con algunos símbolos especiales, como el de subrayado (_).  No podrán empezar con un número, sino por un carácter alfabético (A a Z, sin Ñ ni acentos) o un subrayado, y no podrán contener espacios.

Las palabras "begin" y "end" marcan el principio y el final del programa, que esta vez sólo se compone de una línea. La palabra end debe terminar con un punto (.).

"Write" es la orden que permite escribir un texto en pantalla.  El conjunto de todo lo que se desee escribir se indica entre paréntesis. Cuando se trata de un texto que queremos que aparezca "tal cual", éste se encierra entre comillas. Y entre los parentesis se debe colocar una comilla ('') que se encuentra justo alado del boton cero (0) es decir para un claro ejemplo writeln ('hola');
La orden "write" aparece algo más a la derecha que el resto.  Esto se llama escritura indentada, y consiste en escribir a la misma altura todos los comandos que se encuentran a un mismo nivel, algo más a la derecha los que están en un nivel inferior, y así sucesivamente, buscando mayor legibilidad.

Los detalles concretos sobre cómo probar este programa dependerán del compilador que se esté utilizando. Unos tendrán un Entorno Integrado, desde el que escribir los programas y probarlos (como Free Pascal, Turbo Pascal y Surpas), mientras que en otros hará falta un editor para teclear los programas y el compilador para probarlos (como Tmt Lite) y otros no incluyen editor en la distribución normal, pero es fácil conseguir uno adaptado para ellos (es el caso de FPK y de Gnu Pascal).

Las variables son algo que no contiene un valor predeterminado, una posición de memoria a la que nosotros asignamos un nombre y en la que podremos almacenar datos.

ejemplo:

program Saludo2;var
nombre: string[20];
begin
writeln('Introduce tu nombre, por favor');
readln(nombre);
write('Hola ',nombre);
end.

Para las operaciones matematicas el programa seria este:

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.
Conclusion:
 
El lenguaje de pascal a diferencia de otros es un facilitador para poder realizar un programa
de alta complejidad ya sea como una orden a una computadora o bien un comando para un sistema fisico
en esencia este lenguaje realiza ordenes o comandos y es uno de los lenguajes de mas facil realizacion
que exsten actualmente a pesar de ser un lenguaje de los años 70's.
 
 


las fuentes de consulta y bibliografias son:

wikipedia: lenguaje de pascal.

lenguajes de programacion:

lenguaje de pascal:

real academia española: para los significados:


No hay comentarios:

Publicar un comentario