viernes, 6 de octubre de 2017

Actividad 01

DIRECCIÓN GENERAL DE CENTROS DE FORMACIÓN PARA EL TRABAJO



CECATI 120




Curso Programación Orientada a Objetos con C++



Susana Elizabeth Ramírez Gómez


 05/10/2017




 
DESCRIPCIÓN DE LAS CARACTERÍSTICAS DISTINTIVAS
DE LOS
LENGUAJES DE PROGRAMACIÓN

Bajo nivel:

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 que se refiere a la reducida abstracción entre el lenguaje y el hardware. Por ejemplo, se utiliza este tipo de lenguajes para programar tareas críticas de los sistemas operativos, de aplicaciones en tiempo real o controladores de dispositivos[1].

Alto nivel:

Un lenguaje de programación de alto nivel se le caracteriza por expresar el algoritmo de una manera adecuada a la capacidad cognitiva humana, en lugar de la capacidad que se la ejecuta de las máquinas[2].

Generaciones de lenguajes de programación[3]


Primera generación: – 1GL:
Código máquina y Ensambladores
La primera generación de lenguajes de programación consistía enteramente de una secuencia de 0s y 1s que los controles de la computadora interpretan como instrucciones, eléctricamente.
Representan los primeros lenguajes de programación que la computadora podía entender, son conocidos como lenguaje máquina.

Segunda generación: – 2GL:
Primeros lenguajes de alto nivel, no estructurados – Fortran, Cobol, Basic
La segunda generación de lenguajes de programación consistía se identificaron como lenguajes ensambladores. Un lenguaje ensamblador convierte las secuencias de 0s y 1s a un lenguaje entendido por los seres humanos, como “añadir”, “sumar”, etc.
El código escrito en un lenguaje ensamblador se convierte en lenguaje de máquina (1GL).

Tercera generación: -3GL:
La tercera generación de lenguajes de programación se conoce como lenguajes de alto nivel. Un lenguaje de alto nivel tiene una gramática y sintaxis similar a las palabras en una oración. Un compilador se encarga de traducir el lenguaje de alto nivel a lenguaje ensamblador o código máquina.
Todos los lenguajes de programación de software necesitan ser traducidos a código de máquina para una computadora para utilizar las instrucciones que contienen.

Cuarta generación: -4GL
La cuarta generación de lenguajes de programación avanza en la sintaxis utilizada. Lenguajes 4GL se utilizan típicamente para acceder a bases de datos.
Lenguajes Declarativos: SQL Generadores de aplicaciones, Herramientas CASE
Programación Visual: Visual Basic, Visual C
Lenguajes Orientados a Objeto  C++, Java, Eiffel

Quinta generación (5GL)
Imitación de la mente humana
La quinta generación de lenguajes de programación es utilizada para redes neuronales. Una red neuronal es una forma de inteligencia artificial que trata de imitar la mente humana.

Imperativos

La programación en este paradigma consiste en determinar qué datos son requeridos para el cálculo, asociar a esos datos una dirección de memoria, y efectuar, paso a paso, una secuencia de transformaciones en los datos almacenados, de forma que el estado final represente el resultado correcto[4].

Orientados a objetos

Los lenguajes de programación orientados a objetos tratan a los programas como conjuntos de objetos que se ayudan entre ellos para realizar acciones. Entendiendo como objeto al entidades que contienen datos. Permitiendo que los programas sean más fáciles de escribir, mantener y reutilizar.

Los objetos tienen toda la información (atributos) que los diferencia de otros pertenecientes a otra clase. Por medio de unos métodos se comunican los objetos de una misma o diferente clase produciendo el cambio de estado de los objetos. Esto hace que a los objetos se les trate como unidades indivisibles en las que no se separan la información ni los métodos usados en su tratamiento[5].

Funcionales.

Los lenguajes funcionales suelen usarse mucho para Inteligencia Artificial. Para alguien que está acostumbrado a programar en lenguajes imperativos u orientados a objetos, la curva de aprendizaje es un poco más grande; cuesta un poco entender el paradigma. Lo más chocante es que en general no existe la asignación de variables, se trabaja en forma recursiva, con memoria dinámica, y, en algunos lenguajes, cualquier programa se puede escribir en una sola línea (por ejemplo en APL), lo que dificulta un poco su lectura[6].

Lógicos

Se utiliza el formalismo de la lógica para representar el conocimiento sobre un problema y para hacer preguntas que, si se demuestra que se pueden deducir a partir del conocimiento dado en forma de axiomas y de las reglas de deducción estipuladas, se vuelven teoremas.
Con base en la información expresada dentro de la lógica de primer orden, se formulan las preguntas sobre el dominio del problema y el intérprete del lenguaje lógico trata de encontrar la respuesta automáticamente. El conocimiento sobre el problema se expresa en forma de predicados (axiomas) que establecen relaciones sobre los símbolos que representan los datos del dominio del problema

Concurrentes, paralelos y distribuidos[7].

La programación concurrente está relacionada con la programación paralela, pero enfatiza más la interacción entre tareas. Así, la correcta secuencia de interacciones o comunicaciones entre los procesos y el acceso coordinado de recursos que se comparten por todos los procesos o tareas son las claves de esta disciplina.
Los programas de ordenador paralelos son más difíciles de escribir que los secuenciales porque la concurrencia introduce nuevos tipos de errores de software, siendo las condiciones de carrera los más comunes. La comunicación y la sincronización entre las diferentes subtareas son típicamente las grandes barreras para conseguir un buen rendimiento de los programas paralelos. El incremento de velocidad que consigue un programa como resultado de la paralelización viene dado por la ley de Amdahl.
La informática distribuida o “en malla”, es un nuevo modelo para resolver problemas de computación masiva utilizando un gran número de ordenadores organizadas en racimos incrustados en una infraestructura de telecomunicaciones distribuida.




[1] https://es.wikipedia.org/wiki/Lenguaje_de_bajo_nivel
[2] https://es.wikipedia.org/wiki/Lenguaje_de_alto_nivel
[3] http://www.cavsi.com/preguntasrespuestas/cuales-son-las-generaciones-de-los-lenguajes-de-programacion/
[4] https://lenguajesdeprogramacion14.wordpress.com/2-paradigmas-de-la-programacion/paradigma-imperativo/
[5] http://www.larevistainformatica.com/lenguajes-programacion-orientada-objetos.htm
[6] http://elblogdelfrasco.blogspot.mx/2008/07/lenguajes-funcionales.html
[7] https://sites.google.com/site/cienciasdelacompucion/algoritmos-y-estructuras-de-datos/con/historia/sistemas-concurrentes-paralelos-y-distribuidos

No hay comentarios:

Publicar un comentario