Вы находитесь на странице: 1из 52

UNIVERSIDAD CATÓLICA SANTO TORIBIO DE MOGROVEJO

FACULTAD DE INGENIERÍA
ESCUELA DE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN

Asignatura

Metodología del Trabajo


Intelectual
Tema

Lenguajes de Programación

Autor : Vargas Carrasco Luis Lizandro

Profesor : Lic. Arrasco Alegre Jorge Luis

Ciclo : I

Chiclayo, 26 de Noviembre del 2008


DEDICATORIA

Esta monografía está dedicada especialmente a mis padres y familiares, que


siempre me brindan su apoyo, y a mi tío por brindarme su ayuda y darme la
oportunidad de sobresalir y ser una persona triunfadora en el futuro.
AGRADECIMIENTO

Agradezco a:

• Liliana Mairena Fox, encargada de la hemeroteca, por ayudarme en la


búsqueda de mi material bibliográfico.

• Fernando Gonzáles Vásquez y amigos que me ayudaron en todo este


transcurso e hicieron de mi investigación la más divertida.
SUMARIO
DEDICATORIA
AGRADECIMIENTO
SUMARIO
INTRODUCCIÓN
CAPITULO I: Teoría de los Lenguajes.
1.1.- Programa de computadora
1.1.1.- Objetivos
1.2.-Lenguaje de Programación
1.3.-Historia de Lenguaje de Programación.
1.4.- ¿Por qué estudiar Lenguaje de Programación?
1.5.- Desarrollo de los primeros Lenguajes
1.5.1.- Lenguajes bandos a los cálculos numéricos.
1.5.2.- Lenguaje par Negocios.
1.5.3.- Lenguaje para Inteligencia Artificial
1.5.4.-Lenguaje para Sistemas
1.6.- Implementación de un Lenguaje
1.7.- El software (programas).
1.8.-Traductores de lenguaje.
1.8.1.- Interpretes.
1.8.2.- Compradores.
1.8.3.- Ensambladores.
1.8.4.- Preprocesadores.
1.9.-Tipos de Lenguajes.
1.9.1.-Lenguaje Maquina.
1.9.2.-Lenguaje de Bajo Nivel.
1.9.3.-Lenguaje de Alto Nivel.
CAPITULO II: Los Lenguajes
2.1.- Lenguajes Simples de Procedimientos
2.1.1.- Fortran
2.1.1.1.- Historia
2.1.1.2.- Breve perspectiva del Lenguaje
2.1.2.- Lenguaje C
2.1.2.1.- Historia
2.1.2.2.- Breve perspectiva del Lenguaje
2.2.- Lenguajes de Procedimiento
2.2.1.- Pascal
2.2.1.1.- Historia
2.2.1.2.- Breve perspectiva del Lenguaje
2.3.- Lenguajes con Base en Objetos
2.3.1.- ADA
2.3.1.1.- Historia
2.3.1.2.- Breve perspectiva del Lenguaje
2.3.2.- C++
2.3.2.1 Historia
2.3.2.2.- Breve perspectiva del Lenguaje
2.3.3.- Smalltalk
2.3.3.1 Historia
2.3.3.2.- Breve perspectiva del Lenguaje
2.4.- Lenguajes Funcionales
2.4.1.- LISP
2.4.1.1 Historia
2.4.1.2.- Breve perspectiva del Lenguaje
2.4.2.- ML
2.4.2.1 Historia
2.4.2.2.- Breve perspectiva del Lenguaje
2.5.- Lenguaje de Programación Lógica
2.5.1.- Prolog
2.3.2.1 Historia.
2.3.2.2.- Breve perspectiva del Lenguaje.
CAPÍTULO III: Generalidades de los Lenguajes
3.1.- Identificadores
3.2.- Variables y Constantes
3.2.1.- Variables
3.2.2.- Constantes
3.3. - Entrada y salida de valores
3.3.1.- Función printf
3.3.2.- Función scanf
3.4.- Expresiones
3.4.1.- Operadores de Asignación
3.4.2.- Operadores Aritméticos
3.4.3.- Operadores Relacionales
3.4.4.- Operadores Lógicos
3.4.5.- Prioridad de Operadores
CAPITULO IV: Aplicación Práctica
4.2.- Explicación del programa
4.1.- Aplicación de un programa
CONCLUSIONES
BIBLIOGRAFÍA
ANEXOS
Anexos 01
Anexos 02
INDICE
INTRODUCCIÓN

La presente monografía de contenido y distribución de los capítulos será de


gran utilidad para aquellas personas que por primera vez se sienten atraídos por la
tecnología y sus funciones, que conforme pasa los años va evolucionando, así como el
caso de las computadoras, sus programas y sus diferentes tipos de lenguajes de
programación, que hace posible la ejecución de diferentes tipos de tareas para un
usuario.

Estudiar los lenguajes de programación es importante porque nos


permite ejecutar o dar órdenes a una computadora para el desarrollo de un
problema en específico, el desarrollo de un programa es útil para el manejo de
una empresa ya que por medio de las computadoras facilita el desarrollo de un
trabajo específico.

En el Capítulo I: daremos a conocer sobre los programas de una


computadora y sus objetivos, también daremos a conocer sobre los lenguajes,
como se fueron desarrollando los primeros lenguajes y cómo podemos realizar
una buena implementación para el desarrollo de un buen lenguaje, también
daremos a conocer por qué medio se pueden traducir un programa.

En el Capítulo II: hablaremos sobre los diferentes lenguajes de


programación, como los lenguajes simples, estructurados, con base a objetos,
funcionales o de programación lógica, daremos a conocer un poco de ellos por
medio de unas breves historias sobre cada lenguaje que se desarrolla en cada
uno de esos ámbitos.

En el Capítulo III: aplicaremos el desarrollo de un programa en lenguaje


“C” como un ejemplo, y explicaremos paso a paso lo más entendible que se
pueda.

A continuación empezare con el desarrollo de la presente monografía


que está realizada para aquellas personas que les gusta la ingeniería de
sistemas y que por primera vez la van a conocer.
Capitulo I
Teoría de los Lenguajes
1.1.- Programa de Computadora

Se llama programa de computadora, a la elaboración de un conjunto concreto


de instrucciones que una computadora pueda ejecutar. Un programa es una secuencia
no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un
problema. Un programa de computadora se escribe en lenguaje de programación,
aunque también se puede escribir directamente en lenguaje maquina, pero en este
caso la dificultad es mayor. (Xhafa, et al 2005).

1.1.1.- Objetivos:

Según Xhafa, et al 2005, la programación de computadora debe seguir


tres objetivos fundamentales:

Corrección:
Un programa es correcto si hace lo que debe hacer. Cuando el código
del programa ya está escrito y probado se debe buscar errores, y si hay
corregirlos.

Eficiencia:
Normalmente al hablar de eficiencia se suele hacer referencia al
consumo de tiempo y/o memoria, debe consumirse la menor cantidad
de recursos posibles.

Claridad:
Es importante que el programa sea lo más claro y legible posible para
facilitar al máximo el mantenimiento posterior del software.

1.2.- Lenguaje de Programación

Un lenguaje de programación es una técnica estándar de comunicación que


permite expresar las instrucciones que han de ser ejecutadas en una computadora.
Consiste en un conjunto de reglas sintácticas y semánticas que definen un programa
informático. (wikipedia.org).
Un lenguaje de programación permite a un programador especificar de manera
precisa: sobre qué datos una computadora debe operar, cómo deben ser estos
almacenados y transmitidos. (Stroustrup Bjame 2002).
Según Joyanes (2003), los Lenguajes de Programación sirven para escribir
programas que permitan la comunicación de usuario/maquina.
El propósito de lenguaje de computadora, también permite a las personas escribir un
lenguaje que sea mas a las características humanas que se puedan traducir al
lenguaje maquina.
Un lenguaje de programación sirve para dos propósitos relacionados:
Sirva como vínculo para que el programador especifique las oraciones a ejecutas, y
ofrece un conjunto de conceptos para que el programador utilice cuando piense en lo
que puede hacerse. (Stroustrup Bjame 2002).

1.3.- Historia de los Lenguajes de Programación.

Según Joyanes (2003). La Historia de la informática y la computación se ha


caracterizado fundamentalmente en la existencia de centenares de Lenguajes, solo
unas decenas escasas han tenido un impacto significativo y unos pocos son los
utilizados en la industria de los negocios y la ciencia.
Los Lenguajes de Programación nacieron a finales de los cincuenta y primeros años
de los sesenta, tales como COBOL, FORTRAN, BASIC, LOGO, llamados como
Lenguajes ensambladores, en la década de los setenta y primeros años de los
ochenta aparecieron nuevos lenguajes como PASCAL, C Y ADA desplazando a
ALGOL y BASIC. A principios de los ochenta apareció C++como lenguaje imperativo,
en 1995 se presentó oficialmente por el constructor Sum el lenguaje JAVA un lenguaje
orientado a objetos. En el año 2000 Microsoft presentó C#.
Los diseños y métodos de implementación han evolucionado de manera
continua desde que aparecieron los lenguajes de alto nivel en la década de 1950;
ADA, C, PASCAL, PROLOG y SMALTALK datan de los años setenta, y C++ y ML de
los ochenta. (Pratt y Zelkowitz 2004).

1.4.- ¿Porque Estudiar Lenguaje de Programación?

Muchos Ingenieros solo trabajan con un tipo de lenguaje de programación,


seria bueno aprender por lo menos dos lenguajes de programación, así le resultaría
mucho más fácil poder desarrollar los programas con mucha mejor facilidad y
entendimiento.
1.5.- Desarrollo de los Primeros Lenguajes.

Según Pratt y Zelkowitz (2004). Los define así:

1.5.1.-Lenguajes basados en el cálculo numérico.

A principios de los años cincuenta comenzaron a aparecer notaciones


simbólicas. Grace Hopper encabezó un grupo en UNIVAC par desarrollar el
lenguaje A-0, y Jhon Backus desarrolló speedcoding para la IBM 701. Ambos
se proyectaron para compilar expresiones aritméticas sencillas en un lenguaje
maquina ejecutable.
El verdadero avance tuvo lugar de 1955 a 1957, cuando Backus encabezó un
equipo par desarrollar FORTRAN, los datos de FORTRAN se orientaban en
entorno a cálculos numéricos.

1.5.2.-Lenguajes para negocios.

Grace Hopper encabezó un grupo para desarrollar FLOWMATIC en


1955. La meta era desarrollar aplicaciones de negocios usando una forma de
texto parecido al inglés. En 1959 se desarrolló el GBL y en 1960 el COBOL.

1.5.3.-Lenguaje para Inteligencia Artificial.

Se inició en los años cincuenta con IPL de la Rand Corporation. El IPL-


V se conocía en forma bastante amplia pero su uso estaba limitado por su
diseño de bajo nivel.
El avance importante ocurrió cuando Jonh McCarthy, del MIT diseñó LISP
(procesamiento de lista) para la IBM donde los juegos era un campo de prueba.

1.5.4.-Lenguajes para Sistemas.

Se diseñaron muchos lenguajes de programación para sistemas, como


CPL y BCPL, pero nunca se usaron en forma amplia. El lenguaje C cambió
todo eso con el desarrollo de un entorno competitivo para UNIX escritos
principalmente en C durante los primeros años de la década de 1970, se a
demostrado la eficiencia de lenguaje de alto nivel en este entorno, así como en
otros
1.6.- Implementación de un Lenguaje.

Según Pratt y Zelkowitz (2004). Hay 6 razones primordiales para la


implementación de lenguaje de programación:

1. Mejorar la habilidad para el desarrollo de algoritmos; para que nos permita


la implementación directa de algoritmos elegantes y eficientes.
2. Mejorar l uso del lenguaje de programación disponible; a través del
entendimiento de cómo se implementan las características del lenguaje que
uno usa.
3. Acrecentar el propio vocabulario con construcciones útiles sobre
programación; el programador debe aportar su propia implementación de la
construcción en términos de los elementos primitivos que efectivamente
proporciona el lenguaje
4. Hacer posible una mejor elección del lenguaje de programación; un
conocimiento de diversos lenguajes puede permitir la elección de un lenguaje
que sea el adecuado para el proyecto particular, con lo cual se reduce el
esfuerzo d codificación requerida.
5. Facilitar el aprendizaje de un nuevo lenguaje; un conocimiento de diversas
construcciones de lenguajes de programación y técnicas de ejecución permiten
al programador un nuevo lenguaje de programación con más facilidad cuando
ello es necesario.
6. Facilitar el diseño de un nuevo lenguaje; este aspecto del diseño de
programación se suele simplificar si el programador esta familiarizado con
diversas construcciones y métodos de implementación de lenguajes de
programación ordinarios

1.7.- El Software (Programas).

El Software del Sistema:

Según Joyanes (2003). Es el conjunto de programas indispensable


para que la maquina funcione, estos programas son el sistema operativo, los
editores de texto, los compiladores/interpretes y los programas de
utilidad.
Unos de los programas más importantes es el Sistema Operativo,
que sirve para facilitar la escritura y uso de sus propios programas.
Un Sistema Operativo permite utilizar el hardware y comunicarse con el resto
del software del sistema

1.8.- Traductores de Lenguajes de Programación.

Según Joyanes (2003). Los traductores de Lenguajes son programas que


traducen a su vez los programas fuentes escritos en lenguaje de alto nivel a código
maquina, estos son:

 INTERPRETES.

 COMPILADORES.

 ENSAMBLADORES

 PREPROCESADORES

1.8.1.- INTERPRETES:

El objetivo de un intérprete es procesar una a una las


instrucciones de un programa escrito en un lenguaje de alto nivel. Para
cada instrucción se verifica la sintaxis, se traduce a código maquina y
finalmente se ejecuta. Es decir, que la traducción y la ejecución se
realizan como una sola operación. (Peña Basurto 2000)

El intérprete elimina la necesidad de realizar una corrida de


compilación después de cada modificación del programa cuando se
quiere agregar funciones o corregir errores. (Wikipedia.org).

Programas Traducción y
Interprete Ejecución
Fuente línea a línea
1.8.2.- COMPILADORES:

Según Joyanes (2003). Se encarga de traducir un programa de


alto nivel a lenguaje maquina y almacena el resultado en otro archivo
llamado código objeto.

Según Wikipedia. Los compiladores son aquellos cuya función


es traducir un programa escrito en un determinado lenguaje a un idioma
que la computadora entienda (lenguaje maquina con código binario).
Al usar un lenguaje compilado el programa nunca se ejecuta mientras
haya errores, sino hasta luego d haber compilado el programa, ya no
aparecen errores en el código.

Programas Programa
Compilador
Fuente. Objeto.

1.8.3.- ENSAMBLADORES

Es un tipo de traductor que convierte programas escritos en lenguaje


ensamblador en programas escritos en código máquina.
(teleformacion. edu).

1.8.4.- PREPROCESADORES

Traduce un lenguaje de alto nivel a otro, cuando el primero no puede


pasar a lenguaje máquina directamente (teleformacion. edu)

1.9.- Tipos de Lenguaje

1.9.1.- Lenguaje Maquina:

Según Wikipedia. Están escritas en lenguajes inteligibles por la


maquina, ya que sus instrucciones son cadenas binarias (0 y 1). Da la
posibilidad de cargar sin necesidad de traducción posterior loa que supone una
velocidad de ejecución superior, solo que con poca fiabilidad y dificultad de
verificar y poner a punto los programas.
Según Joyanes (2003). Conocido como código binario.
Las instrucciones del lenguaje maquina dependen del hardware de la
computadora y, por tanto difieren de una computadora a otra.
Sus inconvenientes son:
• Dificultad y lentitud en la codificación.
• Poca fiabilidad.
• Dificultad grande de verificar y poner a punto los programas.

1.9.2.- Lenguaje de Bajo Nivel

Son lenguajes de programación de se acercan al funcionamiento de una


computadora. (Wikipedia.org).
Son mas fáciles de utilizar que los lenguajes maquinas, pero al igual que
ellos dependen de la maquina en particular. El lenguaje de bajo nivel por
excelencia es el ensamblador. (Joyanes Luis 2004).

1.9.3.- Lenguaje de Alto Nivel

Según Wikipedia, son fáciles de aprender por que están formados por
elementos de lenguaje natural.
Según Joyanes (2004), son los más utilizados por los programadores.
Están diseñadas para que las personas escriban y entiendan los programas de
un modo mucho más fácil que los lenguajes maquinan y ensamblador,
presentan las siguientes ventajas:

• El tiempo de formación de los programadores es relativamente corto


comparado con otros lenguajes.
• La escritura d programas se basa en reglas sintácticas similares a
los lenguajes humanos.
• Las modificaciones y puestas a punto a los programas son más
fáciles.
• Reducción del costo de programas.
• Transportabilidad.
Capitulo II

Los Lenguajes
2.1.- Lenguajes Simples de Procedimientos

Estos lenguajes se componen de una serie de procedimientos (subprogramas,


funciones o subrutinas) que se ejecutan cuando se les llama. Cada procedimiento
consiste en una serie de enunciados, donde cada enunciado manipula datos que
pueden ser locales al procedimiento. Los datos locales par cada procedimiento se
guardan en un registro de activación asociado con este procedimiento, y los datos
guardados en estos registros de activación tienen de manera habitual tipos de datos
relativamente simples, como entro, reales, de caracteres o boléanos. Fortran y C
fueron proyectados para eficiencia en tiempo de ejecución. Aunque desempeñaron
papeles muy diferentes, tienen características similares en cuanto a computadora
virtual y ejecución. (Pratt y Zelkowitz 2004).

2.1.1.- Fortran

Fortran es el lenguaje más popular entre los científicos e ingenieros


(actualmente se perfilan a F90). Es un lenguaje diseñado para aplicaciones
matemáticas y de cómputo. Guilmer González (2008)

El Fortran es un lenguaje que se usa ampliamente para el cómputo


científico y de ingeniería. Anteriormente el Fortran se caracterizaba por
asignación estática de memoria sin necesidad de asignación de registros d
activación en tiempo de ejecución. Sin embargo, el Fortran 90 introduce
estructuras de control de enunciados múltiples, alcances anidados, tipos,
recursion, arreglos dinámicos y apuntadores. (Pratt y Zelkowitz 2004).

2.1.1.1.- Historia

Según Pratt y Zelkowitz (2004), el Fortran fue el primer lenguaje de


programación de alto nivel en alcanzar un uso amplio. Fue desarrollado
inicialmente en 1957 por la IBM para ejecutarse en la computadora IBM 704. El
diseño de las primeras versiones de Fortran estaba fuertemente orientado a
proporcionar eficiencia de ejecución. La primera definición estándar del
lenguaje fue adoptada en 1966, y se hizo una revisión importante de este
estándar en los años setenta, la cual condujo a Fortran 77, que continuo con la
tradición del patrón original al permitir que todos los datos se asignaran de
manera estática. La revisión la revisión actual del estándar, el Fortran 90,
cambia radicalmente el foco de Fortran al permitir datos dinámicos. Además,
agrega los conceptos de obsolencia y desaprobado como indicaciones de
características que se puedan omitir en una futura revisión de este estándar.
FORTRAN es un acrónimo de FORmula TRANslator (Traductor de
Fórmulas), es el lenguaje de programación más antiguo que fue desarrollado
por John Backus para IBM a finales de los años 50. FORTRAN fue diseñado
para su uso por matemáticos, ingenieros y científicos en general y sigue siendo
de gran importancia en estos campos. A lo largo de estos 40 años han surgido
varias versiones de FORTRAN; las más comúnmente utilizadas son FORTRAN
77 y 90, (Cáceres Gonzáles 1986)

2.1.1.2.- Breve Perspectiva del Lenguaje

Al analizar Fortran podemos casi considerar que Fortran 77 y Fortran 90


son lenguajes distintos. El Fortran 90 incorporan casi todas las características
modernas de datos y control, de las que carece el Fortran clásico. Fortran 77
incorporó ciertas estructuras de control modernas (por ejemplo la condicional
IF…THEN…ELSE) y el Fortran 90 amplió este concepto al grado de que ahora
es posible escribir programas en Fortran sin enunciados GOTO. Un programa
en Fortran se compone de un programa principal y un conjunto de
subprogramas, cada uno de los cuales se compila por separado de todos los
demás. Cada subprograma se compila en un segmento de código y registros
de activación asignados en forma estadística. (Pratt y Zelkowitz 2004).

2.1.2.- Lenguaje C

Según Pratt y Zelkowitz (2004), C es un lenguaje desarrollado en 1972,


esta relacionado con ALGOL y PASCAL en cuanto a estilo y con la inclusión de
atributos de IP/L. Aunque es un lenguaje de programación de usos múltiples,
su sintaxis compacta y sus características de ejecución eficiente lo han vuelto
popular como lenguaje de programación de sistemas.

2.1.2.1.- Historia

El lenguaje de programación C fue desarrollado por Dennos Ritchie en


los laboratorios BELL de la empresa de comunicaciones AT&T, en 1972. C fue
creado inicialmente con un propósito muy concreto: el diseño del sistema
operativo UNIX. Sin embargo pronto se reveló como un lenguaje muy potente y
flexible, lo que provocó que su uso se extendiese rápidamente, incluso fuera de
los laboratorios BELL. De esta forma, programadores de todo el mundo
empezaron a usar el lenguaje C para escribir programas de todo tipo. (Peña
Basurto y Cela Espín 2000).

2.1.2.2.- Breve perspectiva del lenguaje

Según Pratt y Zelkowitz (2004), el lenguaje C se trata de un lenguaje


relativamente pequeño con un número limitado de estructura de control y de
características. Puesto que casi todos los compiladores de C incluyen
enunciados de procesador #, la mayoría de los usuarios no se dan cuenta de
que en realidad estos no forman parte del lenguaje C. El lenguaje C tiene
apuntadores, y existe una equivalencia entre arreglos y apuntadores, lo que
permiten que los programas utilicen el método de acceso más rápido. C tiene
un conjunto grande de operadores aritméticos que dan origen a programas muy
eficientes y a veces muy conocidas.

2.2.- Lenguajes de Procedimientos Estructurado en Bloques

La programación estructurada, es un tipo de programación con el cual el


programador elabora un programa, cuya estructura es la más clara posible. La
programación estructurada ofrece muchas ventajas sobre la programación secuencial:
El código de programación estructurada es más fácil de leer y mas conversable; el
código procesal es más flexible. La programación estructurada permite la practica más
fácil del buen diseño de programa. (Wikipedia.org)

2.2.1.- Pascal

El lenguaje Pascal fue proyectado por Niklaus Wirth en el periodo que


va de 1968 a 1970 para superar muchas de las diferencias del lenguaje
ALGOL más antiguo. Se le dio ese nombre en honor de matemático francés
Blaise Pascal, quien desarrollo una calculadora digital en 1642. Desde finales
de la década de 1970 hasta los últimos años ochenta, fue el lenguaje
dominante en los cursos de iniciación a la ciencia de la computación. (Pratt y
Zelkowitz 2004).
2.2.1.1.- Historia

El lenguaje Pascal se creó en la década de los 70 con el objetivo de


disponer de un lenguaje de programación de alto nivel y propósito general
orientado hacia los nuevos conceptos de programación, desarrollado por el
profesor suizo en ciencias de la computación Niklaus Wirth como un lenguaje
para la enseñanza de la programación de modo disciplinado, que fuese fácil de
aprender y con la complejidad suficiente para permitir una correcta
programación de los programadores futuros. Su nombre proviene en honor a
BLAISE PASCAL, matemático e inventor de la maquina analítica (primer
concepto de computador). 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 construidos y están
disponibles para diferentes maquinas. Turbo Pascal es el compilador
desarrollado más importante entre los existentes. (Trejo Patricia 2007).

2.2.1.2.- Breve perspectiva del lenguaje

Pascal es un lenguaje con una estructura en tiempo de ejecución muy


parecida a la de C, sin embargo, también tiene la capacidad para declarar
procedimientos locales internos y crear una jerarquía completa. Pascal tiene un
conjunto bastante grande de tipos de datos primitivos y estructurados: enteros,
reales, de caracteres, enunciados boleanos, arreglos, registro de archivo
secuencial y una forma limitada de conjuntos. (Pratt y Zelkowitz 2004).
Es un lenguaje estructurado compilado basado en ALGOL, al cual
añade tipos de datos y simplifica su sintaxis. (Trejo Patricia 2007).

2.3.- Lenguajes con base en objetos

La programación orientada a objetos permite organizar programas de forma


parecida, como los objetos del mundo real se organiza, es una forma de concebir un
programa de computadora. Modela una aplicación como una colección de objetos que
se comunican entre sí para alcanzar una meta común. Tiene sus orígenes en la
simulación, de hecho el primer lenguaje orientado a objetos fue SIMULA, esto se debe
a que en simulación generalmente se modela una aplicación como un conjunto de
entidades. (Trejo Patricia 2007).
2.3.1.- ADA

Aunque originalmente fue diseñada para aplicaciones militares, ADA es


un lenguaje para usos generales aplicable a la solución de casi todos los
problemas de programación. Tiene una estructura en bloques y un mecanismo
de tipos de datos similares a PASCAL. Suministra una forma más segura de
encapsulamiento de datos que PASCAL. El lenguaje ADA es único en su
género, porque se convirtió en un estándar internacional antes de que
existieran traductores funcionales para lenguaje. (Pratt y Zelkowitz 2004).

ADA es un lenguaje de programación en cuyo diseño se complementa


la concurrencia desde su concepción. Durante el desarrollo de aplicaciones en
las que el control esta distribuido a lo largo de distintas entidades, se pueden
programar procesos independientes que se comunican y sincronizan, en forma
muy clara.

2.3.1.1.- Historia

La historia de ADA comienza en 1974 cuando el Ministerio de


Defensa de los Estados Unidos llevó a cabo un estudio de los lenguajes
de programación utilizados en sus proyectos y concluyó que COBOL
era un estándar para procesador de datos y FORTRAN para cálculos
científicos. sin embargo, la situación con respecto a los sistemas
empotrados era diferente: el número de lenguajes en uso era enorme.
ante esta falta de estandarización que provocaba gastos inútiles, se
propuso el uso de un único lenguaje para estos sistemas. el primer paso
del desarrollo fue la redacción el 1975 de un documento que perfilaba
los requisitos que debía satisfacer el lenguaje. Después de varias
modificaciones, en 1976 se produjo una versión de la que ningún
lenguaje existente cumplía todos sus requisitos, así pues, el paso
siguiente fue la aceptación de propuestas de diversos contratistas, de
los que se eligieron cuatro de ellos. El siguiente paso fue el refinamiento
de las propuestas elegidas y se revisaron las especificaciones para dar
la versión definitiva conocida como STEELMAN. La elección final del
lenguaje se hiso en 1979 cuando se declaró vencedor el desarrollo de
Honeywell Bull. se decidió que se llamaría ADA en honor a Augusta Ada
Byron, condesa de Lovelace (1815-1852), hija de Lord Byron, quien fue
ayudante y patrocinadora de Charles Babbage trabajando en su
máquina analítica mecánica, de hecho, está considerada por muchos
como el primer programador de la historia. en 1983, se publicó el primer
estándar ISO de ADA, el conocido manual de referencia de ADA y ARM.
La revisión del lenguaje vino en 1995, marcando las don versiones que
existen hasta el momento. ADA 83 y ADA 95. Actualmente se está
trabajando en una próxima versión que se llamará ADA 2005. El
movimiento de defensa y los ministerios equivalentes de varios países
de la OTAN exigían el uso de éste lenguaje en los proyectos que
controlaban (el ADA mandate). La obligatoriedad en el caso de Estados
Unidos terminó en 1997 cuando el ministerio de defensa comenzó a
usar productos COTS (Commercial off the Shelf). (Wikipedia.org)

2.3.1.2.- Breve perspectiva del lenguaje

El ADA está pensado para permitir la construcción de programas


grandes por equipos de programadores. Un programa ADA se proyecta
ordinariamente como una colección de componentes muy grandes de
software llamadas paquetes, donde cada uno presenta un tipo de dato
abstracto o conjunto de objetos de datos que se comparten entre
subprogramas. Ada suministra una amplia gama de tipos de datos
integrados, entre ellos: enteros, reales, enumeraciones booleanos,
arreglos, registros, cadenas de caracteres y apuntadores, el mecanismo
de encapsulamiento permite volver invisible la estructura interna de
objetos de datos y subprogramas, con lo que se hace valer una
verdadera abstracción tanto de datos como de operaciones. (Pratt y
Zelkowitz 2004).
ADA es un lenguaje de programación estructurado y fuertemente
tipiado 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++.

2.3.2.- C++

C++ es un lenguaje para escribir aplicaciones paralelas distribuidas por


lo general se da crédito a una sola persona por el desarrollo de C++. A partir
del C, Bjame Stroustrup desarrolló un eficaz lenguaje que conservó la eficiencia
del C pero incorporó el poder de la herencia de objetos. (Pratt y Zelkowitz
2004).

2.3.2.1.- Historia

el lenguaje de programación C++ fue creado en los años


ochenta por Bjame Stroustrup basado en el lenguaje C. el C++ es un
lenguaje orientado a objetos al que se le añadieron características y
cualidades de las que carecía el lenguaje C. El C++ depende mucho del
hardware, es uno de los lenguajes más potente porque nos permite
programar a alto y a bajo nivel, es complicado porque debemos hacerlo
nosotros mismos casi todo, el nombre fue propuesto por Rick Masciatti.
C++ es heredero directo del lenguaje C que a su vez deriva del lenguaje
B. C se mantiene como un subconjunto del lenguaje C++. otra fuente de
inspiración de C++, como señala su autor Bjame Stroustrup fue SIMULA
67, del que tomó el concepto de clase (con clases derivadas y funciones
virtuales). (Joyanes 2004).

2.3.2.2.-Breve perspectiva del lenguaje

Según Pratt y Zelkowitz (2004), el diseño de C++ tuvo como guía tres
principios:

o El uso de clases no daría por resultado que los programas se ejecutaran


más lentamente que los programas que no emplean clases.
o Para asegurar que la adición de clases no habría de ocasionar la
omisión de otras características necesarias, los programas de C
deberán ejecutarse como un subconjunto en C++.
o No se deberán incorporar al lenguaje ineficiencias en tiempo de
ejecución.

Los tres objetivos se cumplieron en gran medida casi todos los


programas en C pueden ser compilados por un compilador C++.
2.3.3.- Smalltalk

Fue proyectado como un sistema total y no simplemente como una


notación para desarrollar programas; y la orientación a objetos fue un concepto
primitivo integrado, en oposición a la adición de herencia a los mecanismos de
tipos ya existentes en lenguajes como C++ y ADA. El uso estaba limitado
originalmente por la falta de implementaciones disponibles. (Pratt y Zelkowitz
2004).

2.3.3.1.-Historia

Según Pratt y Zelkowitz (2004), Smalltalk fue desarrollado por


Alan Kay en el Palo Alto Research Center (PARC) de los serosos
principios de los años setenta, Su proyecto, Dynabook, estaba
encaminado a un ambiente total de cómputo personal. Esto ocurría
durante la edad de oro de la computación en el PARC de Seros con el
desarrollo de las PC alto y Star. En 1972, Dan Ingaes desarrolló la
primera implementación de Smalltalk.-72, la primera Ingalls de la
primera publicación practica del lenguaje. El nombre Smalltalk se refiere
a un conjunto de lenguajes altamente relacionados entre sí y
compatibles en muy alto grado. Inicialmente, Smalltalk requerida el
almacenamiento total de cómputo de una computadora especial para
ejecutarse. Por esa razón su difusión ha sido más bien limitada. Sin
embargo, existen varias implementaciones del sistema para usos
generales, y es fácil instalarlo en muchas clases de máquinas, como las
estaciones de trabajo de UNIX y las PC.

2.3.3.2.-Breve perspectiva del lenguaje

El sistema fue diseñado como un sistema total: lenguaje,


computadora y ambiente de programación. Todo lo que se puede hacer
en Smalltalk es desarrollar una clase como subclase de otras clases y
anexar métodos a cada una de estas clases, los enunciados básicos de
Smalltalk definen asignación y ejecución secuencial. A través de uso de
mensajes, se pueden definir estructura de control muy similar a las
estructuras de if y while. Smalltalk se basa en un modelo de
comunicación, los datos se componen de objetos, y los métodos se
consideran como mensajes que envían a objetos, los componentes en
Smalltalk se encierran entre comillas, como en “En esto es un
comentario”. (Pratt y Zelkowitz 2004).

2.4.-Lenguajes Funcionales

Los lenguajes funcionales de LISP y ML están destinados a programarse en


forma aplicativa. LISP, presenta uno de los primeros lenguajes de programación, fue
diseñado alrededor de 1960 en la misma época que el FORTRAN original, Sus objetos
básicos son átomos y lista se átomos, y la llamada irrecursión de funciones
constituyen los mecanismos básicos de recursión, que tienen el aspecto de C o de
PASCAL, para operar sobre datos numéricos y lista. La diferencia principal de LISP y
ML es que el concepto de tipo es fundamental para el diseño de ML. (Pratt y Zelkowitz
2004).

2.4.1.-LISP

Fue proyectado e implementado por John McCarthy y un grupo de


Massachusetts Institute of Technology alrededor de 1960, El lenguaje se ha llegado a
usar ampliamente en área de inteligencia artificial. Se han desarrollado muchas
versiones de LISP a lo largo de los últimos 30 años, LISP es el único que no esta
estandarizado y dominado por una implementación particular. LISP es diferente de
casi todos los demás lenguajes en varios aspectos. El más notable es la equivalencia
de forma entre programas y datos en el lenguaje la cual permite ejecutar estructuras
de daos como programas y modificar programas como datos. (Pratt y Zelkowitz 2004).

2.4.1.1.-Historia

Según Pratt y Zelkowitz (2004), en el año de 1958 el profesor


John McCarthy del M.I.T (Massachusetts Institute of Technology),
comenzó a desarrollar la teoría de un lenguaje de procesamiento de
lista. En 1959 aparece públicamente la primera implementación llamada
LISP 1.5. En 1960 McCarthy publica una historia acerca de los
fundamentos de LISP que hizo Euclides por la geometría, demostrar
como unos cuantos aportes y una notación para las funciones, es
posible construir un lenguaje de programación completo. Es importante
hacer notar que McCarthy no solo marcó un hito en la historia de los
lenguajes de programación sino que creó un modelo de programación
que ha demostrado ser superior, tanto que podemos decir que en la
actualidad existe grandes modelos de programación el de C y el de
LISP, y podemos notar que los lenguajes de modelo de C trata de
parecerse cada vez mas de LISP.

2.4.1.2.-Breve perspectiva del lenguaje

Los programas de LISP se ejecutan en ambiente interactivo. El


sistema de LISP evalúa cada expresión conforme se introduce e
imprime el resultado en forma automática en la terminal, ordinariamente,
algunas de las expresiones introducidas son definiciones de función.
Las funciones en LISP se define enteramente como expresiones, cada
operador es una función que devuelve un valor y los subprogramas se
escriben como expresiones únicas . los datos en LISP son más bien
registrados y los átomos numéricos son de tipos elementales básicos. el
LISP suministra una amplia variedad de primitivas para la creación, la
destrucción de listas, y las estructuras de control en LISP, son
relativamente sencillas. (Pratt y Zelkowitz 2004).

2.4.2.- ML

Según Pratt y Zelkowitz (2004), es un lenguaje aplicativo con programas


escritos en el estilo de C o PASCAL. sin embargo, es un lenguaje aplicativo con
un concepto avanzado de tipos de datos. ML maneja polimorfismo y, a través
de sus sistemas de tipo maneja abstracciones de datos. El lenguaje es
relativamente compacto en especial si se compara con la definición de un
lenguaje como ADA, sin embargo la capacidad de ampliación de sus tipos le
confiere un gran poder para desarrollar programas complejos. ML a logrado
avances significativos en las comunidades educativas y de investigación en
ciencias de la computación.
2.4.2.1.- Historia

ML por las siglas (Meta Lenguaje), que fue desarrollado por


Robin Miller, junto con otras personas, con un mecanismo como
pruebas formales asistidas por computadoras en el sistema de lógica
para funciones computables de Edimburgo desarrollado a mediado de
los años setenta. Sin embargo también se le encontró utilidad como
lenguaje general para manipulación de símbolos. En 1983 el lenguaje
se rediseñó y se amplió con conceptos de módulos para convertirse en
standard ML. Aunque por el común se implementa como un intérprete,
el ML se puede compilar con relativa facilidad. El uso de ML estándar se
extendió a través de las comunidades dedicadas a la investigación en el
lenguaje de programación durante los años finales de la década de los
años 1980. (Pratt y Zelkowitz 2004).

2.4.2.2.- Breve perspectiva del lenguaje

ML es un lenguaje de tipo estático, tipificación fuerte y ejecución


aplicativa de programas, sin embargo, difiere de otros lenguajes en
cuanto a que el programa no necesita especificar los tipos. al igual que
en LISP un programa en ML se componen de varias definiciones de
función, cada función se tipifica estáticamente y puede devolver valores
de cualquier tipo. ML inconcluye casi todas las características en cuanto
con las clausulas para registro, tipo de datos abstractos y excepciones,
la cual su capacidad de entrada y salida son bastantes limitadas debido
a que sus usuarios principales son investigadores que no necesitan la
capacidad para procesar múltiples bases de datos usando formatos
complejos. (Pratt y Zelkowitz 2004).

2.5.- Lenguaje de programación lógica

La programación lógica consiste en la aplicación del corpus de conocimiento


sobre lógica para el diseño de lenguajes de programación, no debe confundirse con la
disciplina de la lógica computacional. la programación lógica comprende dos
paradigmas de programación: la programación declarativa y la programación funcional.
La programación declarativa, gira en torno al concepto de predicado, o relación entre
elementos. La programación funcional se basa en el concepto de función (que no es
más que la evolución de los predicados), de corte más matemático. (Wikipedia.org)

2.5.1.- PROLOG

Representa el lenguaje principal en la categoría de la programación


lógica. PROLOG no es un lenguaje de programación para uso general, sino
que esta orientado a resolver problemas usando el cálculo del predicado. El
objetivo para PROLOG era proporcionar las especificaciones de una solución y
permitir que la computadora dedujera la secuencia para esa solución, en ves
de especificar un algoritmo para solución de un problema. (Pratt y Zelkowitz
2004).

2.5.1.1.- Historia

El desarrollo de PROLOG se inició en 1970 con Alain


Coulmerauer y Philippe Rousel, quienes estaban interesados en
desarrollar un lenguaje para hacer deducciones a partir del texto. El
nombre corresponde a “PROgramming in LOGice” (Programación en
Lógica). PROLOG fue desarrollado en Marsella, Francia en 1972. La
primera implementación de PROLOG se completó en 1972 usando el
compilador de ALGOL, y los aspectos básicos de lenguaje actual se
concluyeron para 1973. El uso de PROLOG se extendía gradualmente
entre quienes se dedicaban a la programación lógica principalmente por
contacto personal y no a través de una comercialización del producto.

2.5.1.2.- Breve perspectiva del lenguaje

Un programa en PROLOG se compone en una serie de hechos,


relaciones concretas entre objetos de datos y conjunto de reglas, es
decir, un patrón de relaciones entre los objetos de base de datos, un
programa se ejecuta cuando el usuario introduce una pregunta, un
conjunto de términos que deben ser todos ciertos. los hechos y reglas
de la base de datos se usan para determinar cuáles sustituciones de
variables de la pregunta son congruentes con la información de la base
de datos. La ejecución de PROLOG, aunque se basa en la
especificación de predicados operan la forma muy parecida al lenguaje
aplicativo como LISP o ML que el desarrollo de reglas en PROLOG
requiere el mismo “pensamiento recursivo” que se necesita para
desarrollar programas en estos otros lenguajes aplicativos. PROLOG
tiene una sintaxis y una semántica simple puesto que busca relaciones
entre una serie de objetos, la variable y la lista son las estructuras de
datos básicos que se usan. (Pratt y Zelkowitz 2004).
CAPÍTULO III

Generalidades de los Lenguajes


3.1.- Identificadores

Un identificador en un lenguaje de programación es utilizado para referir un


valor constante, una variable, una estructura de datos compleja, o una función dentro
de un programa. Todo identificador está formado por una secuencia de letras,
números y caracteres de subrayado, con la restricción de que siempre debe comenzar
por una letra o un subrayado y que no puede contener espacios en blanco. Cada
compilador fija un máximo para la longitud de los identificadores, siendo habitual un
máximo de 32 caracteres. (Trejo Patricia 2007)

auto double int struct


break else long switch
case enum register typedef
char extern return union
const float short unsigned
continue for signed void
default goto sizeof volatile
do if static while

3.2.- Variables y Constantes

3.2.1.- Variables:

Según Cáceres González (1996), toda variable debe declararse antes


de ser usada por primera vez en el programa. Las sentencias de declaración de
variables indican al compilador que debe reservar cierto espacio en la memoria
del ordenador con el fin de almacenar un dato de tipo elemental o estructurado.
La declaración consiste en dar un nombre significativo a la variable e indicar el
tipo de dato a que corresponden los valores que almacenara.

tipo datos nombre variable;


.
Además, en una sola sentencia pueden declararse varias variables de un
mismo tipo de datos, separando los nombres de las variables mediante comas:

tipo datos nombre variable1, ..., nombre variableN;


Opcionalmente, es posible asignar un valor inicial a las variables en la propia
declaración.

tipo datos nombre variable = valor inicial;

3.2.2.- Constantes:

Constantes Literales:

Es todo valor que aparece directamente en el código fuente,


cada vez que es necesario para una operación, constituye una
constante literal, ejemplo:

int cont = 20;


cont = cont + 3;
Los valores 20 y 3 son constantes literales del tipo de datos entero.
(Xhafa et al 2006)

Constantes Simbólicas:

Según Trejo Patricia (2007), una constante simbólica es una


constante representada mediante un nombre (símbolo) en el programa.
Una constante simbólica se declara una sola vez, indicando el nombre y
el valor que representa.

perimetro = 2 * 3.14 * radio;


area = 3.14 * radio * radio;
#define PI 3.14159

3.3. - Entrada y salida de valores

3.3.1.- Función printf:


Según Peña y Cela (200), el símbolo de porcentaje (%) se usa
como carácter especial de formato. El carácter que sigue a este
símbolo define el formato de un valor (constante, variable o
expresión), por ejemplo;
char ch;
int num;
...
printf( "Esto es un carácter: %cnn", ch );
printf( "Y esto un entero: %dnn", num );

%c para valores de tipo carácter o %d para valores de tipo


entero. El siguiente ejemplo muestra por pantalla el contenido de
una variable de tipo carácter (ch), y una variable entera (num).

3.3.2.- Función scanf:


Es una función para la entrada de valores a una estructura de
datos, y en particular a una variable. Su formato es similar al de
printf. Por ejemplo:

char ch;
int num;
...
scanf(“%c%d", &ch, &num);

Permite introducir desde el teclado un carácter en la variable (ch)


y seguidamente un valor entero en la variable (num).

3.4.- Expresiones:

Una expresión es una fórmula matemática cuya evaluación especifica


un valor. Los elementos que constituyen una expresión son: constantes,
variables y operadores. (Peña y Cela 2000)

3.4.1.- Operadores de Asignación

El operador de asignación permite asignar valores a las variables,


asigna a la variable que está a la izquierda del operador el valor que está a la
derecha, ejemplo:
x = 1; z = 1.35;
Igual (=)
Suma igual (+=)
Resta igual (-=)
Multiplicación igual (*=)
División igual (/=)

3.4.2.- Operadores Aritméticos

Son operadores de muy elevada prioridad y sirven para incrementar una


unidad el valor de la variable a la que afectan:

Unarios Signo negativo -


Incremento ++
Decremento --
Binarios Suma +
Resta -
Multiplicació́n *
División /
Módulo %
%
3.4.3.- Operadores Relacionales

Los operadores relacionales se utilizan principalmente para elaborar


condiciones en las sentencias condicionales e iterativas, estos establecen la
magnitud relativa de dos elementos y son los siguientes: (Trejo Patricia 2007)

Menor que <


Mayor que >
Menor o igual que <=
Mayor o igual que >=
Igual que ==
Distinto que !=

3.4.4.- Operadores Lógicos

Los operadores lógicos se utilizan principalmente en conjunción con los


relacionales para elaborar condiciones complejas en las sentencias
condicionales e iterativas. (Peña y Cela 2000).
Conjunción ´o Y lógico &&
Disyunción u O lógico jj
Negación ´o NO lógico !

3.4.5.- Prioridad de Operadores


CAPITULO IV

Aplicación Práctica
4.1.- Aplicación de un Programa

En este cuarto capítulo realizaremos un programa basado en el Lenguaje C y


después terminado el programa pasaremos a explicar paso a paso lo mas entendible
posible.

Programa en C

Realizaremos un programa donde registre la talla, peso y edad de un


número determinado de personas, para luego determinar cuántas personas son
mayores a 1.70 m. y cuantas personas tienen sobrepeso, es decir mayores a
100 Kg.

Solución del Problema

1 #include<stdio.h>
2 #include<conio.h>
3 #define MAX 4
4 void main()
5 {
6 int i,edad[MAX];
7 float Talla[MAX],Peso[MAX];
8 int CT,CP;
9 clrscr();
10 for(i=0;i<MAX;i++)
11 {
12 printf("Persona %d\n",i+1);
13 printf("Ingrese Edad:\n");
14 scanf("%d",&edad[i]);
15 printf("Ingrese Talla:\n");
16 scanf("%f",&Talla[i]);
17 printf("Ingrese Peso:\n");
18 scanf("%f",&Peso[i]);
19 }
20 CT=0;
21 CP=0;
22 for(i=0;i<MAX;i++)
23 {
24 if(Talla[i]>1.7)
25 CT++;
26 if(Peso[i]>100)
27 CP++;
28 }
29 clrscr();
30 printf("Los mayores a 1.7 m. son: %d\n",CT);
31 printf("La cantidad de personas con sobrepeso son:%d\n",CP);
32 getch();
33 }

4.2.- Explicación del programa

En el renglón 1 y 2, son bibliotecas que se deben usar en el programa.


Renglón 3, MAX, se define una constante entera con valor 4.
Renglón 4, la ejecución principal, con la función void main().
Renglón 5, esta llave inicializa el programa.
Renglón 6, el rango de entero edad se declara con subíndice que va del 0 a 4.
Renglón 7, los arreglos de reales: talla y peso, se declaran con subíndices que van de
0 a 4.
Renglón 8, CT y CO pertenecen a los enteros y son contadores.
Renglón 9, la función de clrscr(); es el de limpiar la pantalla después de haberse
ejecutado el programa.
Renglon10, el enunciado FOR lee e introduce valores sucesivos del arreglo.
Renglón 11, permite la inicialización de FOR.
Renglón 12,13,15,17, solicitan los datos de la persona a registrar.
Renglón 14,16,18, leen los datos registrados por el usuario.
Renglón 19, esta llave concluye el bloque que se inicia desde el Renglón 11.
Renglón 20,21, CT y CP, son acumuladores.
Renglón 22, el enunciado FOR lee e introduce valores sucesivos del arreglo.
Renglón 23, esta llave inicializa lo que se va a ejecutar desde el enunciado FOR.
Renglón 24,26, el enunciado IF se ejecuta siempre y cuando la premisa cumpla con lo
requerido, si no es así sale del bucle y finaliza.
Renglón 25,27, si las condiciones IF son verdaderas entonces CT y CP aumentan de 1
en 1.
Renglón 28, esta llave concluye el bloque que se inicia desde el Renglón 23.
Renglón 29, clrscr(); limpia pantalla.
Renglón 30,31, después de haber concluido de ingresar los datos requeridos por el
programa este muestra los resultados.
Renglón 32, después de haber concluido todo el programa este salta de nuevo al inicio
gracias al getch();.
Renglón 33, fin del programa.
CONCLUSIÓN:

De acuerdo con el estudio de la monografía hemos llegado a la conclusión que:

Los programas nos permiten darle un tipo de ordenes específico a la computadora y


que ellas puedan desarrollarlas, estos programas facilitan la vida laboral de un
trabajador.

El estudio de los lenguajes de programación nos permite relacionarnos con la


computadora y desarrollar programas que se puedan ejecutar en ellas, teniendo en
cuenta los tipos de lenguajes que uno haya estudiado para poder resolver un tipo de
problema específico.

Los diferentes tipos de lenguajes de programación nos facilitan el aprendizaje de otros


lenguajes y así podemos desarrollar un programa más elegante,
BIBLIOGRAFÍA:

Stroustrup, Bjame. 2002. El Lenguaje de Programación C++: Edición Especial.


España, Madrid. Pearson Educación, S.A.

Pratt, Terrence W. y Zelkowitz Marvin, V. eds. 1998. Lenguaje de Programación:


Diseño o Implementación. 3º ed. México. Prentice Hall Hispanoamericana.

Joyanes Aguilar, Luis. 2003. Fundamentos de Programación: Algoritmos,


Estructura de datos y objetos. España, Madrid. McGraw-Hill/Interamericana de
España, S.A.U.

Xhafa, Fatos, Pere-Pau, Vázquez A. Jordi Marco G., Xavier Molinero A., y
Ángela Martín P. eds. 2006. Programación en C++ para ingenieros.
España, Madrid. Thomson Editores Spain Paraninfo. S.A.

Trejo, Patricia. 2007. Programación en Pascal. Valparaíso


Universidad Técnica Federico Santa María.
http//www.google.com.pe/lenguajesdeprogramación/programaciónenpascal.pdf

Cáceres Gonzáles. 1996. Lenguajes de Programación.


Instituto Tecnológico de Monterrey. México.
http//www.google.com.pe/lenguajesdeprogramación.pdf

Peña Basurto, Marco A. y José M, Cela Espín. 2000. Introducción a la programación


en C. España, Barcelona. Edicions UPC
http//www.google.com.pe/lenguajesdeprogramación/introduccionalaprogramaci
onenc.pdf
Anexos:

Anexo 01:
Implementación del programa
Comprobación del programa
Anexo 02:

Vargas carrasco Luis

Historia de los Lenguajes de Programació


Programaci ón.
 Los Lenguajes de Programación nacieron a finales de los cincuenta
y primeros años de los sesenta, tales como COBOL, FORTRAN,
BASIC, LOGO, llamados como Lenguajes ensambladores, en la
década de los setenta y primeros años de los ochenta aparecieron
nuevos lenguajes como PASCAL, C Y ADA desplazando a ALGOL
y BASIC. A principios de los ochenta apareció C++como lenguaje
imperativo, en 1995 se presentó oficialmente por el constructor Sum
el lenguaje JAVA un lenguaje orientado a objetos. En el año 2000
Microsoft presentó C#.
 Los diseños y métodos de implementación han evolucionado de
manera continua desde que aparecieron los lenguajes de alto nivel en
la década de 1950; ADA, C, PASCAL, PROLOG y SMALTALK
datan de los años setenta, y C++ y ML de los ochenta
CAPITULO I

¿Qué
Qué es un Programa?

Se llama programa de computadora, a la elaboración


de un conjunto concreto de instrucciones que una
computadora pueda ejecutar

Objetivos
Correcció
Corrección:
Un programa es correcto si hace lo que debe hacer

Eficiencia:
se suele hacer referencia al consumo de tiempo y/o memoria

Claridad:
Es importante que el programa sea lo más claro y legible posible para facilitar al
máximo el mantenimiento posterior del software
Implementació
Implementación de un Lenguaje
1. Mejorar la habilidad para el desarrollo de algoritmos
2. Mejorar l uso del lenguaje de programación disponible
3. Acrecentar el propio vocabulario con construcciones
útiles sobre programación
4. Hacer posible una mejor elección del lenguaje de
programación
5. Facilitar el aprendizaje de un nuevo lenguaje
6. Facilitar el diseño de un nuevo lenguaje

Traductores de Lenguajes de Programació


Programación

Interpretes: Compiladores:
El objetivo de un Se encarga de traducir un
intérprete es procesar una programa de alto nivel a
a una las instrucciones de lenguaje maquina y
un programa escrito en un almacena el resultado en
lenguaje de alto nivel lo otro archivo llamado
traduce a código maquina código objeto.
y finalmente se ejecuta..
Ensambladores: Preprocesadores:
Es un tipo de traductor Traduce un lenguaje de
que convierte programas alto nivel a otro, cuando
escritos en lenguaje el primero no puede pasar
ensamblador en a lenguaje máquina
programas escritos en directamente.
código máquina.

Tipos de Lenguaje

 Lenguaje Maquina:
Están escritas en lenguajes inteligibles por la maquina, ya que
sus instrucciones son cadenas binarias (0 y 1)
 Lenguaje de Bajo Nivel:
Son lenguajes de programación de se acercan al funcionamiento de
una computadora, son mas fáciles de utilizar.
 Lenguaje de Alto Nivel:
son los más utilizados por los programadores, son fáciles de
aprender por que están formados por elementos de lenguaje natural.
Identificadores:
Un identificador en un lenguaje de programación es
utilizado para referir un valor constante, una variable,
una estructura de datos compleja, o una función dentro de
un programa.
Todo identificador está formado por una secuencia de
letras, números y caracteres de subrayado, con la
restricción de que siempre debe comenzar por una letra o
un subrayado y que no puede contener espacios en blanco

Variables y Constantes
Variables: Constantes:
 Constantes Literales:
Las sentencias de declaración Todo valor que aparece
de variables indican al directamente en el código
compilador que debe reservar fuente cada vez que es
cierto espacio en la memoria necesario para una operación
del ordenador con el fin de constituye una constante
almacenar un dato de tipo literal
elemental o estructurado  Constantes Simbó
Simbólicas:
una constante simbólica es
una constante representada
mediante un nombre (símbolo)
en el programa
Entrada y salida de valores
 Funció
Función printf:  Funció
Función scanf:
scanf
se usa como carácter Es una función para
especial de formato el la entrada de valores a
símbolo de porcentaje (%). una estructura de
El carácter que sigue a
este símbolo define el
datos, y en particular
formato de un valor a una variable. Su
(constante, variable o formato es similar al
expresión), de printf
INDICE

DEDICATORIA
AGRADECIMIENTO
SUMARIO
INTRODUCCIÓN
CAPITULO I: Teoría de los Lenguajes.
1.1.- Programa de computadora 1
1.1.1.- Objetivos 1
1.2.-Lenguaje de Programación 1
1.3.-Historia de Lenguaje de Programación. 2
1.4.- ¿Por qué estudiar Lenguaje de Programación? 2
1.5.- Desarrollo de los primeros Lenguajes 3
1.5.1.- Lenguajes bandos a los cálculos numéricos. 3
1.5.2.- Lenguaje par Negocios. 3
1.5.3.- Lenguaje para Inteligencia Artificial 3
1.5.4.-Lenguaje para Sistemas 3
1.6.- Implementación de un Lenguaje 4
1.7.- El software (programas). 4
1.8.-Traductores de lenguaje. 5
1.8.1.- Interpretes. 5
1.8.2.- Compiladores. 6
1.8.3.- Ensambladores. 6
1.8.4.- Preprocesadores. 6
1.9.-Tipos de Lenguajes. 6
1.9.1.-Lenguaje Maquina. 6
1.9.2.-Lenguaje de Bajo Nivel. 7
1.9.3.-Lenguaje de Alto Nivel. 7
CAPITULO II: Los Lenguajes
2.1.- Lenguajes Simples de Procedimientos 9
2.1.1.- Fortran 9
2.1.1.1.- Historia 9
2.1.1.2.- Breve perspectiva del Lenguaje 10
2.1.2.- Lenguaje C 10
2.1.2.1.- Historia 10
2.1.2.2.- Breve perspectiva del Lenguaje 11
2.2.- Lenguajes de Procedimiento Estructurado en Bloques 11
2.2.1.- Pascal 11
2.2.1.1.- Historia 12
2.2.1.2.- Breve perspectiva del Lenguaje 12
2.3.- Lenguajes con Base en Objetos 12
2.3.1.- ADA 13
2.3.1.1.- Historia 13
2.3.1.2.- Breve perspectiva del Lenguaje 14
2.3.2.- C++ 14
2.3.2.1 Historia 15
2.3.2.2.- Breve perspectiva del Lenguaje 15
2.3.3.- Smalltalk 15
2.3.3.1 Historia 16
2.3.3.2.- Breve perspectiva del Lenguaje 16
2.4.- Lenguajes Funcionales 17
2.4.1.- LISP 17
2.4.1.1 Historia 17
2.4.1.2.- Breve perspectiva del Lenguaje 18
2.4.2.- ML 18
2.4.2.1 Historia 18
2.4.2.2.- Breve perspectiva del Lenguaje 19
2.5.- Lenguaje de Programación Lógica 19
2.5.1.- Prolog 19
2.3.2.1 Historia. 20
2.3.2.2.- Breve perspectiva del Lenguaje. 20
CAPÍTULO III: Generalidades de los Lenguajes
3.1.- Identificadores 22
3.2.- Variables y Constantes 22
3.2.1.- Variables 22
3.2.2.- Constantes 23
3.3. - Entrada y salida de valores 23
3.3.1.- Función printf 23
3.3.2.- Función scanf 24
3.4.- Expresiones 24
3.4.1.- Operadores de Asignación 24
3.4.2.- Operadores Aritméticos 25
3.4.3.- Operadores Relacionales 25
3.4.4.- Operadores Lógicos 25
3.4.5.- Prioridad de Operadores 26
CAPITULO IV: Aplicación Práctica
4.1.- Aplicación de un programa 28
4.2.- Explicación del programa 29
CONCLUSIONES 31
BIBLIOGRAFÍA 32
ANEXOS
Anexos 01 34
Anexos 02 36
INDICE 43

Вам также может понравиться