You are on page 1of 23

República Bolivariana de Venezuela

Ministerio del Poder Popular para la Educación Universitaria

Universidad José Antonio Páez

Facultad de Ingeniería

Estructura de Bloques ALGOL, PASCAL, ADA y C

Docente:

Alumno:

Susan León Sebastián Salazar 28.465.047

Fernando Rodríguez 27.589.678

8vo semestre sección 307C1


San Diego, 14 de noviembre de 2022

Lenguaje ALGOL

Se denomina ALGOL (o Algol) a un lenguaje de programación. La voz es un acrónimo de


las palabras inglesas Algorithmic Language ('lenguaje algorítmico').

El lenguaje ALGOL se utilizó específicamente para la programación de cálculos científicos


que se convirtió en la forma estándar de facto para informar algoritmos en papel durante
casi los próximos 30 años.

Fue diseñado a fines de la década de 1950 por un comité internacional y estaba destinado a
ser una herramienta informática universal. Desafortunadamente, nunca logró el éxito de
algunos de sus contemporáneos como Fortran y Cobol. Hoy, es virtualmente inexistente,
sobreviviendo solo como un recordatorio de cómo llegamos a donde estamos hoy.

ALGOL utiliza entre corchetes bloques de declaración y fue el primer lenguaje para
comenzar a utilizar pares finales para la delimitación de ellos.

Especificación del lenguaje ALGOL:

El lenguaje ALGOL proporcionó muchas características del lenguaje de programación


actual que incluyen:

 Notación BNF: la forma Backus-Naur (Backus-Naur Form) es un medio formal


para describir la sintaxis de un lenguaje informático. Es decir, como una forma
abreviada de lenguajes informáticos.
 Bloques de declaraciones: este es un medio sintáctico para agrupar una serie de
declaraciones de programación. Es como poner un grupo de elementos relacionados
en una caja y tratar la caja como una unidad.
 Paso de parámetros: específicamente, hay dos métodos para pasar información
hacia y desde un subprograma, pasar por valor y pasar por referencia. Es una forma
de proteger la información que ingresa a un subprograma de la modificación, uno
envía una copia y el otro envía los datos reales.
-1-

 Matrices dinámicas: son una lista de valores donde el tamaño de la lista se puede
determinar en tiempo de ejecución. Es decir, como arreglos flexibles, arreglos que
se ajustan a la necesidad.
 Palabras reservadas: son palabras predefinidas que tienen un significado especial
para un lenguaje informático. Es como el nombre. Representa a nosotros y a las
cosas que podemos hacer.
Tipos de datos de ALGOL

Tipo ALGOL Definición


Binario Se puede utilizar para asignar elementos y
elementos incrustados. Un binario es un
operando de 48 bits en formato entero con
un factor de escala opcional. El signo
puede ser ignorado. Como entidad
incrustada, está alineada con bytes.
Booleano Se puede utilizar para asignar elementos y
elementos incrustados. Un ALGOL
"Booleano" alineado en un límite de dígito.
Un tipo de 4 bits, se actúa sobre los 4 bits.
Dígitos Se puede utilizar para asignar elementos y
elementos incrustados. Como entidad
incrustada, está alineada con dígitos y tiene
de 1 a 23 caracteres hexadecimales con un
signo y un factor de escala opcionales. En
expresiones aritméticas se usa como un
número. Los números negativos se
redondean desde cero (0).
Display Se puede utilizar para asignar elementos y
elementos incrustados. Una pantalla es de 1
a 23 caracteres numéricos EBCDIC con un
signo opcional y un factor de escala
opcional. En expresiones aritméticas se usa
como un número. Los números negativos
se redondean desde cero (0). Como entidad
incrustada, está alineada con bytes.
Doble Se puede utilizar para mapear elementos
incrustados. Un ALGOL "Doble", alineado
en un límite de byte.
Array EBCDIC Se puede utilizar para asignar elementos y
elementos incrustados. Se permiten todos
los caracteres EBCDIC. Como entidad
incrustada, se alinea en un límite de bytes.
Evento Se puede utilizar para mapear elementos.
Un “Evento” de ALGOL.
Entero Se puede utilizar para mapear elementos
incrustados. Un número entero se alinea en
un límite de dígitos. Es un número entero
de 1 a 48 bits, justificado a la izquierda en
el límite y rellenado con bits de "relleno" a
la derecha hasta el límite del dígito más
cercano. (No se puede hacer referencia a
los bits de relleno). No está firmado, pero
siempre se considera positivo.
Real Se puede utilizar para asignar elementos y
elementos incrustados. Un ALGOL "Real",
como entidad incrustada, se alinea en un
límite de bytes.
Record Se puede utilizar para asignar elementos y
elementos incrustados. Una secuencia de
campos, como una entidad incrustada, se
alinea en un límite de bytes.
Task Se puede utilizar para mapear elementos.
Una “tarea” de ALGOL.

Ventajas y desventajas del lenguaje ALGOL


Ventajas

1. Acceso rápido a la información


2. Acceso a múltiples fuentes de conocimiento
3. Promueve la innovación
4. Impulsa el emprendimiento
5. Facilita la comunicación
6. Estimulación de la creatividad
7. Simplifica tareas
8. Aumenta las opciones de entretenimiento
9. Crea nuevas fuentes de empleo
10. Facilita el acceso a la educación

Desventajas

1. Influencia negativa en la productividad de los trabajadores


2. Genera dilemas éticos (como la inteligencia artificial)
3. Puede generar desempleo
4. Estimula aislamiento social
5. Disociación de la realidad
6. Generación de desechos contaminantes
7. Problemas de privacidad digital

Lenguaje 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 lenguaje Pascal es un poderoso instrumento de programación muy utilizado en la


actualidad en colegios, universidades y empresas.

Especificación del lenguaje PASCAL

A diferencia de lenguajes de programación descendientes de Lenguaje de Programación C,


Pascal utiliza el símbolo := para la asignación en vez de =. Si bien el segundo es más
conciso, 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 distinta 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;
las asignaciones 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.

Operadores de PASCAL:
Los operadores PASCAL se puede clasificarse a su vez como:

 Unarios
 Binarios

Los operadores unarios son aquellos que trabajan con un operando.

Pascal permite el manejo de un operador unario llamado:

Menos unario:

Este operador denota la negación del operando, y se representa por medio del signo menos
(–) colocado antes del operando.

Por ejemplo:

Si x tiene asignado el valor 100, -x dará como resultado -100; esto es que el resultado es el
inverso aditivo del operando.

Los operadores unarios, son los que combinan dos operandos, dando como resultado un
valor numérico cuyo tipo será igual al mayor de los tipos que tengan los operandos.

La siguiente tabla muestra los símbolos de los operadores binarios de Pascal, así como los
nombres de las operaciones que realizan.
Operadores aritméticos básicos

OPERADOR OPERACION OPERANDOS EJEMPLO RESULTADO


+ Suma real, integer a+b suma de a y b
- Resta real, integer a-b Diferencia de a
yb
* Multiplicación real, integer a*b Producto de a
por b
/ División real, integer a/b Cociente de a
por b
div División entera integer a div b Cociente entero
de a por b
mod Modulo integer a mod b Resto de a por
b
shl Desplazamiento a shl Desplazar a la
a la izquierda izquierda b bits
shr Desplazamiento a shr b Desplazar a la
a la derecha derecha b bits

Ventajas y desventajas de PASCAL:


Ventajas:

1. Pascal no permite asignaciones dentro de las expresiones y utiliza sintaxis distintas


para asignaciones y comparaciones evitando de esta manera evita muchos bugs.
2. El tipo de variable de Pascal se fija en su definición; la asignación a variables de
valores tipo incompatible no están autorizadas esto previene errores comunes en
donde las variables son utilizadas correctamente.
3. Este programa tiene dos partes definidas: declarativa y ejecutiva estos evitan
impresiones.
4. Facilidad.

Desventajas:

1. Para los años 1980 principio de los 90 el programa Pascal fue criticado por no
producir códigos industriales.
2. Obsoleto.

Lenguaje ADA
Ada es un lenguaje de programación estructurado y fuertemente tipado de forma estática.

Es un lenguaje multipropósito, orientado a objetos y concurrente, pudiendo llegar desde la


facilidad de Pascal hasta la flexibilidad de C++.

Fue diseñado con la seguridad en mente y con una filosofía orientada a la reducción de
errores comunes y difíciles de descubrir. Para ello se basa en un tipado muy fuerte y en
chequeos en tiempo de ejecución (desactivables en beneficio del rendimiento). La
sincronización de tareas se realiza mediante la primitiva rendezvous.

Ada se usa principalmente en entornos en los que se necesita una gran seguridad y
fiabilidad como la defensa, la aeronáutica (Boeing o Airbus), la gestión del tráfico aéreo
(como Indra en España) y la industria aeroespacial entre otros.

Especificación del lenguaje ADA:

La sintaxis, inspirada en Pascal, es bastante legible incluso para personas que no conozcan
el lenguaje. Es un lenguaje que no escatima en la longitud de las palabras clave, en la
filosofía de que un programa se escribe una vez, se modifica decenas de veces y se lee
miles de veces (legibilidad es más importante que rapidez de escritura).

Es indiferente el uso de mayúsculas y minúsculas en los identificadores y palabras claves;


es decir, es un lenguaje case-insensitive.

En Ada, todo el programa es un único procedimiento, que puede contener subprogramas


(procedimientos o funciones).

Cada sentencia se cierra con end qué_cerramos. Es un modo de evitar errores y facilitar la
lectura. No es necesario hacerlo en el caso de subprogramas, aunque todos los manuales lo
aconsejan y casi todos los programadores de Ada lo hacen.

El operador de asignación es :=, el de igualdad =. A los programadores de C y similares les


puede confundir este rasgo inspirado en Pascal.
La sintaxis de atributos predefinidos es Objeto'Atributo (o Tipo'Atributo) (nota: esto sólo
afecta a atributos predefinidos por el lenguaje, ya que no es el concepto de atributo típico
de OOP).

Se distingue entre "procedimientos" (subrutinas que no devuelven ningún valor, pero


pueden modificar sus parámetros) y "funciones" (subrutinas que devuelven un valor y no
modifican los parámetros). Muchos lenguajes de programación no hacen esta distinción.
Las funciones de Ada favorecen la seguridad al reducir los posibles efectos colaterales,
pues no pueden tener parámetros in out.
Operadores del lenguaje ADA

Ésta es la lista de operadores de Ada de menor a mayor precedencia.

CLASE NOMBRE FORMULA SINTAXIS ADA

Lógicos Conjunción and

Disyunción inclusiva or

Disyunción exclusiva xor

Relacionales Igualdad =

Desigualdad /=

Menor que <

Menor o igual que <=


Mayor que >

Mayor o igual que >=


Aditivo unario Identidad +

Negación -

Aditivo binario Suma +

Resta -

Concatenación Concatenación &


Multiplicativo Multiplicación *

División /

Modulo mod

Resto rem
De máxima Exponenciación **
precedencia
Negación not

Valor absoluto abs

Ventajas y desventajas de ADA


Ventajas:

 Legibilidad; Es fuertemente tipado (para la seguridad máxima); corrección de


errores; Abstracción de los datos; Asignación (dentro del lenguaje para mejorar
portabilidad y confiabilidad); y unidades genéricas (utiliza la creación de bibliotecas
de componentes reutilizables). El Ada es utilizado en aplicaciones militares, pero
también en aplicaciones civiles similares (por ej., en el sector de la aviación).

Desventajas:

 Tiene ciertas características bajas, por ejemplo, no tiene conversión chequeada. La


dirección de anomalía puede producir los sistemas que son duros de razonar
alrededor. La orden de la elaboración de las unidades de la biblioteca es un
problema. El lenguaje tiene relativamente pocas inseguridades considerando su gran
tamaño; de hecho, el tamaño y la complejidad es probablemente la preocupación
principal.
Lenguaje C:

C es un lenguaje de programación de propósito general que ofrece economía sintáctica,


control de flujo y estructuras sencillas y un buen conjunto de operadores. No es un lenguaje
de muy alto nivel y más bien un lenguaje pequeño, sencillo y no está especializado en
ningún tipo de aplicación. Esto lo hace un lenguaje potente, con un campo de aplicación
ilimitado y, sobre todo, se aprende rápidamente.

En sus orígenes su propósito específico era para la implementación de Sistemas Operativos,


concretamente Unix. En aquellas fechas es cuando se empezaban a desarrollar nuevos
Sistemas Operativos y era necesario de disponer de herramientas de programación
eficientes.

El lenguaje C es apreciado por la eficiencia del código que produce y es el lenguaje de


programación más popular para crear software de sistemas, aunque también se utiliza para
crear aplicaciones hoy en día.

En el diseño del lenguaje, Uno de los objetivos es que solo sean necesarias muy pocas
instrucciones en lenguaje máquina para traducir cada elemento del lenguaje, por este
motivo, es muy sencillo escribir C a bajo nivel de abstracción y usarlo incluso como
intermediario entre diferentes lenguajes.

El lenguaje se diseñó para promover la programación independiente de la máquina de


forma que un programa escrito en C sea portátil hacia múltiples plataformas.

Aunque C se desarrolló originalmente por programadores y para programadores para el


desarrollo del sistema operativo UNIX, ha alcanzado una popularidad enorme, y se usa en
contextos muy alejados de la programación de software de sistema para la que se diseñó
originalmente.
Especificación del lenguaje:

 Lenguaje procedimental: En un lenguaje procedimental como C se llevan a cabo


instrucciones paso a paso predefinidas. El programa C puede contener más de una
función para realizar una tarea en particular. Las personas nuevas en la
programación pensarán que esta es la única forma en que funciona un lenguaje de
programación en particular. También existen otros paradigmas de programación en
el mundo de la programación. La mayor parte del paradigma de uso común es un
lenguaje de programación orientado a objetos.

 Rápido y eficiente: los lenguajes más nuevos como java, python ofrecen más
funciones que el lenguaje de programación c, pero debido al procesamiento
adicional en estos lenguajes, su tasa de rendimiento disminuye de manera efectiva.
El lenguaje de programación C como lenguaje de nivel medio proporciona a los
programadores acceso a la manipulación directa con el hardware de la computadora,
pero los lenguajes de nivel superior no lo permiten. Esa es una de las razones por las
que el lenguaje C se considera la primera opción para comenzar a aprender
lenguajes de programación. Es rápido porque los lenguajes de escritura estática son
más rápidos que los lenguajes de escritura dinámica.

 Modularidad: el concepto de almacenar código de lenguaje de programación C en


forma de bibliotecas para usos futuros se conoce como modularidad. Esta furgoneta
de lenguaje de programación hace muy poco por sí misma, la mayor parte de su
poder está en manos de sus bibliotecas. El lenguaje C tiene su propia biblioteca para
resolver problemas comunes, como en este, podemos usar una función en particular
usando un archivo de encabezado almacenado en su biblioteca.

 Tipo estático: el lenguaje de programación C es un lenguaje escrito estáticamente.


Lo que significa que el tipo de variable se comprueba en el momento de la
compilación, pero no en el tiempo de ejecución. Esto significa que cada vez que un
programador escribe un programa, debe mencionar el tipo de variables utilizadas.

 Lenguaje de propósito general: desde la programación del sistema hasta el


software de edición de fotografías, el lenguaje de programación C se utiliza en
varias aplicaciones. Por ejemplo: PostgreSQL, Oracle, MySQL , MS SQL Server,
etc.

 Amplio conjunto de operadores incorporados: es un lenguaje diversificado con


un amplio conjunto de operadores incorporados que se utilizan para escribir
programas en C complejos o simplificados.

 Bibliotecas con funciones enriquecidas: las bibliotecas y funciones robustas en C


ayudan incluso a un codificador principiante a codificar con facilidad.

 Lenguaje de nivel medio: como es un lenguaje de nivel medio, tiene la forma


combinada de las capacidades del lenguaje ensamblador y las características del
lenguaje de alto nivel.

 Portabilidad: el lenguaje C es muy portátil ya que los programas que están escritos
en lenguaje C pueden ejecutarse y compilarse en cualquier sistema sin cambios o
con pequeños cambios.

 Fácil de extender: los programas escritos en lenguaje C se pueden extender, lo que


significa que cuando un programa ya está escrito en él, se pueden agregar algunas
funciones y operaciones más.
Requisitos:

Estos son los mínimos requisitos del sistema que utiliza Dev-C++

 Microsoft Windows 95, 98, NT 4, 2000, XP


 8 MB de RAM con un archivo de intercambio grande
 Procesador compatible Intel a 100 Mhz
 30 MB de espacio libre en el disco duro

Requisitos recomendados de Dev-C++

 Microsoft Windows 2000, XP


 32 MB de RAM
 Procesador compatible Intel a 400
 200 MB de espacio libre en el disco duro

Organización del lenguaje C:

Todo programa escrito en C consta de una o más funciones, una de las cuales se llama
main. El programa siempre comenzará por la ejecución de la función main. Cada función
debe contener:

 Una cabecera de la función, que consta del nombre de la función, seguido de una
lista opcional de argumentos encerrados con paréntesis.
 Una lista de declaración de argumentos, si se incluyen estos en la cabecera.
 Una sentencia compuesta, que contiene el resto de la función.

Los argumentos son símbolos que representan información que se le pasa a la función
desde otra parte del programa. (También se llaman parámetros a los argumentos).
Cada sentencia compuesta se encierra con un par de llaves, {.....}. Las llaves pueden
contener combinaciones de sentencias elementales (denominadas sentencias de expresión)
y otras sentencias compuestas. Así las sentencias compuestas pueden estar anidadas, una
dentro de otra. Cada sentencia de expresión debe acabar en punto y coma (;).

Los comentarios pueden aparecer en cualquier parte del programa, mientras estén situados
entre los delimitadores /* ................ */ (por ejemplo: /*esto es un ejemplo*/). Los
comentarios son útiles para identificar los elementos principales de un programa o
simplemente para orientar a un posible usuario de ese código.

Tipos de datos en lenguaje C

El lenguaje C ofrece tres tipos de datos básicos:

 Números enteros definidos con la palabra clave “int”


 Letras o caracteres definidos con la palabra clave “char”
 Números reales o en coma flotante definidos con las palabras claves “float” o
“double”

Enteros

Se definen con “int” y admiten de forma opcional dos prefijos modificadores:

 “short” y “long”: Modifica el tamaño en bits del entero. Existen por tanto tres tipos
de enteros: “int”, “short int” (que se puede abreviar como “short”), y “long int” (que
se puede abreviar como “long”).
 El lenguaje C no define tamaños fijos para sus tipos de datos básicos. Lo único que
garantiza es que un short int tiene un tamaño menor o igual que un int y este a su
vez un tamaño menor o igual a un long int. Esta característica del lenguaje ha
complicado la creación de programas que sean compatibles entre varias
plataformas.
 “unsigned”: define un número natural (mayor o igual a cero).

Letras y cadenas

Las variables de tipo letra se declaran como “char”. Para referirse a una letra se rodea de
comillas simples: 'M'. Como las letras se representan internamente como números, el
lenguaje C permite realizar operaciones aritméticas como 'M' + 25.

Las cadenas de texto o strings son simplemente tablas de “char”. Las funciones de
biblioteca para manipular estas cadenas asumen que el último byte tiene valor cero. Las
cadenas de texto se escriben en el programa rodeadas de dobles comillas y contienen el
valor cero al final.

Números reales

Los números reales se definen con “float” o “double”. La diferencia entre ambas es la
precisión que ofrece su representación interna. Hay un número infinito de reales, pero se
representan con un número finito de bits. A mayor número de bits, mayor número de reales
se representan, y, por tanto, mayor precisión. Los reales definidos con “double” tienen un
tamaño doble a los definidos con “float”. Al igual que en el caso de los enteros, el tamaño
de estas representaciones varía de una plataforma a otra.

Algunas plataformas ofrecen números reales con tamaño mayor al “double” que se definen
como “long double”. Los tamaños típicos para los tipos “float”, “double” y “long double”
son 4, 8 y 12 bytes respectivamente.
Operadores de C:

Los operadores de C son un subconjunto de los operadores integrados de C++.

Hay tres tipos de operadores. Una expresión unaria consta de un operador unario seguido
de un operando, o bien la palabra clave sizeof o _Alignof seguida de una expresión. La
expresión puede ser el nombre de una variable o una expresión de conversión. Si la
expresión es una expresión de conversión, se debe incluir entre paréntesis. Una expresión
binaria consta de dos operandos unidos por un operador binario. Una expresión ternaria
consta de tres operandos unidos por el operador de expresión condicional.

C incluye los operadores unarios siguientes:

SIMBOLO NOMBRE
-~! Operadores de negación y complemento
*& Operadores de direccionamiento indirecto
y address-of
_Alignof Operador de alineación
sizeof Operador de tamaño
+ Operador unario más
++ -- Operadores unarios de incremento y
decremento
Los operadores binarios se asocian de izquierda a derecha. El lenguaje C proporciona los
operadores binarios siguientes

SIMBOLO NOMBRE
*/% Operadores de multiplicación
+- Operadores aditivos
<< >> Operadores de desplazamiento
< > <= >= == != Operadores relacionales
&|^ Operadores bit a bit
&& | | Operadores lógicos
, Operador de evaluación secuencial

El operador base (:>), compatible con las versiones anteriores del compilador de C de 16
bits de Microsoft, se describe en Resumen de la sintaxis de lenguaje C.

El operador de expresión condicional tiene menos prioridad que las expresiones binarias y
se diferencia de ellas en que es asociativo a la derecha.

Las expresiones con operadores también incluyen expresiones de asignación, que usan
operadores de asignación unarios o binarios. Los operadores de asignación unarios son los
operadores de incremento ( ++ ) y decremento ( -- ); los operadores de asignación binarios
son el operador de asignación simple ( = ) y los operadores de asignación compuesta. Cada
operador de asignación compuesta es una combinación de otro operador binario con el
operador de asignación simple.
Ventajas y Desventajas

Ventajas:

1. Es un lenguaje potente y eficiente, permitiendo obtener programas rápidos y


compactos.
2. Proporciona un completo control de cuanto sucede en el interior del ordenador.
3. Permite una amplia libertad de organización del trabajo.

Desventajas:

1. Es más complicado de aprender que otros lenguajes de programación como por


ejemplo el Pascal.
2. Requiere una cierta experiencia para poder sacarle el máximo rendimiento.
3. Sin disciplina es difícil mantener el control del programa.

You might also like