P7_E1_DanielPoza.pdf Los avances en los sistemas de comunicascion y su difusi...
Informe lpi
1. INFORME: LENGUAJES DE PROGRAMACIÓN
AUTOR(A):
Patricia Mendoza V-26.064.486
Caracas, 21 septiembre 2017.
UNIVERSIDAD ALEJANDRO DE HUMBOLDT.
LOS DOS CAMINOS.
ING. INFORMÁTICA.
SEMESTRE: 2017-2017 III.
ASIGNATURA: LENGUAJE DE PROGRAMACIÓN I.
PROFESOR: MIGUEL MENA.
SECCIÓN: DCM0402.
2. PROGRAMACIÓN
El término programación se define como un conjunto de instrucciones consecutivas y
ordenadas que llevan a ejecutar una tarea específica. Dichas instrucciones se
denominan “código fuente”, el cual es único para cada lenguaje y está diseñado para
cumplir una función o propósito específico. Usan diferentes normas o bases para
controlar el comportamiento de un dispositivo y también pueden ser usados para crear
programas informáticos. En este proceso básicamente se escribe, se prueba, se
depura, se compila (de ser necesario) y se mantiene el código fuente de un programa
informático. Los pasos que usualmente se deben aplicar al momento de programar son:
El desarrollo lógico del programa para resolver un problema en particular.
Escritura de la lógica del programa empleando un lenguaje de programación
específico (codificación del programa).
Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
Prueba y depuración del programa.
Desarrollo de la documentación.
LENGUAJES DE PROGRAMACIÓN
Un lenguaje de programación es esencialmente un sistema estructurado de
comunicación, similar al humano, el cual nos permite comunicarnos por medio de
signos, ya sean palabras, sonidos o gestos. Puede usarse para crear programas que
controlen el comportamiento físico y lógico de una máquina, para
expresar algoritmos con precisión, o como modo de comunicación humana.
1. Lenguaje Máquina - Las invocaciones a memoria, como los procesos aritméticos
lógicos son posiciones literales de conmutadores físicos del hardware en su
representación booleana. Estos lenguajes son literales de tareas.
2. Lenguajes ensambladores - También denominados nemotécnicos o nemónicos, no
son ya programas ejecutables directamente por el ordenador, sino textos de código
fuente que necesitan de alguna herramienta para su conversión a lenguaje máquina,
son los programas llamados ensambladores. Sus instrucciones suelen ser una
denominación abreviada de la instrucción máquina que simbolizan, y tienen una
correspondencia casi directa a las instrucciones máquina que representan. El código
resultante de la ejecución del programa ensamblador generaría un código binario
ejecutable.
3. Son instrucciones que ensamblan los grupos de conmutadores necesarios para
expresar una mínima lógica aritmética. Están íntimamente vinculados al hardware. Por
norma general están disponibles a nivel firmware, cmos o chip set. Estos lenguajes
están orientados a procesos. Los procesos se componen de tareas. Contienen tantas
instrucciones como la arquitectura del hardware así haya sido diseñada. Por ejemplo:
La arquitectura CISC contiene muchas más instrucciones a este nivel, que la RISC.
3. Lenguajes de medio nivel - Son aquellos que, basándose en los juegos de
instrucciones disponibles (chip set), permiten el uso de funciones a nivel aritmético,
pero a nivel lógico dependen de literales en ensamblador. Estos lenguajes están
orientados a procedimientos. Los procedimientos se componen de procesos. Ejemplos:
C, Basic.
4. Lenguajes de alto nivel - Son aquellos que permiten una máxima flexibilidad al
programador a la hora de abstraerse o de ser literal. Permiten un camino bidireccional
entre el lenguaje máquina y una expresión casi oral entre la escritura del programa y su
posterior compilación. Estos lenguajes están orientados a objetos. Los objetos se
componen de propiedades cuya naturaleza emerge de procedimientos. Ejemplos: C++,
Fortran, Cobol, Lisp.
E.A. Lenguajes de aplicaciones - Son aquellos que no permiten una bidireccionalidad
conceptual entre el lenguaje máquina y los lenguajes de alto nivel, ni tampoco la
literalidad a la hora de invocar conceptos lógicos. Se basan en librerías creadas en
lenguajes de alto nivel. Pueden permitir la creación de nuevas librerías, pero son
propietarias y dependientes de las suministradas por la aplicación. Estos lenguajes
están orientados a eventos. Los eventos acontecen cuando las propiedades de un
objeto interactúan con otro.
Ejemplos: Visual Basic para aplicaciones.
E.B. Lenguajes de redes - Son aquellos que se basan en un convenio de instrucciones
totalmente independientes de la máquina, y completamente dependientes de la red a la
que están orientadas. Se dividen en descriptivos (HTML, XML, VML), de cliente-
Servidor (Java, PHP) y de script (javascript).
4. LENGUAJE C vs. C++
• C es un lenguaje creado por Dennis Ritchie a principios de la década de 1970 y
basado en el paradigma de programación estructurada. Pretende ser un lenguaje de
propósito general que dé al programador control total sobre sus programas,
permitiendo la programación de bajo nivel (es decir, permitiendo controlar directamente
cosas como el acceso a memoria y otros recursos), pero a la vez proporcionando
estructuras de alto nivel que hagan la programación de sistemas grandes más fácil. Su
primer uso fue la escritura del sistema operativo Unix (del que deriva Linux), lo que da
idea de la potencia de C en la programación de bajo nivel. Tras la publicación en 1978
de The C Programming Language (conocido como K&R por las iniciales de sus
autores, Brian Kernigham y Dennis Ritchie) alcanzó gran popularidad y pronto se
convirtió en el lenguaje de referencia para la comunidad informática.
El lenguaje estructurado es una herramienta que puede utilizarse en la especificación
de procesos, en el desarrollo de sistemas.
• C++ fue creado por Bjarne Stroustrup durante la primera mitad de los años 1980
con el fin de dotar C de mecanismos que permitieran usar el paradigma de
programación orientada a objetos. C++ evolucionó a partir del C, por lo tanto, C es un
"subconjunto" de C++. Eso quiere decir que C está incluido en C++, en general, casi
cualquier programa escrito en C podrá compilarse con un compilador de C++, y
funcionará.
La principal diferencia es que C++ está orientado a objetos, es decir tiene clases.
Los creadores de C++ crearon las clases basándose en una característica que ya tenía
C: las estructuras. Estas se han mejorado y admiten funciones además de datos como
miembros. Para mantener cierta coherencia con C, y mantener el concepto de
estructura en su idea original, se creó un nuevo concepto class.
Pero las diferencias no terminan ahí. Muchas de las mejoras introducidas para
implementar las clases se pueden usar fuera de ellas, como la sobrecarga de
funciones, y operadores, y los parámetros con valores por defecto.
También hay nuevos operadores, entre los que destacan new y delete, que mejoran
sensiblemente el tratamiento de la memoria dinámica.
Otra capacidad introducida son las referencias, normalmente usadas en los parámetros
de las funciones. En sentido estricto, no aportan nueva funcionalidad a los programas,
ya que se pueden simular mediante punteros, pero sí aportan legibilidad y claridad.
En C++ es obligatorio usar prototipos de las funciones, en C no es necesario. Esta
diferencia sí puede ser importante a la hora de migrar código de C a C++. La mayoría
5. de los problemas que encuentras los programadores de C cuando usan compiladores
de C++, surgen de ésta característica.
C++ introduce el nuevo formato de comentarios que comienzan con // y terminan al
terminar la línea.
También se han introducido varias mejoras en la conversión de tipos (casting). C++
incorpora nuevos conceptos de casting, por otra parte necesarios, debido sobre todo a
la nueva problemática de la programación orientada a objetos: herencia y polimorfismo.
En C++ no es obligatorio especificar void en la lista de argumentos de una función que
no los usa, en C es sí lo es.
Para que C++ pueda usar funciones definidas para C en bibliotecas "run-time", es
necesario declararlas como extern "C".
C++ admite la declaración de variables locales dentro de sentencias como for, while,
etc. Esto no está permitido en C. Por ejemplo: for(int i = 0; i < 10; i++);
Aunque typedef aún se admite en C++, y se sigue usando, ya no es necesario su uso
con estructuras y uniones, en C++ no es obligatorio especificar las struct o union en la
declaración de variables.
6. LENGUAJE ESTRUCTURADO
El lenguaje estructurado es un lenguaje natural limitado en palabras y construcciones,
lo que le da más más precisión y claridad, evitando ambigüedades (el lenguaje natural
humano carece de precisión y es muy ambiguo).
El lenguaje estructurado puede utilizarse para especificar un algoritmo. Luego, para
que la computadora pueda procesarlo, deberá transformarse o “traducirse” a un
lenguaje de programación específico.
LENGUAJE ORIENTADO A OBJETOS
Se le llama así a cualquier lenguaje de programación que implemente los conceptos
definidos por la programación orientada a objetos.
Cabe notar que los conceptos definidos en la programación orientada a objetos no son
una condición sino que son para definir que un lenguaje es orientado a objetos. Existen
conceptos que pueden estar ausentes en un lenguaje dado y sin embargo, no invalidar
su definición como lenguaje orientado a objetos.
Quizás las condiciones mínimas necesarias las provee el formalismo que modeliza
mejor las propiedades de un sistema orientado a objetos: los tipos de datos abstractos.
Siguiendo esa idea, cualquier lenguaje que permita la definición de tipos de datos, de
operaciones nuevas sobre esos tipos de datos, y de instanciar el tipo de datos podría
ser considerado orientado a objetos.
Esta definición concuerda incluso con ciertos ejemplos prácticos, que no son
considerados dentro de la programación orientada a objetos, pero que podrían serlo.
Por ejemplo, la programación de interfaces gráficas de usuario para los sistemas X
utilizando infraestructuras de funciones y APIs como Motif, Xview y Xlib, son realizadas
usualmente en lenguaje C, pero organizando el código en una manera que "parecen
objetos" (los Widgets).