Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Estudiante:
Farrachol Guerra Fernando Javier
Docente:
Rodmy Orellana Illanes
Materia:
Programación I
La Paz – Bolivia
2022
INDICE
1. Lenguajes de programación
4.1. Interpretes
4.2. Compiladores
4.3. Intermedios
5. Datos de interés
7. Diagrama de resumen
LENGUAJES DE PROGRAMACIÓN
1. Lenguajes de programación
controlan el comportamiento físico y lógico de una computadora, con el fin de indicar qué
tipos de datos actúan y qué acciones tomar bajo una gama de circunstancias. La codificación
Estos lenguajes son interpretados y validados en un proceso que se llama compilación, para
El lenguaje máquina, utiliza el alfabeto binario que consta de dos únicos símbolos: 0 y 1,
directamente, siendo instrucciones de grupos de bit, por ejemplo 00001111, 11100000, que
indican las acciones a realizar. El lenguaje máquina es muy difícil de programar directamente.
Descifrar el significado de las instrucciones es tedioso para los humanos (Hernández, 2013).
El lenguaje ensamblador, o lenguaje de bajo nivel, contiene instrucciones en símbolos
nemotécnicos que son palabras en inglés que facilitan el desarrollo de los programas, ya que
Los lenguajes de programación de alto nivel, son instrucciones en lenguaje humano, que
de alto nivel, se requiere de un programa que traduzca las instrucciones a lenguaje máquina.
proyecto de una “Maquina diferencial” y después la “Maquina analítica”, en el año 1842. Esta
máquina alteraba sus procesos controlados por un programa. Realizaba ciclos repetitivos y
tarjeta perforada para los procesos aritméticos, otra para las constantes numéricas y otra para
Uno de los primeros lenguajes de programación de alto nivel que se crearon fue el
de alto nivel LISP (Proceso de lista), diseñado para la investigación de inteligencia artificial.
El lenguaje de programación de alto nivel PASCAL se crea en el año 1968, lenguaje que era
se crea el lenguaje C, por Dennis Ritchie, para el desarrollo del sistema operativo Linux. Hoy
nuevos paradigmas, como el orientado a objetos y otros más. La siguiente figura muestra la
ido adaptando a las necesidades tecnológicas e informáticas del momento. Aunque la forma de
Estas técnicas se han traducido en diferentes filosofías de creación de programas, que son
programa. Se tienen varios paradigmas, como los paradigmas por procedimientos o Paradigma
a. LENGUAJES ESTRUCTURADOS
La secuencia, la Selección e iteración, se eliminó por completo la sentencia GOTO, que fue la
b. LENGUAJES IMPERATIVOS
c. LENGUAJES FUNCIONALES
datos en resultados. Sabiendo cómo evaluar una función, usando la computadora, podríamos
resolver automáticamente muchos problemas. Este fue el pensamiento que llevó a la creación
las funciones para manipular datos simbólicos, y no solamente numéricos, y la propiedad de las
funciones que les permite componer, creando de esta manera, la oportunidad para resolver
problemas complejos a partir de las soluciones a otros más sencillos. También se incluyó la
d. LENGUAJES LÓGICOS
forma de axiomas, a los cuales se añaden reglas formales para deducir cosas
permitió que la lógica matemática diera origen a otro tipo de lenguajes de programación,
porque para solucionar un problema el programador solo tiene que describirlo con axiomas y
programación funcional.
problemas del mundo real. Pero el mundo real está lleno de objetos, en la mayoría de los casos
complejos, los cuales difícilmente se traducen a los tipos de datos primitivos de los lenguajes
imperativos. Así surgió el concepto de objeto y sus colecciones (clases de objetos), que
polimorfismo introducido vía procedimientos virtuales. Todos estos conceptos (que hoy
identificamos como conceptos del modelo de objetos) fueron presentados en el lenguaje Simula
67, desde el año 1967, aunque este lenguaje estaba enfocado a aplicaciones de simulación
discreta.
objetos encabezada por Smalltalk, C++, Eiffel, Modula-3, Ada 95 y terminando con Java.
2. Código Objeto y Código Fuente
En programación, se llama código objeto al código que resulta de la compilación del código
fuente. Puede ser en lenguaje máquina o bytecode, y puede distribuirse en varios archivos que
corresponden a cada código fuente compilado. Luego un enlazador (linker) se encarga de juntar
todos los archivos de código objeto para obtener el programa ejecutable. Código objeto:
cada código fuente compilado. Para obtener un programa ejecutable se han de enlazar todos los
Un claro ejemplo de lenguaje de programación que usa código objeto en sus bibliotecas es
compartir sus bibliotecas y funciones sin tener la necesidad de liberar su código fuente original.
Incluso puede permitir a distintos lenguajes de programación compartir funciones sin necesidad
Por código fuente se entiende todo texto legible por un ser humano y redactado en un lenguaje de
programación determinado. El objetivo del código fuente es crear normas y disposiciones claras
para el ordenador y que este sea capaz de traducirlas a su propio lenguaje. De este modo, el texto
Son lenguajes más afines con el programador en los que una instrucción puede representar varias
Artificial), etc.
Los lenguajes de alto nivel necesitan de un traductor que puede ser interpretador o compilador.
Los interpretadores o intérpretes, necesitan de un programa auxiliar que traduce en tiempo real
las instrucciones al lenguaje máquina, por lo tanto, cada vez que un programa interpretado se
Los lenguajes compilados son aquellos que necesitan de un compilador para la traducción al
lenguaje máquina. La traducción o compilación se hace solo una vez, y el resultado es un código
objeto entendible por la máquina. Para ejecutar un programa compilado no se necesita de su
- Depuración más sencilla: Debido a que el código es más legible, la depuración también se
hace más fácil. Con la ayuda editores (IDEs – Entornos de Desarrollo Integrados) la
- Productividad aceptable: son más productivos que los lenguajes de alto nivel.
Los lenguajes estructurados, existen controles que le dan secuencia ordenada a la ejecución del
código. Dichos controles se implementan con estructuras definidas que permiten bifurcaciones
Una rama de los lenguajes de alto nivel son los lenguajes procedurales, donde la unidad
existen unas entradas y unas salidas y al programador que usa el procedimiento no le interesa su
Java y los lenguajes .Net de Microsoft también forman parte de los lenguajes de alto nivel, pero
para este artículo es más importante su clasificación dentro de los lenguajes Orientados a
Objetos.
en el que sus instrucciones ejercen un control directo sobre el hardware y están condicionados
por la estructura física de las computadoras que lo soportan. El uso de la palabra bajo en su
denominación no implica que el lenguaje sea menos potente que un lenguaje de alto nivel, sino
Los lenguajes de bajo nivel tales como el lenguaje ensamblador pueden ser más difíciles de
programar que los lenguajes de alto nivel debido a que están más íntimamente relacionados con
las características técnicas del hardware. Además, estos suelen carecer de abstracciones de mayor
nivel. No es posible una abstracción fuera de lo estipulado para el conjunto de los microcódigos
del microprocesador de un ordenador. Por otro lado, es más fácilmente traducible a lenguaje de
Al hablar de lenguaje de bajo nivel no nos referimos a uno en concreto, de hecho, este término
engloba a tres tipos diferentes de lenguaje de bajo nivel, aunque todos ellos comparten
características similares.
El primero que nos encontramos es el famoso Código Binario. Seguro que has oído
hablar en más de una ocasión de él y es que es el lenguaje más básico que forma parte de
todos los sistemas informáticos. Es muy habitual por ser bastante sencillo de utilizar. Tan
solo se usan dos números para formar el código, el 1 que representa al “todo” y el 0 que
puesto que, como su propio nombre indica, este va a ser el código por el que se va a
con él se envían de forma literal todas las tareas que hay que llevar a cabo.
Por último, tenemos el lenguaje ensamblador, algo más complicado porque los códigos
que utiliza no los descifra directamente el ordenador, por lo que habrá que pasarlo a
lenguaje de máquina para que la computadora entienda la orden que estamos queriendo
nuevo paradigma al que se le denominó programación orientada a objetos, que define todas las
(métodos). Estos objetos, según características similares, se agrupan en clases (Booch, 2013).
Son lenguajes de programación orientados a objetos, aquellos que implementan los conceptos
el lenguaje C++ diseñado por Bjarne Stroustrup, el lenguaje Python, el Visual Basic .NET
diseñado por MICROSOFT, el JavaScript desarrollado para páginas WEB, el PHP diseñado por
Rasmus Lerdorf, el lenguaje Objective-C, son algunos de los lenguajes más utilizados en la
actualidad.
Simula 67: El primer lenguaje orientado a objeto. Desarrollado por los noruegos
Krinsten Nygaard y Ole-Johan Dahl, fue presentado en el año 1967. Fue el primer
herencia múltiple.
Smalltalk: A principio de los años 70, en el centro de investigación "Palo Alto Xerox "
crearon Smalltalk. Fue el primer lenguaje en usar clases y objetos. A través de mensajes,
C++: Creado por Bjarne Stroustrup en 1983, permite la manipulación de objetos. C++ es
Eiffel: Es un lenguaje de POO diseñado por Bertrand Meyer en 1985. Este lenguaje
Java: Es un lenguaje de programación orientado a objetos que fue creado en 1995 (es una
versión, la JDK 1.0. Posee los conceptos de herencia polimorfismo, encapsulamiento, etc.
Los objetos: Son conceptos de las cosas que vemos y sentimos de nuestro alrededor y el mundo,
razonando y reflexionando sobre ellas. Los objetos pueden ser reales, como un colegio, una carta
o abstractos.
El concepto fundamental, en los lenguajes de POO, es que los objetos contienen datos que
pueden ser textos, números, registros, etc. Sobre estos datos y sus atributos, operan funciones o
procedimientos que permiten el comportamiento del programa de acuerdo a las necesidades del
En POO, las clases de cosas que pueden ser objetos, pueden ser:
Objetos físicos:
Alimentos y animales
Cabe mencionar que en POO todas las cosas del mundo real, dentro de un conjunto, se
denominan instancias y que estas tienen las mismas características y siguen las mismas reglas.
Desde el punto de vista del mundo real, un objeto tiene dos propiedades esenciales: un estado y
un comportamiento:
El estado: Son los datos asociados con el objeto, los cuales indican su situación interna en un
momento dado; por ejemplo, velocidad, calificación, color, capacidad, encendido/apagado, etc.
ejemplo, lo que sucede cuando se oprime el botón “inicio”, lo que sucede cuando se hace un
Los atributos. Son los datos que pertenecen al objeto y que representan el estado de este, en
desde otros objetos. Los métodos pueden modificar el estado del objeto cuando cambian el valor
Abstracción.
Los objetos tienen cualidades, que se pueden separar sobre la base de un proceso de
visión global del tema. El enfoque de la POO es agrupar en clases a un grupo de objetos
abstrayendo sus métodos y datos comunes. Debido a ello, en programación se facilitaría agregar
Encapsulamiento.
Esta propiedad permite ocultar los procesos internos de un objeto, de tal modo que el
usuario o programador puede acceder solamente a lo que requiere. Debido a ello, el usuario
puede ser controlado internamente, evitando cualquier conflicto, por un acceso no autorizado.
También permite realizar modificaciones sin afectar cómo los usuarios van a utilizar las
instrucciones. Para encapsular se requiere declarar como públicas o privadas los atributos o
Modularidad.
Una aplicación puede dividirse en subprogramas o módulos más pequeños, cada subprograma
procesa las tareas encomendadas, independientemente del otro. Todos ellos se conectan entre sí,
comportarse diferente ante mensajes distintos, dependiendo de la interacción con otros objetos.
De acuerdo al modo en que llevan a cabo el proceso de conversión, los traductores se dividen en
4.1. INTERPRETES
Un intérprete es un traductor que ejecuta las líneas de código que conforman un programa una a
ejecución cuando se solicite. Por tanto, el programa realizado con un lenguaje de programación
traducido por un intérprete, siempre necesitará a éste para poder ejecutarse. No existe
Cada vez que el programa necesite ejecutarse, el traductor tendrá que convertir el código fuente a
código máquina (interpretar). Esta característica hace que, por regla general, los lenguajes que
4.2. COMPILADORES
máquina, generando en el camino un recurso adicional (un ejecutable) que será el que
En realidad, el programa fuente (programa con el código fuente, valga la redundancia) será
objeto.
Sin embargo, para crear el programa final, autoejecutable, será necesario un proceso adicional: el
adicional para hacerlo. Simplemente le indicaremos que se ejecute cuando lo deseemos y así lo
hará.
4.3. INTERMEDIOS
Existen otros traductores que producen un código intermedio entre el código fuente y la máquina.
En el lenguaje Java, por ejemplo, se genera un recurso bytecode: código precompilado que
5. DATOS DE INTERES
Los lenguajes de programación permiten comunicarnos con la computadora, sin ellos sería
imposible instruirla para que realice una acción determinada y resolver problemas tan complejos
A través de la historia han aparecido nuevos paradigmas y lenguajes de programación que han
gama de lenguajes y aplicaciones que hoy en día las escuelas deben de usarlas para el desarrollo
En la siguiente ilustración, se detalla una línea de tiempo referida a los más utilizados e
importantes lenguajes de programación desde sus inicios. Es evidente que existen muchos más.
7. DIAGRAMA DE RESUMEN.