Está en la página 1de 20

PROFESOR.

Williams De La Cruz Hernández.

MATERIA.

Taller De Investigación 1.

TRABAJO.

Protocolo De Investigación.

INTEGRANTES:

Jose Del Carmen Cordova González.

Fabian Vázquez Romero.

MECATRÓNICA 5°C.

FECHA DE ENTREGA.

17 De Noviembre Del 2017.


INDICE

1. Titulo. 3
2. Planteamiento del problema. 3
3. Justificación. 3
4. Objetivos. 3
5. Hipótesis. 3
6. Marco Teórico. 3
7. Metodología. 14
8. Esquema De Trabajo. 16
9. Cronograma De Trabajo. 17
10. Conclusión. 17
11. Resultado y discusiones del resultado. 18
12. Bibliografías. 18
1. Titulo.
“Mejores Lenguajes De Programación Actuales”.

2. Planteamiento del problema.


Actualmente se han presentado muchos lenguajes de programación debido al gran avance de la
tecnología algunos son complejos y otros son simples, depende mucho del usuario con cual se
identifique y se sienta cómodo para trabajar.

¿Cómo se estructura un programa?

¿Cuáles son los mejores lenguajes de programación actualmente?

3. Justificación.
Se quiso dar respuesta a estas interrogantes ya que hoy en día existen numerosos lenguajes de
programación y en varios casos los usuarios nos saben cuál de ellos pueden utilizar o sea más fácil
de comprender por lo que se buscó agradar la información referente a este problema ya que si no
hacemos nada los usuarios no sabrán cuál de ellos les conviene aprender de igual forma dirigido a
los estudiantes de ingeniería y público en general que requiera de esta información.

4. Objetivos.
Objetivo General.

Propagar información útil, básica, clara, concisa y concreta del problema que se está enfrentando
actualmente con el lenguaje de programación.

Objetivos Específicos.

Definir lenguaje de programación.

Mostrar su clasificación con ventajas y desventajas.

Estructura general de un programa.

Dar a conocer los mejores lenguajes de programación actuales.

5. Hipótesis.
El avance tecnológico informático genera una creciente evolución de los lenguajes de Programación
provocado por el alto nivel de necesidades de programadores y usuarios.

6. Marco Teórico.

Definiciones de Lenguaje de Programación.

Es complicado definir qué es y qué no es un lenguaje de programación. Se asume generalmente que


la traducción de las instrucciones a un código que comprende la computadora debe ser
completamente sistemática. Normalmente es la computadora la que realiza la traducción. A
continuación, se redactará una serie de definiciones de los lenguajes de programación:
- Un lenguaje de programación es una notación para escribir programas, a través de los cuales
podemos comunicarnos con el hardware y dar así las ordenes adecuadas para la realización
de un determinado proceso. Un lenguaje está definido por una gramática o conjunto de
reglas que se aplican a un alfabeto constituido por el conjunto de símbolos utilizados. Los
distintos niveles de programación existentes nos permiten acceder al hardware, de tal
forma que según utilicemos un nivel u otro, así tendremos que utilizar un determinado
lenguaje ligado a sus correspondientes traductores.
- Conjunto de normas “lingüísticas” (palabras y símbolos) que permiten escribir un programa
y que éste sea entendido por el ordenador y pueda ser trasladado a ordenadores similares
para su funcionamiento en otros sistemas.
- Conjunto de instrucciones, órdenes y símbolos reconocibles por autómata, a través de su
unidad de programación, que le permite ejecutar la secuencia de control deseada. Al
conjunto de total de estas instrucciones, órdenes y símbolos que están disponibles se le
suele llamar lenguajes de programación del autómata. El programa está formado por un
conjunto de instrucciones, sentencias, bloques funcionales y grafismos que indican las
operaciones a realizar.
- Las instrucciones representan la tarea más elemental de un programa: leer una entrada,
realizar una operación, activar una salida, etc.
- La sentencia representa el mínimo conjunto de instrucciones o sentencias que realizan una
tarea o función compleja: encontrar el valor de una función lógica en combinación de varias
variables, consultar un conjunto de condiciones, etc.
- El bloque funcional es el conjunto de instrucciones o sentencias que realizan una tarea o
función compleja: contadores, registros de desplazamientos, transferencias de información,
etc. Todos estos elementos están relacionados entre sí mediante los símbolos o grafismos.
- Es un conjunto de palabras y símbolos que permiten al usuario generar comandos e
instrucciones para que la computadora los ejecute. Los lenguajes de programación deben
tener instrucciones que pertenecen a las categorías ya familiares de entrada / salida, cálculo
/ manipulación, de textos, lógica / comparación, y almacenamiento / recuperación.

Antecedentes Históricos.

Los primeros lenguajes de programación surgieron de la idea de Charles Babagge, la cual se le


ocurrió a este hombre a mediados del siglo XIX. Era un profesor matemático de la universidad de
Cambridge e inventor inglés, que al principio del siglo XIX predijo muchas de las teorías en que se
basan los actuales ordenadores. Consistía en lo que él denominaba la máquina analítica, pero que
por motivos técnicos no pudo construirse hasta mediados del siglo XX. Con él colaboro Ada Lovedby,
la cual es considerada como la primera programadora de la historia, pues realizó programas para
aquélla supuesta máquina de Babagge, en tarjetas perforadas. Como la máquina no llegó nunca a
construirse, los programas de Ada, lógicamente, tampoco llegaron a ejecutarse, pero si suponen un
punto de partida de la programación, sobre todo si observamos que en cuanto se empezó a
programar, los programadores utilizaron las técnicas diseñadas por Charles Babagge, y Ada, que
consistían entre otras, en la programación mediante tarjetas perforadas. A pesar de ello, Ada ha
permanecido como la primera programadora de la historia. Se dice por tanto que estos dos genios
de antaño se adelantaron un siglo a su época, lo cual describe la inteligencia de la que se hallaban
dotados.
En 1823 el gobierno británico lo apoyo para crear el proyecto de una máquina de diferencias, un
dispositivo mecánico para efectuar sumas repetidas. Pero Babagge se dedicó al proyecto de la
máquina analítica, abandonando la máquina de diferencias, que se pudiera programar con tarjetas
perforadas, gracias a la creación de Charles Jacquard (francés). Este hombre era un fabricante de
tejidos y había creado un telar que podía reproducir automáticamente patrones de tejidos, leyendo
la información codificada en patrones de agujeros perforados en tarjetas de papel rígido. Entonces
Babagge intento crear la máquina que se pudiera programar con tarjetas perforadas para efectuar
cualquier cálculo con una precisión de 20 dígitos.

Pero la tecnología de la época no bastaba para hacer realidad sus ideas. Si bien las ideas de Babagge
no llegaron a materializarse de forma definitiva, su contribución es decisiva, ya que los ordenadores
actuales responden a un esquema análogo al de la máquina analítica.

En su diseño, la máquina constaba de cinco unidades básicas:

- Unidad de entrada, para introducir datos e instrucciones.


- Memoria, donde se almacenaban datos y resultados intermedios.
- Unidad de control, para regular la secuencia de ejecución de las operaciones
- Unidad Aritmético-Lógica, que efectúa las operaciones.
- Unidad de salida, encargada de comunicar al exterior los resultados.

Charles Babbage, conocido como el "padre de la informática" no pudo completar en aquella época
la construcción del computador que había soñado, dado que faltaba algo fundamental: la
electrónica. El camino señalado de Babbage no fue nunca abandonado y siguiéndolo, se
construyeron los primeros computadores.

Cuando surgió el primer ordenador, el famoso ENIAC (Electronic Numerical Integrator And
Calculator), su programación se basaba en componentes físicos, o sea, que se programaba,
cambiando directamente el Hardware de la máquina, exactamente lo que se hacía era cambiar
cables de sitio para conseguir así la programación de la máquina. La entrada y salida de datos se
realizaba mediante tarjetas perforadas.

Clasificación De Los Lenguajes De Programación.

Lenguaje Máquina.

El lenguaje máquina es el único que entiende directamente la computadora, ya que está escrito en
lenguajes directamente inteligibles por la máquina (computadora), utiliza el alfabeto binario, que
consta de los dos únicos símbolos 0 y 1, denominados bits (abreviatura inglesa de dígitos binarios).
Sus instrucciones son cadenas binarias (cadenas o series de caracteres de dígitos 0 y 1 que
especifican una operación y, las posiciones (dirección) de memoria implicadas en la operación se
denominan instrucciones de máquina o código máquina. Fue el primer lenguaje utilizado en la
programación de computadoras, pero dejó de utilizarse por su dificultad y complicación, siendo
sustituido por otros lenguajes más fáciles de aprender y utilizar, que además reducen la posibilidad
de cometer errores. El lenguaje máquina es el conocido código binario. Generalmente, en la
codificación de los programas se empleaba el sistema hexadecimal para simplificar el trabajo de
escritura. Todas las instrucciones preparadas en cualquier lenguaje máquina tienen por lo menos
dos partes. La primera es el comando u operación, que dice a las computadoras cuál es la función.
Ventajas del lenguaje máquina.

Posibilidad de cargar (transferir un programa a la memoria) sin necesidad de traducción posterior,


lo que supone una velocidad de ejecución superior a cualquier otro lenguaje de programación.

Desventajas del lenguaje máquina.

Dificultad y lentitud en la codificación. Poca fiabilidad. Todas las computadoras tienen un código de
operación para cada una de las funciones. La segunda parte de la instrucción es el operando, que
indica a la computadora donde hallar o almacenar los datos y otras instrucciones que se van a
manipular, el número de operandos de una instrucción varía en distintas computadoras.

Dificultad para verificar y poner a punto los programas. Los programas solo son ejecutables en el
mismo procesador (CPU). En la actualidad, las desventajas superan a las ventajas, lo que hace
prácticamente no recomendables a los lenguajes máquina.

Lenguajes de Bajo Nivel (ensamblador).

Son más fáciles de utilizar que los lenguajes máquina, pero al igual que ellos, dependen de la
máquina en particular. El lenguaje de bajo nivel por excelencia es el ensamblador. El lenguaje
ensamblador es el primer intento de sustituir el lenguaje máquina por otro más similar a los
utilizados por las personas. Este intenta des flexibilizar la representación de los diferentes campos.
Esa flexibilidad se consigue no escribiendo los campos en binario y aproximando la escritura al
lenguaje. A principios de la década de los 50 y con el fin de facilitar la labor de los programadores,
se desarrollaron códigos mnemotécnicos para las operaciones y direcciones simbólicas. Los códigos
mnemotécnicos son los símbolos alfabéticos del lenguaje máquina. La computadora sigue utilizando
el lenguaje máquina para procesar los datos, pero los programas ensambladores traducen antes los
símbolos de código de operación especificados a sus equivalentes en el lenguaje máquina. En la
actualidad los programadores no asignan números de dirección reales a los datos simbólicos,
simplemente especifican donde quieren que se coloque la primera localidad del programa y el
programa ensamblador se encarga de lo demás, asigna localidades tanto para las instrucciones
como los datos. Estos programas de ensamble o ensambladores también permiten a la
computadora convertir las instrucciones en lenguaje ensamblador del programador en su propio
código máquina. Un programa de instrucciones escrito en lenguaje ensamblador por un
programador se llama programa fuente. Después de que el ensamblador convierte el programa
fuente en código máquina a este se le denomina programa objeto. Para los programadores es más
fácil escribir instrucciones en un lenguaje ensamblador que en código de lenguaje máquina, pero es
posible que se requieran dos corridas de computadora antes de que se puedan utilizar las
instrucciones del programa fuente para producir las salidas deseadas.

El lenguaje de bajo nivel es el lenguaje de programación que el ordenador puede entender a la hora
de ejecutar programas, lo que aumenta su velocidad de ejecución, pues no necesita un intérprete
que traduzca cada línea de instrucciones. Visto a muy bajo nivel, los microprocesadores procesan
exclusivamente señales electrónicas binarias. Dar una instrucción a un microprocesador supone en
realidad enviar series de unos y ceros espaciadas en el tiempo de una forma determinada. Esta
secuencia de señales se denomina código máquina. El código representa normalmente datos y
números e instrucciones para manipularlos. Un modo más fácil de comprender el código máquina
es dando a cada instrucción un mnemónico, como por ejemplo STORE, ADD o JUMP. Esta
abstracción da como resultado el ensamblador, un lenguaje de muy bajo nivel que es específico de
cada microprocesador.

Los lenguajes de bajo nivel permiten crear programas muy rápidos, pero que son, a menudo, difíciles
de aprender. Más importante es el hecho de que los programas escritos en un bajo nivel sean
altamente específicos de cada procesador. Si se lleva el programa a otra máquina se debe reescribir
el programa desde el principio.

Ventajas del Lenguaje Ensamblador frente al Lenguaje Máquina.

Mayor facilidad de codificación y, en general, su velocidad de cálculo, ahorran tiempo y requieren


menos atención a detalles. Se incurren en menos errores y los que se cometen son más fáciles de
localizar. Tanto el lenguaje máquina como el ensamblador gozan de la ventaja de mínima ocupación
de memoria y mínimo tiempo de ejecución en comparación con el resultado de la compilación del
programa equivalente escrito en otros lenguajes. Los programas en lenguaje ensamblador son más
fáciles de modificar que los programas en lenguaje máquina.

Desventajas del lenguaje ensamblador.

Dependencia total de la máquina lo que impide la transportabilidad de los programas (posibilidad


de ejecutar un programa en diferentes máquinas). El lenguaje ensamblador del PC es distinto del
lenguaje ensamblador del Apple Machintosh. La formación de los programadores es más compleja
que la correspondiente a los programadores de alto nivel, ya que exige no solo las técnicas de
programación, sino también el conocimiento del interior de la máquina. El programador ha de
conocer perfectamente el hardware del equipo, ya que maneja directamente las posiciones de
memoria, registros del procesador y demás elementos físicos. Todas las instrucciones son
elementales, es decir, en el programa se deben describir con el máximo detalle todas las
operaciones que se han de efectuar en la máquina para la realización de cualquier proceso. Los
lenguajes ensamblador tienen sus aplicaciones muy reducidas, se centran básicamente en
aplicaciones de tiempo real, control de procesos y de dispositivos electrónicos.

Lenguajes de alto Nivel.

Estos lenguajes son los más utilizados por los programadores. Están diseñados para que las personas
escriban y entiendan los programas de un modo mucho más fácil que los lenguajes máquina y
ensamblador. Un programa escrito en lenguaje de alto nivel es independiente de la máquina (las
instrucciones no dependen del diseño del hardware o de una computadora en particular), por lo
que estos programas son portables o transportables. Los programas escritos en lenguaje de alto
nivel pueden ser ejecutados con poca o ninguna modificación en diferentes tipos de computadoras.
Son lenguajes de programación en los que las instrucciones enviadas para que el ordenador ejecute
ciertas órdenes son similares al lenguaje humano. Dado que el ordenador no es capaz de reconocer
estas órdenes, es necesario el uso de un intérprete que traduzca el lenguaje de alto nivel a un
lenguaje de bajo nivel que el sistema pueda entender. Por lo general se piensa que los ordenadores
son máquinas que realizan tareas de cálculos o procesamiento de texto. La descripción anterior es
sólo una forma muy esquemática de ver una computadora. Hay un alto nivel de abstracción entre
lo que se pide a la computadora y lo que realmente comprende. Existe también una relación
compleja entre los lenguajes de alto nivel y el código máquina.

Los lenguajes de alto nivel son normalmente fáciles de aprender porque están formados por
elementos de lenguajes naturales, como el inglés. En BASIC, el lenguaje de alto nivel más conocido,
los comandos como “IF CONTADOR=10 THEN STOP” pueden utilizarse para pedir a la computadora
que pare si CONTADOR es igual a diez. Por desgracia para muchas personas esta forma de trabajar
es un poco frustrante, dado que a pesar de que las computadoras parecen comprender un lenguaje
natural, lo hacen en realidad de una forma rígida y sistemática.

Los lenguajes de alto nivel, también denominados lenguajes evolucionados, surgen con
posterioridad a los anteriores (lenguaje máquina, lenguajes de bajo nivel o ensamblador) con los
siguientes objetivos, entre otros:

Lograr independencia de la máquina, pudiendo utilizar un mismo programa en diferentes equipos


con la única condición de disponer de un programa traductor o compilador, que es suministrado por
el fabricante, para obtener el programa ejecutable en lenguaje binario de la máquina que se trate.
Además, no se necesita conocer el hardware especifico de dicha máquina. Aproximarse al lenguaje
natural, para que el programa se pueda escribir y leer de una forma más sencilla, eliminando muchas
de las posibilidades de cometer errores que se daban en el lenguaje máquina, ya que se utilizan
palabras (en inglés) en lugar de cadenas de símbolos sin ningún significado aparente.

Incluir rutinas de uso frecuente, como las de entrada / salida, funciones matemáticas, manejo de
tablas, etc., que figuran en una especie de librería del lenguaje, de manera que se puedan utilizar
siempre que se quiera sin necesidad de programarlas cada vez.

Ventajas de los lenguajes de alto nivel.

El tiempo de formación de los programadores es relativamente corto comparado con otros


lenguajes. La escritura de programas se basa en reglas sintácticas similares a los lenguajes humanos,
nombres de las instrucciones tales como READ, WRITE, PRINT, OPEN, etc. Las modificaciones y
puestas a punto de los programas son más fáciles. Reducción del costo de los programas.
Transportabilidad. Permiten tener una mejor documentación. Son más fáciles de mantener.

Desventajas de los lenguajes de alto nivel.

Incremento del tiempo de puesta a punto al necesitarse diferentes traducciones del programa
fuente para conseguir el programa definitivo. No se aprovechan los recursos internos de la máquina
que se explotan mucho mejor en lenguajes máquina y ensambladores. Aumento de la ocupación de
memoria. El tiempo de ejecución de los programas es mucho mayor. Se puede decir que el principal
problema que presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen
actualmente en uso, además de las diferentes versiones o dialectos que se han desarrollado de
algunos de ellos. Es difícil establecer una clasificación general de los mismos, ya que en cualquiera
que se realice habrá lenguajes que pertenezcan a más de uno de los grupos establecidos. Una
clasificación muy extendida, atendiendo a la forma de trabajar de los programas y a la filosofía con
que fueron concebidos, es la siguiente:
Lenguajes imperativos.

Utilizan instrucciones como unidad de trabajo de los programas (Cobol, Pascal, C, Ada).

Lenguajes declarativos.

Los programas se construyen mediante descripciones de funciones o expresiones lógicas (Lisp,


Prolog).

Lenguajes orientados a objetos.

El diseño de los programas se basa más en los datos y su estructura. La unidad de proceso es el
objeto y en él se incluyen los datos (variables) y las operaciones que actúan sobre ellos (Smalltalk,
C++).

Lenguajes orientados al problema.

Diseñados para problemas específicos, principalmente de gestión, suelen ser generadores de


aplicaciones.

Lenguajes naturales.

Están desarrollándose nuevos lenguajes con el principal objetivo de aproximar el diseño y


construcción de programas al lenguaje de las personas.

Interpretación y compilación.

Los lenguajes de programación pueden, en líneas generales, dividirse en dos categorías: lenguajes
interpretados y lenguajes compilados.

Lenguaje interpretado.

Un lenguaje de programación es, por definición, diferente al lenguaje máquina. Por lo tanto, debe
traducirse para que el procesador pueda comprenderlo. Un programa escrito en un lenguaje
interpretado requiere de un programa auxiliar (el intérprete), que traduce los comandos de los
programas según sea necesario.

Lenguaje compilado.

Un programa escrito en un lenguaje compilado se traduce a través de un programa anexo llamado


compilador que, a su vez, crea un nuevo archivo independiente que no necesita ningún otro
programa para ejecutarse a sí mismo. Este archivo se llama ejecutable.

Un programa escrito en un lenguaje compilado posee la ventaja de no necesitar un programa anexo


para ser ejecutado una vez que ha sido compilado. Además, como sólo es necesaria una traducción,
la ejecución se vuelve más rápida. Sin embargo, no es tan flexible como un programa escrito en
lenguaje interpretado, ya que cada modificación del archivo fuente (el archivo comprensible para
los seres humanos: el archivo a compilar) requiere de la compilación del programa para aplicar los
cambios.

Por otra parte, un programa compilado tiene la ventaja de garantizar la seguridad del código fuente.
En efecto, el lenguaje interpretado, al ser directamente un lenguaje legible, hace que cualquier
persona pueda conocer los secretos de fabricación de un programa y, de ese modo, copiar su código
o incluso modificarlo. Por lo tanto, existe el riesgo de que los derechos de autor no sean respetados.
Por otro lado, ciertas aplicaciones aseguradas necesitan confidencialidad de código para evitar las
copias ilegales (transacciones bancarias, pagos en línea, comunicaciones seguras...).

Lenguajes intermediarios.

Algunos lenguajes pertenecen a ambas categorías (LISP, Java, Python...) dado que el programa
escrito en estos lenguajes puede, en ciertos casos, sufrir una fase de compilación intermediaria, en
un archivo escrito en un lenguaje ininteligible (por lo tanto, diferente al archivo fuente) y no
ejecutable (requeriría un intérprete). Los applets Java, pequeños programas que a menudo se
cargan en páginas web, son archivos compilados que sólo pueden ejecutarse dentro de un
navegador web (son archivos con la extensión .class).

Estructura general de un programa.

Estructura general de un programa. Un programa puede considerarse como una secuencia de


acciones (instrucciones) que manipulan un conjunto de objetos (datos).

Bloques de un programa

Bloque de declaraciones: en él se especifican todos los objetos que utiliza el programa (constantes,
variables, tablas, registros, archivos, etc.).

Bloque de instrucciones: constituido por el conjunto de operaciones que se han de realizar para la
obtención de los resultados deseados.

Partes principales de un programa.

Dentro del bloque de instrucciones de un programa se pueden diferenciar tres partes


fundamentales. En algunos casos, estas tres partes están perfectamente delimitadas, pero en la
mayoría sus instrucciones quedan entremezcladas a lo largo del programa, si bien mantienen una
cierta localización geométrica impuesta por la propia naturaleza de las mismas.

Entrada de datos: la constituyen todas aquellas instrucciones que toman datos de un dispositivo
externo, almacenándolos en la memoria central para que puedan ser procesados.

Proceso o algoritmo: está formado por las instrucciones que modifican los objetos a partir de su
estado inicial hasta el estado final, dejando éstos disponibles en la memoria central.

Salida de resultados: conjunto de instrucciones que toman los datos finales de la memoria central
y los envían a los dispositivos externos.

Clasificación de las Instrucciones.

Una instrucción se caracteriza por un estado inicial y final del entorno. El estado final de una
instrucción coincide con el inicial de la siguiente. No siempre una instrucción modifica el entorno,
pues su cometido puede limitarse a una mera observación del mismo o a un cambio en el orden de
ejecución de otras. Las instrucciones pueden ser:
Instrucciones de declaración: Se utilizan en aquellos lenguajes de programación que no tienen
declaración explícita de los objetos. Su misión consiste en indicar al procesador que reserve espacio
en la memoria para un objeto del programa, indicando asimismo su nombre, tipo y características.

Instrucciones primitivas: Son aquellas que ejecuta el procesador de modo inmediato. Las principales
son asignación, entrada y salida.

Instrucción de asignación: Consiste en calcular el valor de una expresión y almacenarlo en una


variable. En algún lenguaje es preciso calcular previamente el resultado de la expresión, pues la
instrucción de asignación sólo permite el movimiento de un valor simple.

Instrucción de entrada: Toma un dato de un dispositivo de entrada y lo almacena en un objeto. En


algún lenguaje, los datos de entrada no provienen de un dispositivo externo, sino que han sido
colocados previamente en el mismo programa.

Instrucción de salida: Toma el valor de una expresión u objeto y lo lleva a un dispositivo externo.

Instrucciones compuestas: Son aquellas que el procesador no puede ejecutar directamente, sino
que realiza una llamada a un subprograma, subrutina o párrafo.

Instrucciones de control: Son aquellas de controlar la ejecución de otras instrucciones.

Instrucción alternativa: Controla la ejecución de unas u otras instrucciones según una condición.
Puede ser simple o doble (SI y SINO).

Instrucción de salto incondicional: Altera la secuencia normal de ejecución de un programa,


continuando la misma en la línea indicada en la propia instrucción (IR A).

Instrucción de salto condicional: Altera la secuencia normal de ejecución de un programa


únicamente en el caso de cumplimiento de una condición asociada a la propia instrucción (SI ... IR
A).

Instrucción repetitiva: Hace que se repitan una o varias instrucciones un número determinado o
indeterminado de veces (PARA, MIENTRAS, HASTA e ITERAR).

Elementos auxiliares de un programa.

Son variables que realizan funciones específicas dentro de un programa, y por su gran utilidad,
frecuencia de uso y peculiaridades, conviene hacer un estudio separado de las mismas. Las más
importantes son:

Contadores: Un contador es un campo de memoria cuyo valor se incrementa en una cantidad fija,
positiva o negativa, generalmente asociado a un bucle. Toma un valor inicial antes de comenzar su
función, y cada vez que se realiza el suceso, incrementa su valor. Se utiliza en los siguientes casos:

Para contabilizar el número de veces que es necesario repetir una acción (variable de control de un
bucle).

Para contar un suceso particular solicitado por el enunciado del problema (asociado a un bucle o
independientemente).
Acumuladores: Un acumulador es un campo de memoria cuyo valor se incrementa sucesivas veces
en cantidades variables. Se utiliza en aquellos casos en que se desea obtener el total acumulado de
un conjunto de cantidades, siendo preciso inicializarlo con el valor 0. También en las situaciones en
que hay que obtener un total como producto de distintas cantidades se utiliza un acumulador,
debiéndose inicializar con el valor 1.

Interruptores (switches): Un interruptor es un campo de memoria que puede tomar dos valores
exclusivos (0 y 1, -1 y 1, FALSO y CIERTO, etc.). Se utiliza para:

Recordar en un determinado punto de un programa la ocurrencia o no de un suceso anterior, para


salir de un bucle o para decidir en una instrucción alternativa qué acción realizar.

Para hacer que dos acciones diferentes se ejecuten alternativamente dentro de un bucle.

Tipos de programas

Un programa, por lo general, estará compuesto por una secuencia de acciones, algunas de las cuales
serán alternativas o repetitivas. En determinados programas sencillos, no se da esta mezcla de
acciones, en cuyo caso se pueden clasificar como sigue:

Programas lineales: consisten en una secuencia de acciones primitivas (su ejecución es lineal en el
orden en que han sido escritas).

Programas alternativos: consisten en el anidamiento de acciones alternativas (las tablas de decisión


se realizan mediante programas alternativos).

Programas cíclicos: son aquellos en los que un conjunto de acciones se repiten un número
determinado o indeterminado de veces (un programa de este tipo se denomina bucle).

Otra clasificación relativa a la aplicación desarrollada por el programa es:

Programas de gestión: se caracterizan por el manejo de gran cantidad de datos con pocos cálculos
(resuelven problemas de gestión).

Programas técnicos-científicos: al contrario que los anteriores, realizan gran cantidad de cálculos
con pocos datos (revuelven problemas matemáticos, físicos, etc.).

Programas de diseño (CAD): se caracterizan por la utilización de técnicas gráficas para resolver
problemas de diseño.

Programas de simulación: intentan reflejar una situación real, para facilitar su estudio.

Programas educativos (EAO): utilizan las ventajas del ordenador para la docencia.

Programas de inteligencia artificial: se utilizan para simular el razonamiento humano.

Lenguajes de programación.

Un lenguaje de programación es una notación para escribir programas, es decir, para describir
algoritmos dirigidos al computador. Un lenguaje viene dado por una gramática o conjunto de reglas
que se aplican a un alfabeto. El primer lenguaje de programación que se utilizó fue el lenguaje
máquina, el único que entiende directamente el computador, cuyo alfabeto es el binario, formado
por los símbolos 0 y 1. El lenguaje ensamblador, resultó de la evolución del lenguaje máquina, al
sustituir las cadenas de símbolos binarios por nemotécnicos. Posteriormente surgieron los lenguajes
de alto nivel, cuya evolución es:

- 1955: FORTRAN.
- 1960: LISP, ALGOL, COBOL.
- 1965: APL, SNOBOL, PL/1, BASIC.
- 1970: PROLOG, ALGOL68, SIMULA67.
- 1975: C, PASCAL.
- 1980: MODULA-2, LIS, EUCLID.
- 1985: ADA.

Los lenguajes de programación pueden clasificarse de la siguiente manera:

Según su parecido con el lenguaje natural:

Bajo nivel: lenguajes máquina y ensambladores.

Alto nivel: todos los demás.

Según la estructura de los programas:

Convencionales o línea a línea: ensambladores, FORTRAN, BASIC, COBOL, etc.

Estructurados: Algol, PL/I, Pascal, Ada, COBOL estructurado, etc.

Según la realización de los programas:

Funcionales: Lisp, Prolog, APL, etc.

Imperativos: la mayoría.

Según el tipo de proceso:

Interactivos o conversacionales: BASIC, Pascal, APL, etc.

Orientados al proceso por lotes (batch): COBOL, FORTRAN, PL/I, etc. factorial.
Algunos ejemplos de lenguajes ampliamente usados.

A continuación, encontrará una breve lista de los mejores lenguajes de programación actuales:

Lenguaje Principal área de aplicación Compilado/interpretado


ADA Tiempo real Lenguaje compilado
BASIC Programación para fines educativos Lenguaje interpretado
C Programación de sistema Lenguaje compilado
C++ Programación de sistema orientado a objeto Lenguaje compilado
Cobol Administración Lenguaje compilado
Fortran Cálculo Lenguaje compilado
Java Programación orientada a Internet Lenguaje intermediario
MATLAB Cálculos matemáticos Lenguaje interpretado
Cálculos matemáticos Cálculos matemáticos Lenguaje interpretado
LISP Inteligencia artificial Lenguaje intermediario
Pascal Educación Lenguaje compilado
PHP Desarrollo de sitios web dinámicos Lenguaje interpretado
Inteligencia artificial Inteligencia artificial Lenguaje interpretado
Perl Procesamiento de cadenas de caracteres Lenguaje interpretado

7. Metodología.
Actualmente se están produciendo cambios de gran alcance en la forma en que se desarrolla el
"software" para los equipos informáticos. Entre las causas de estos cambios se incluyen las
siguientes:

- El coste creciente de los desarrollos.


- La insatisfacción de los usuarios con la adecuación y calidad.
- La complejidad y tamaño creciente de los programas.
- La creciente dependencia de muchas organizaciones de sus sistemas informáticos, sin
posibilidad de abandonarlos.
- El avance hacia los ordenadores de quinta generación con características "software" muy
diferentes de los actuales.
Estas y otras presiones están provocando una reorganización de los métodos empleados en el
desarrollo de los programas para los ordenadores. Lo que se necesita son técnicas para la
elaboración de productos software muy largos y complejos, que satisfagan estándares muy estrictos
de calidad y prestaciones, de acuerdo con una planificación, control y presupuestos adecuados.

Los métodos de trabajo que se han desarrollado para responder a estas necesidades constituyen lo
que se ha dado en llamar "Ingeniería del Software". La Ingeniería del Software es una tarea de
equipo, al comenzar un proyecto de desarrollo, se constituyen una serie de equipos con una
estructura paralela a la del programa en sí. Se establece un calendario para el proyecto y se asignan
costes a cada una de las partes y etapas del proyecto. Cada equipo tiene un responsable, cuya tarea
es la de comprobar que la programación desarrollada por el equipo sea correcta, está estructurado
con propiedad, dispone de las interfaces para conectar con los programas desarrolladas por otros
equipos y se desarrolla de acuerdo con las previsiones de tiempo y coste.

La Ingeniería del Software se ocupa del ciclo de vida completo de un producto software, diseño,
desarrollo, uso y mantenimiento. El trabajo se hace buscando el mayor grado posible de
estandarización y los menores costes durante la totalidad del ciclo de vida de los programas.

La Ingeniería del Software implica que un programa bien estructurado satisfaga las siguientes
condiciones:

- El programa ha de tener una estructura general en forma de módulos, que a su vez estarán
formados por procedimientos o segmentos.
- Debe existir un interfaz claramente definido entre los diversos módulos.
- Cada módulo debe de ser una combinación sencilla de construcciones elementales de un
lenguaje de programación.
- Debe existir una fuerte correspondencia entre la estructura de los módulos y la de los datos
sobre los que operan.
- Cada módulo debe dejar las estructuras de datos sobre las que opera en un estado
consistente con su definición.
- Un módulo no debe tener efectos secundarios.

Por lo que respecta a las técnicas de diseño de programas, el método más simple y uno de los más
populares es el conocido como de "Refinamiento Progresivo". Se fundamenta en el uso de
algoritmos que se escriben en un lenguaje intermedio entre el castellano y un lenguaje de
programación como el Pascal, este lenguaje se denomina seudocódigo. El proceso se puede
describir en términos de un lenguaje de esta naturaleza:

- Establecer todos los pasos del programa en un algoritmo breve de alto nivel
- Repetir:
- Expandir cada sentencia del algoritmo en detalle, especificando los pasos necesarios
- Hasta que las tareas hayan sido especificadas con el detalle suficiente como para que pueda
generarse el código del programa.

Existen otras metodologías más depuradas como por ejemplo la conocida como "Descomposición
Funcional". A diferencia de la anterior en cada etapa se especifican las propiedades esenciales de
las estructuras de datos, y cada algoritmo se expresa como una función matemática que transforma
esta estructura de datos.
Una vez desarrollado un programa como es lógico se ha de comprobar su buen funcionamiento.
Actualmente en la mayoría de los casos se prueban con cualquier tipo de datos que pueden
presentarse en la realidad. Sin embargo, este proceso nunca puede establecer si un programa es o
no correcto, sin importar cuantos conjuntos de datos de usen. Si un programa es de importancia
crítica, como ocurre en el presente con muchas aplicaciones comerciales, industriales o militares, es
necesario tomar todas las precauciones posibles para asegurar que están libres de errores.

Se están empezando a utilizar técnicas para asegurar que los módulos (y los algoritmos) son
correctos, que los consideran como teoremas matemáticos y entonces se emplean los mismos
métodos que se utilizan para demostrar los teoremas. Esta tarea es muy compleja y no siempre
aplicable.

8. Esquema De Trabajo.
I. Que es un lenguaje de programación.

1. Definición.
2. Antecedentes históricos.
3. Tipos de lenguajes.
4. Clasificación.

II. Estructura general de un programa.

1. Bloques de un programa.
a) Bloque de declaraciones.
b) Bloque de instrucciones.
2. Partes principales de un programa.
a) Entrada de datos.
b) Proceso o algoritmo.
c) Salida de resultados.
3. Clasificación de las instrucciones.
a) Instrucción de declaración.
b) Instrucción primitiva.
c) Instrucción de asignación.
d) Instrucción de entrada.
e) Instrucción de salida.
f) Instrucciones compuestas.
g) Instrucciones de control.
h) Instrucción alternativa.
i) Instrucción de salto incondicional.
j) Instrucción de salto condicional.
k) Instrucción repetitiva.

III. Elementos auxiliares de un programa.

1. Contadores.
2. Acumuladores.
3. Interruptores (switches).
IV. Tipos de programas.

1. Programas lineales.
2. Programas alternativos.
3. Programas cíclicos.
4. Programas de gestión.
5. Programas técnicos-científicos.
6. Programas de diseño (CAD).
7. Programas de simulación.
8. Programas educativos (EAO).
9. Programas de inteligencia artificial.

9. Cronograma De Trabajo.

ACTIVIDAD FECHA

Delimitación del tema 25 de septiembre del 2017

Investigar sobre los lenguajes de 30 de septiembre del 2017


programación

Estructurar el proyecto 10 de octubre del 2017

Fase de documentación y revisión de 18 de octubre del 2017


literatura

Recolección y procesamiento de datos 27 de octubre del 2017

Revisión general 6 de noviembre del 2017

Integración y revisión final 16 de noviembre del 2017

10. Conclusión.
La comprensión básica de los conceptos de los lenguajes de programación y los diferentes
paradigmas son necesarios para todos los ingenieros de software, no tanto para los especialistas
en un lenguaje de programación. Esto se debe a que los lenguajes de programación son una
herramienta fundamental.
Los lenguajes de programación influencian notablemente la manera en que pensamos acerca del
diseño y construcción del software y los algoritmos y estructuras de datos que utilicemos para
desarrollar software.

Como puede verse, existen lenguajes específicos para cada tarea diferente.
Muchos de ellos (Lenguajes de Programación) ya no se usan, mientras que las nociones de otros han
sido incorporadas a otros lenguajes.
Los lenguajes y las Técnicas de Programación son importantes para la utilización de la computadora
como una herramienta para resolver problemas.
En computación, un Problema consiste en la necesidad de transformar un grupo de datos iniciales
en un grupo diferente de datos finales (resultados) en cuanto pueda dar solución a un problema
específico o realizar dicha tarea por la cual ha sido programada.

11. Resultado y discusiones del resultado.


Como ya sabemos la programación se estructura en varias ramas junto con el avance de la
tecnología, es una parte primordial ya que sin ella algunas cosas no se podrían realizar.

Como vimos a lo largo de este proyecto la programación se compone de muchos factores que tienen
objetivos específicos, de la cual el usuario tiene varias opciones para elegir el lenguaje que necesite
utilizar dependiendo la función que valla a realizar.

De este modo, una computadora podrá resolver un problema si alguien desarrolla un programa que
contenga las instrucciones adecuadas que permitan transformar los datos.
Los lenguajes deben ser confiables, comprensibles, eficientes en términos de tiempo de ejecución y
consumo de espacio, y deben satisfacer las necesidades de una comunidad, ya sean científicos,
hombres de negocios o usuarios no técnicos. Cada uno estos grupos está acostumbrado a un
vocabulario particular y una manera de ver las cosas; de este modo, existe una gran variedad de
lenguajes y muy probablemente esto continuará siendo así.

12. Bibliografías.
• APPLEBY, Doris LENGUAJES DE PROGRAMACIÓN. Paradigma y Practica. Tr. De Efrèn A.
Miguel. México, Ed. INTEREMERICANA - McGRAW-HILL, 1998 (c 1997). 493p.
• AULA Curso de orientación escolar INFORMATICA. España, Madrid, Ed. CULTURAL, 1995.
325p.
• JOYANES, Aguilar. PROGRAMACION EN TURBO PASCAL. Versiones 5.5, 6.0 y 7.0. 2da.
Edición. México, D.F., Ed. INTERAMERICANA - McGRAW-HILL, (c. 1993). 914p.
• Manual de METODOLOGÍA DE LA PROGRAMACIÓN ESTRUCTURADA. Impartido por L.I.A
Ninfa Urania García Ulin. Universidad Juárez Autónoma de Tabasco. 35p.
• https://www.ecured.cu/Estructura_general_de_un_programa
• http://es.ccm.net/contents/304-lenguajes-de-programacion
• http://www.igeograf.unam.mx/sigg/utilidades/docs/pdfs/posgrados/ingreso/guia-
protocolo.pdf
• http://www.scielo.cl/scielo.php?script=sci_arttext&pid=S0717-95532003000200003
• Weiss, Mark Allen: “Estructuras de datos y algoritmos”, Addison-Wesley Iberoamericana,
1995.
• Kruse, Robert Leroy; Tondon, Clovis L.; Leung, Bruce P: “Data structures and program design
in C”, Prentice-Hall, 1997.
• Brassard, Gilles; Bratley, Paul: “Algorithmics: theory and practice”, Prentice-Hall, 1988
• JOYANES, L. (2008). Fundamentos de la programación. Algoritmos y Estructura de Datos, 4ª
Edición. Madrid: McGraw-Hill.
• JOYANES, L.; RODRIGUEZ, L; FERNANDEZ, M. (2003). Fundamentos de programación Libro
de problemas. 2ª Edición. Madrid: McGraw-Hill.
• AHO, Alfred V.; HOPCROFT, John E.; ULLMAN, Jeffrey D. (1998). Estructuras de datos y
algoritmos. México: Addison Wesley.
• BRASSARD, G.; BRATLEY, P. (1997). Fundamentos de Algoritmia. Madrid: Prentice-Hall.
• COLLADO MACHUCA, M.; MORALES FERNÁNDEZ, R.; MORENO NAVARRO, J. J. (1987).
Estructuras de datos. Realización en Pascal. Madrid: Ediciones Díaz de Santos.
• GARCÍA MOLINA, J. J.; MONTOYA DATO, F. J.; FERNÁNDEZ ALEMÁN, J. L.; MAJADO ROSALES,
M. J. (2005). Una introducción a la programación. Un enfoque algorítmico. Madrid:
Thomson-Paraninfo.
• JOYANES, L. (1990). Problemas de Metodología de la Programación. Madrid: McGraw-Hill.
• JOYANES, L.; ZAHOHERO, I. (2005). Programación en C : metodología, algoritmos y
estructura de datos, 2ª Edición. Madrid: McGraw-Hill
• Schildt , Turbo C/C++, manual de referencia. , Osborne/McGraw-Hill.
• Ing. Favio Torres, PONTIFICIA UNIVERSIDAD CATOLICA DEL ECUADOR, Facultad de
Ingeniería, Escuela de Sistemas
• Cherre, Rafael Juan, Lenguaje de Programación en C++, Editorial Macro.
• Francia, Darío Rafael, Programación Orientada a Objetos, Editorial Acisclo.
• Joyanes, Aguilar Luis, Programación Algoritmos, estructuras de datos y objetos, McGrawHill
• Deitel P. J. Deitel H. M.,Cómo programar en C++, Prentice may
• Ralf Brown.
• Michael Tischer. PC Interno. Programación de sistema.Editorial Marcombo - Data Becker,
1993
• Intel. 80386: Guía del programador de sistemas.Anaya Multimedia - Intel.
• L. Joyanes Aguilar e I. Zahonero Martínez, Programación en C: metodología, algoritmos y
estructuras de datos (Segunda edición). Editorial McGraw-Hill, 2005. [Aguilar y Martínez,
2005] 004.43 JOY pro
• Osvaldo Cairó, Fundamentos de Programación: Piensa en C. Editorial Pearson Prentice Hall,
2006. [Cairó, 2006] 004.43 CAI fun
• H. M. Deitel y P. J. Deitel, Cómo Programar en C/C++ y Java. (Cuarta edición). Ed. Pearson
Educación, 2004. [Deitel y Deitel, 2004]
• L. Joyanes Aguilar e I. Zahonero Martínez, Algoritmos y estructuras de datos: una
perspectiva en C (Primera edición). Editorial McGraw-Hill, 2004. [Aguilar y Martínez, 2004]
• Problemas resueltos de Programación en Lenguaje C (paso a paso) (Primera edición). F.
García, A. Calderón, J. Carretero, J. Fernández y J. M. Pérez. Ed. Thomson, 2002. [García y
otros, 2002]
• Introducción a la programación estructurada en C (Primera edición). F. A. Martínez Gil y G.
Martín Quetglás. Servicio de Publicaciones, Universidad de Valencia. Junio, 2003. [Gil y
Quetglás, 2003]
• C: Manual de referencia (Cuarta edición). H. Schildt. Editorial Osborne, McGraw-Hill. 2004.
[Schildt, 2004]
• Programación en C (Segunda edición). B. S. Gottfried. Editorial McGraw-Hill. 2005.
[Gottfried, 2005]
• Peter Norton, Introducción a la Computación, Ed. Mc Graw-Hill.
• Luis Joyanes Aguilar, Fundamentos de programación. algoritmos y estructuras de datos, Ed.
Mc Graw-Hill.
• Mario C. Ginzburg, Introducción General a la Informática, Periféricos y Redes Locales,
Biblioteca Técnica Argentina.
• Armando E. de Giusti, Algoritmos, Datos y Programas, . Ed., Prentice Hall.
• Herbert Schildt, C Manual de Referencia, 4ta. Ed., Mc Graw-Hill, España, 2001.
• H.M. Deitel, J.P. Deitel, Cómo programar en C/C++, 2da. Ed., Prentice Hall, México, 1995
• Kernighan, Brian W. y Ritchie, Dennis M.: The C Programming Language (2nd Edition),
Prentice Hall, 1988.
• ESTRUCTURA DE DATOS Luis Joyanes Aguilar 1998 MCGRAW-HILL.
• ESTRUCTURA DE DATOS Libro de Problemas Luis Joyanes Aguilar, Fernández Matilde,
Rodriguez Luis 1999 MCGRAW-HILL.
• ALGORITMOS DATOS Y PROGRAMAS De Giusti Armando E. 2001 Prentice Hall.
• FUNDAMENTOS DE PROGRAMACIÓN. Algoritmo y Estructura de Datos Luis Joyanes Aguilar
1998 MCGRAW-HILL.
• FUNDAMENTOS DE PROGRAMACIÓN. Libro de Problemas en Pascal y Turbo Pascal Luis
Joyanes Aguilar Luis Rodríguez Baena y Matilde Fernández Azuela 1999 MCGRAW-HILL.
• PROGRAMACIÓN EN TURBO PASCAL Luis Joyanes Aguilar 1993 MCGRAW-HILL.
• PROGRAMACIÓN Castor F. Herrmann, María E. Valesani. 2001 MOGLIA S.R.L.
• ESTRUCTURA DE DATOS Cairó y Guardati 2002 MCGRAW-HILL .
• ALGORITMOS + ESTRUCTURAS DE DATOS = PROGRAMAS Niklaus Wirth 2000.
• METODOLOGÍA DE LA PROGRAMACIÓN: PROGRAMACIÓN ESTRUCTURADA María Dolores
Alonso y Silvia Rumeu 1994 Editorial Paraninfo.
• METODOLOGÍA DE LA PROGRAMACIÓN Luis Joyanes Aguilar 1990 MCGRAW-HILL.
• PRINCIPIO DEL DISEÑO DE PROGRAMAS M.A. Jackson 1990 Pamel SRL.
• INTRODUCCIÓN A LA PROGRAMACIÓN Y A LAS ESTRUCTURAS DE DATOS Braunstein y Gioia
1991 Universitaria de Buenos Aires.
• PROBLEMAS DE METODOLOGÍA DE LA PROGRAMACIÓN Luis Joyanes Aguilar 1990
MCGRAW-H
• TURBO PASCAL FOR PROGRAM DESIGN John Mallozzi 1988 MCGRAW-HILL.
• ADVANCED PROGRAMMING DESIGN AND STRUCTURE.Using Pascal Charles E. Miller,
William G. McArthur, J. Winston Crawley 1989 Prentice Hall.

También podría gustarte