Pascal (lenguaje de programación)
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.
El nombre de Pascal fue escogido en
honor al matemático Blaise Pascal.
(Más información: http://es.wikipedia.org/wiki/Pascal_(lenguaje_de_programaci%C3%B3n))
Conceptos básicos de Pascal: datos y tipos de datos
Concepto de dato:
Los
diferentes objetos de información con los que trabaja un programa en Pascal se
conocen como datos. Todos los datos tienen un tipo asociado con ellos. Pueden
ser de tipo carácter, entero, un número real, etc.
La asignación de tipos a los datos persigue dos objetivos:
- Detectar errores de operaciones en programas.
- Determinar cómo ejecutar las operaciones.
CARACTERÍSTICAS:
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 bugsdifí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.
El lenguaje de programación Pascal es un lenguaje de alto nivel y
propósito general (aplicable a una gran cantidad de aplicaciones diversas)
desarrollado por el profesor suizo Niklaus Wirth (Instituto tecnológico de Zurich,
Suiza). El propósito de Wirth era crear un lenguaje para la enseñanza de
técnicas de programación a estudiantes universitarios. Pero a medida que
pasaban los años, Pascal se iba convirtiendo en un estándar en el mundo de la
programación.
ALGUNOS EJEMPLOS DE PASCAL
Raíz cuadrada
program raiz(input, output);
uses wincrt;
(*Obtener la raíz cuadrada de un número real x cualquiera.*)
var x, y: real;
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:1:2, ' es ', y:1:2);
writeln;
writeln('** Fin **');
end.
Suma
program suma; uses crt;
var x,s,r:integer;
begin
clrscr;
writeln('Ingrese un numero');
readln(x);
writeln('Ingrese otro numero');
readln(s);
r:=x+s;
writeln('la suma es: ',r);
readln;
end.
Ejemplo de un programa en Pascal que detecta el carácter introducido por el usuario.
program ejer; uses crt;
var trabajo_compiladores:CHAR;
begin
clrscr;
write('Introduzca un caracter alfanumerico: ');
readln(trabajo_compiladores);
write('el caracter introducido es -----> ' + trabajo compiladores)
end.
Traductores de programas:
"ENSAMBLADORES"
Los traductores son un tipo de programas cuya función es convertir el código de un lenguaje en otro. Por ejemplo un compilador, que traduce código fuente en código objeto. Existen distintos tipos de traductores, entre ellos destacan:
-Ensambladores
-Preprocesadores
-Intérpretes
-Compiladores
Ensambladores:
Es un tipo de traductor que convierte programas escritos en lenguaje ensamblador en programas escritos en código máquina.
ENSAMBLADOR:
El lenguaje ensamblador, o assembler(assembly language en inglés) es un lenguaje de programación de bajo nivel para los computadores, microprocesadores, microcontroladores, y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador.
Ensamblador es un lenguaje que permite indicarle al procesador (por medio del sistema operativo) cada una de las instrucciones que debe realizar, este las interpretara tal cual las ingresamos, (obviamente, todo esto en código maquina, se entiende?).
Ensamblador, es el lenguaje que nos da ejecutables mas rápidos y de menos tamaño, con la desventaja de que casi no es portable, y que genera archivos fuente muy extensos y difíciles de corregir.
Funcionamiento: El programa lee el fichero escrito en lenguaje ensamblador y sustituye cada uno de los códigos nemotécnicos que aparecen por su código de operación correspondiente en sistema binario para la plataforma que se eligió como destino en las opciones específicas del ensamblador.
Tipos de Ensambladores:
Podemos distinguir entre tres tipos de ensambladores:
Ensambladores básicos:
Son de muy bajo nivel, y su tarea consiste básicamente en ofrecer nombres simbólicos a las distintas instrucciones, parámetros y cosas tales como los modos de direccionamiento. Además, reconoce una serie de directivas (o meta instrucciones) que indican ciertos parámetros de funcionamiento del ensamblador.
Ensambladores modulares/macro:
Descendientes de los ensambladores básicos, fueron muy populares en las décadas de los 50 y los 60, antes de la generalización de los lenguajes de alto nivel. Hacen todo lo que puede hacer un ensamblador, y además proporcionan una serie de directivas para definir e invocar macroinstrucciones (o simplemente, macros).
Ensambladores modulares 32-bits o de alto nivel:
Son ensambladores que aparecieron como respuesta a una nueva arquitectura de procesadores de 32 bits, muchos de ellos teniendo compatibilidad hacia atrás pudiendo trabajar con programas con estructuras de 16 bits. Además de realizar la misma tarea que los anteriores, permitiendo también el uso de macros, permiten utilizar estructuras de programación más complejas propias de los lenguajes de alto nivel.
Este ejemplo está completamente desarrollado en lenguaje ensamblador que usa servicios o funciones de MS-DOS (system calls) para imprimir en pantalla el mensaje “Hola Mundo!!!”…
; HOLA.ASM
; Programa clasico de ejemplo. Despliega una
leyenda en pantalla.
STACK SEGMENT STACK ; Segmento de pila
DW 64 DUP (?) ; Define espacio en la pila
STACK ENDS
DATA SEGMENT ; Segmento de datos
SALUDO DB "Hola
mundo!!",13,10,"$" ; Cadena
DATA ENDS
CODE SEGMENT ; Segmento de Codigo
ASSUME CS:CODE, DS:DATA, SS:STACK
INICIO: ; Punto de entrada al programa
MOV AX,DATA ; Pone direccion en AX
MOV DS,AX ; Pone la direccion en los registros
MOV DX,OFFSET SALUDO ; Obtiene direccion del mensaje
MOV AH,09H ; Funcion: Visualizar cadena
INT 21H ; Servicio: Funciones alto nivel DOS
MOV AH,4CH ; Funcion: Terminar
INT 21H
CODE ENDS
END INICIO ; Marca fin y define INICIO
Tomada de la siguiente pagina:
http://homepage.mac.com/eravila/asmix862.html
Conceptos básicos de Pascal: datos y tipos de datos
Concepto de dato:
Los
diferentes objetos de información con los que trabaja un programa en Pascal se
conocen como datos. Todos los datos tienen un tipo asociado con ellos. Pueden
ser de tipo carácter, entero, un número real, etc.
La asignación de tipos a los datos persigue dos objetivos:
- Detectar errores de operaciones en programas.
- Determinar cómo ejecutar las operaciones.
CARACTERÍSTICAS:
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 bugsdifí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.
El lenguaje de programación Pascal es un lenguaje de alto nivel y
propósito general (aplicable a una gran cantidad de aplicaciones diversas)
desarrollado por el profesor suizo Niklaus Wirth (Instituto tecnológico de Zurich,
Suiza). El propósito de Wirth era crear un lenguaje para la enseñanza de
técnicas de programación a estudiantes universitarios. Pero a medida que
pasaban los años, Pascal se iba convirtiendo en un estándar en el mundo de la
programación.
ALGUNOS EJEMPLOS DE PASCAL
Raíz cuadrada
program raiz(input, output); uses wincrt; (*Obtener la raíz cuadrada de un número real x cualquiera.*) var x, y: real; 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:1:2, ' es ', y:1:2); writeln; writeln('** Fin **'); end.
Suma
program suma; uses crt; var x,s,r:integer;
begin
clrscr;
writeln('Ingrese un numero'); readln(x); writeln('Ingrese otro numero'); readln(s); r:=x+s; writeln('la suma es: ',r); readln; end.
Ejemplo de un programa en Pascal que detecta el carácter introducido por el usuario.
program ejer; uses crt; var trabajo_compiladores:CHAR; begin
clrscr;
write('Introduzca un caracter alfanumerico: ');
readln(trabajo_compiladores);
write('el caracter introducido es -----> ' + trabajo compiladores) end.
Traductores de programas:
"ENSAMBLADORES"
Los traductores son un tipo de programas cuya función es convertir el código de un lenguaje en otro. Por ejemplo un compilador, que traduce código fuente en código objeto. Existen distintos tipos de traductores, entre ellos destacan:"ENSAMBLADORES"
-Ensambladores
-Preprocesadores
-Intérpretes
-Compiladores
Ensambladores:
Es un tipo de traductor que convierte programas escritos en lenguaje ensamblador en programas escritos en código máquina.
ENSAMBLADOR:
El lenguaje ensamblador, o assembler(assembly language en inglés) es un lenguaje de programación de bajo nivel para los computadores, microprocesadores, microcontroladores, y otros circuitos integrados programables. Implementa una representación simbólica de los códigos de máquina binarios y otras constantes necesarias para programar una arquitectura dada de CPU y constituye la representación más directa del código máquina específico para cada arquitectura legible por un programador.
Ensamblador, es el lenguaje que nos da ejecutables mas rápidos y de menos tamaño, con la desventaja de que casi no es portable, y que genera archivos fuente muy extensos y difíciles de corregir.
Funcionamiento: El programa lee el fichero escrito en lenguaje ensamblador y sustituye cada uno de los códigos nemotécnicos que aparecen por su código de operación correspondiente en sistema binario para la plataforma que se eligió como destino en las opciones específicas del ensamblador.
Tipos de Ensambladores:
Podemos distinguir entre tres tipos de ensambladores:
Ensambladores básicos:
Son de muy bajo nivel, y su tarea consiste básicamente en ofrecer nombres simbólicos a las distintas instrucciones, parámetros y cosas tales como los modos de direccionamiento. Además, reconoce una serie de directivas (o meta instrucciones) que indican ciertos parámetros de funcionamiento del ensamblador.
Ensambladores modulares/macro:
Descendientes de los ensambladores básicos, fueron muy populares en las décadas de los 50 y los 60, antes de la generalización de los lenguajes de alto nivel. Hacen todo lo que puede hacer un ensamblador, y además proporcionan una serie de directivas para definir e invocar macroinstrucciones (o simplemente, macros).
Ensambladores modulares 32-bits o de alto nivel:
Son ensambladores que aparecieron como respuesta a una nueva arquitectura de procesadores de 32 bits, muchos de ellos teniendo compatibilidad hacia atrás pudiendo trabajar con programas con estructuras de 16 bits. Además de realizar la misma tarea que los anteriores, permitiendo también el uso de macros, permiten utilizar estructuras de programación más complejas propias de los lenguajes de alto nivel.
Este ejemplo está completamente desarrollado en lenguaje ensamblador que usa servicios o funciones de MS-DOS (system calls) para imprimir en pantalla el mensaje “Hola Mundo!!!”…
; HOLA.ASM
; Programa clasico de ejemplo. Despliega una
leyenda en pantalla.
STACK SEGMENT STACK ; Segmento de pila
DW 64 DUP (?) ; Define espacio en la pila
STACK ENDS
DATA SEGMENT ; Segmento de datos
SALUDO DB "Hola
mundo!!",13,10,"$" ; Cadena
DATA ENDS
CODE SEGMENT ; Segmento de Codigo
ASSUME CS:CODE, DS:DATA, SS:STACK
INICIO: ; Punto de entrada al programa
MOV AX,DATA ; Pone direccion en AX
MOV DS,AX ; Pone la direccion en los registros
MOV DX,OFFSET SALUDO ; Obtiene direccion del mensaje
MOV AH,09H ; Funcion: Visualizar cadena
INT 21H ; Servicio: Funciones alto nivel DOS
MOV AH,4CH ; Funcion: Terminar
INT 21H
CODE ENDS
END INICIO ; Marca fin y define INICIO
Tomada de la siguiente pagina:
http://homepage.mac.com/eravila/asmix862.html
No hay comentarios:
Publicar un comentario