ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Tarea La comunicación


Enviado por   •  16 de Abril de 2015  •  3.719 Palabras (15 Páginas)  •  200 Visitas

Página 1 de 15

Introducción

Una computadora es una máquina que solo comprende las instrucciones que se le den en un determinado formato. Cada máquina reconoce y ejecuta un número de instrucciones diferentes que se agrupan en los distintos lenguajes de programación.

Un lenguaje de programación es un conjunto limitado de palabras y de símbolos que representan procedimientos, cálculos, decisiones y otras operaciones que pueden ejecutar una computadora. A pesar de que en este trabajo parte de la división de lenguajes de programación en imperativos y declarativos (los cuales a su vez se dividen en numerosos subgrupos), la clasificación más común y básica que suele hacerse de los lenguajes de programación es la que los divide en lenguajes de bajo y de alto nivel.

Los lenguajes de alto nivel surgieron con posterioridad con el primer compilador de FORTRAN (FORmula TRANslation), que, como su nombre indica, inició como un "simple" esfuerzo de traducir un lenguaje de fórmulas, al lenguaje ensamblador y por consiguiente al lenguaje de máquina, facilitando la labor a los programadores. A partir de FORTRAN, se han desarrollado innumerables lenguajes, que siguen el mismo concepto: facilitar la vida al programador, aumentando la productividad.

El compilador es un programa que se encarga de la traducción global del programa realizado por el usuario. Esta operación recibe el nombre de compilación. El programa es traducido completamente antes de que se ejecute, por lo que la ejecución se realiza en un periodo muy breve. El intérprete por el contrario lleva a cabo una traducción inmediata en el momento de la ejecución, es decir, irá ejecutando las instrucciones una a una haciendo que el proceso requiera un periodo de tiempo sensiblemente mayor del que necesitaría un compilador. Los intérpretes son usados para traducir programas de alta dificultad de implementación, en estos casos, las órdenes a traducir son de tal complejidad que no merece la pena crear un compilador ya que este también tendría que ser de una complejidad por encima de lo normal.

Historia de los Lenguajes de Programación

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 maquina 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 realizo programas para aquélla supuesta máquina de Babagge, en tarjetas perforadas.

Como la maquina no llego 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: 1) Unidad de entrada, para introducir datos e instrucciones; 2) Memoria, donde se almacenaban datos y resultados intermedios; 3) Unidad de control, para regular la secuencia de ejecución de las operaciones; 4) Unidad Aritmético-Lógica, que efectúa las operaciones; 5) 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 las primeras computadoras.

Lenguaje de Programación

Un lenguaje de programación" es un lenguaje diseñado para describir el conjunto de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje de programación es un modo práctico para que los seres humanos puedan dar instrucciones a un equipo.

Por otro lado, el término "lenguaje natural" define un medio de comunicación compartido por un grupo de personas (por ejemplo: inglés o francés).

Los lenguajes que los equipos usan para comunicarse entre ellos no tienen nada que ver con los lenguajes de programación; se los conoce como protocolos de comunicación. Se trata de dos conceptos totalmente diferentes. Un lenguaje de programación es muy estricto:

A cada instrucción le corresponde una acción de procesador

El lenguaje utilizado por el procesador se denomina lenguaje máquina. Se trata de datos tal como llegan al procesador, que consisten en una serie de 0 y 1 ( datos binarios).

El lenguaje máquina, por lo tanto, no es comprensible para los seres humanos, razón por la cual se han desarrollado lenguajes intermediarios comprensibles para el hombre. El código escrito en este tipo de lenguaje se transforma en código máquina para que el procesador pueda procesarlo.

El ensamblador fue el primer lenguaje de programación utilizado. Es muy similar al lenguaje máquina, pero los desarrolladores pueden comprenderlo. No obstante, este lenguaje se parece tanto al lenguaje máquina que depende estrictamente del tipo de procesador utilizado (cada tipo de procesador puede tener su propio lenguaje máquina). Así, un programa desarrollado para un equipo no puede ser portado a otro tipo de equipo. El término "portabilidad" describe la capacidad de usar un programa de software en diferentes tipos de equipos. Para poder utilizar un programa de software escrito en un código ensamblador en otro tipo de equipo, ¡a veces será necesario volver a escribir todo el programa!

Por lo tanto, un lenguaje de programación tiene varias ventajas:

• es mucho más fácil de comprender que un lenguaje máquina:

• permite mayor portabilidad, es decir que puede adaptarse fácilmente para ejecutarse en diferentes tipos de equipos.

Lenguajes de programación imperativos y funcionales

Los lenguajes de programación generalmente se dividen en dos grupos principales en base al procesamiento de sus comandos:

• lenguajes imperativos;

• lenguajes funcionales.

Lenguaje de programación imperativo

Un lenguaje imperativo programa mediante una serie de comandos, agrupados en bloques y compuestos de órdenes condicionales que permiten al programa retornar a un bloque de comandos si se cumple la condición. Estos fueron los primeros lenguajes de programación en uso y aún hoy muchos lenguajes modernos usan este principio.

No obstante, los lenguajes imperativos estructurados carecen de flexibilidad debido a la secuencialidad de las instrucciones.

Lenguaje de programación funcional

Un lenguaje de programación funcional(a menudo llamado lenguaje procedimental) es un lenguaje que crea programas mediante funciones, devuelve un nuevo estado de resultado y recibe como entrada el resultado de otras funciones. Cuando una función se invoca a sí misma, hablamos de recursividad.

Interpretación y compilación

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

• lenguajes interpretados

• 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).

Tipos De Lenguajes De Programación

Lenguajes de Máquina

El lenguaje máquina de una computadora consta de cadenas de números binarios (ceros y unos) y es el único que "entienden" directamente los procesadores. Todas las instrucciones preparadas en cualquier lenguaje de máquina tienen por lo menos dos partes. La primera es el comando u operación, que dice a la computadora cuál es la función que va a realizar.

Lenguajes Ensambladores

A principios de la década de 1950, y con el fin de facilitar la labor de los programadores, se desarrollaron códigos nemotécnicos para las operaciones y direcciones simbólicas. La palabra nemotécnico se refiere a una ayuda para la memorización. Uno de los primeros pasos para mejorar el proceso de preparación de programas fue sustituir los códigos de operaciones numéricos del lenguaje de máquina por símbolosalfabéticos, que son los códigos nemotécnicos. Todas las computadoras actuales tienen códigos nemotécnicos aunque, naturalmente, los símbolos que se usan varían en las diferentes marcas y modelos.

Lenguajes de Alto Nivel

Los primeros programas ensambladores producían sólo una instrucción en lenguaje de máquina por cada instrucción del programa fuente. Para agilizar la codificación, se desarrollaron programas ensambladores que podían producir una cantidad variable de instrucciones en lenguaje de máquina por cada instrucción del programa fuente. Dicho de otra manera, un solo macroinstrucción podía producir varias líneas de código en lenguaje de máquina. Por ejemplo, el programador podría escribir "LEER ARCHIVO", y el programa traductor produciría una serie detallada de instrucciones al lenguaje de máquina previamente preparadas, con lo que se copiaría un registro del archivo que estuviera leyendo el dispositivo de entrada a la memoria principal. Así, el programador no se tenía que ocupar de escribir una instrucción por cada operación de máquina realizada.

Lenguajes Compilados

Naturalmente, un programa que se escribe en un lenguaje de alto nivel también tiene que traducirse a un código que pueda utilizar la máquina. Los programas traductores que pueden realizar esta operación se llaman compiladores. Éstos, como los programas ensambladores avanzados, pueden generar muchas líneas de código de máquina por cada proposición del programa fuente. Se requiere una corrida de compilación antes de procesar los datos de un problema.

Lenguajes Interpretados

Se puede también utilizar una alternativa diferente de los compiladores para traducir lenguajes de alto nivel. En vez de traducir el programa fuente y grabar en forma permanente el código objeto que se produce durante la corrida de compilación para utilizarlo en una corrida de producción futura, el programador sólo carga el programa fuente en la computadora junto con los datos que se van a procesar. A continuación, un programa intérprete, almacenado en el sistema operativo del disco, o incluido de manera permanente dentro de la máquina, convierte cada proposición del programa fuente en lenguaje de máquina conforme vaya siendo necesario durante el proceso de los datos. No se graba el código objeto para utilizarlo posteriormente.

Lenguajes De Programación Declarativos

Se les conoce como lenguajes declarativos en ciencias computacionales a aquellos lenguajes de programación en los cuales se le indica a la computadora qué es lo que se desea obtener o qué es lo que se está buscando, por ejemplo: Obtener los nombres de todos los empleados que tengan más de 32 años. Eso se puede lograr con un lenguaje declarativo como SQL.

Lenguajes de Programación Orientados a Objetos

En la Programación Orientada a Objetos (POO u OOP según siglas en inglés) se definen los programas en términos de "clases de objetos", objetos que son entidades que combinan estado (es decir, datos) comportamiento (esto es, procedimientos o métodos) e identidad (propiedad del objeto que lo diferencia del resto). La programación orientada a objetos expresa un programa como un conjunto de estos objetos, que colaboran entre ellos para realizar tareas. Esto permite hacer los programas módulos más fáciles de escribir, mantener y reutilizar.

De esta forma, un objeto contiene toda la información, (los denominados atributos) que permite definirlo e identificarlo frente a otros objetos pertenecientes a otras clases (e incluso entre objetos de la misma clase, al poder tener valores bien diferenciados en sus atributos). A su vez, dispone de mecanismos de interacción (los llamados métodos) que favorecen la comunicación entre objetos (de una misma clase o de distintas), y en consecuencia, el cambio de estado en los propios objetos. Esta característica lleva a tratarlos como unidades indivisibles, en las que no se separan (ni deben separarse) información (datos) y procesamiento (métodos).

Dada esta propiedad de conjunto de una clase de objetos, que al contar con una serie de atributos definitorios, requiere de unos métodos para poder tratarlos (lo que hace que ambos conceptos están íntimamente entrelazados), el programador debe pensar indistintamente en ambos términos, ya que no debe nunca separar o dar mayor importancia a los atributos a favor de los métodos, ni viceversa. Hacerlo puede llevar al programador a seguir el hábito erróneo de crear clases contenedoras de información por un lado y clases con métodos que manejen esa información por otro (llegando a una programación estructurada camuflada en un lenguaje de programación orientada a objetos).

Esto difiere de los lenguajes imperativos tradicionales, en los que los datos y los procedimientos están separados y sin relación, ya que lo único que se busca es el procesamiento de unos datos y los procedimientos están separados y sin relación, ya que lo único que se busca es el procesamiento de unos datos de entrada para obtener otros de salida. La programación estructurada anima al programador a pensar sobre todo en términos de procedimientos o funciones, y en segundo lugar en las estructuras de datos que esos procedimientos manejan. Los programadores de lenguajes imperativos escriben funciones y después les pasan los datos. Los programadores que emplean lenguajes orientados a objetos definen objetos con datos y métodos y después envían mensajes a los objetos diciendo que realicen esos métodos por sí mismos.

Un objeto se puede definir como un grupo de procedimientos que comparten un estado. Se define al conjunto de datos como "estado", y "métodos" como el conjunto de procedimientos que pueden alterar ese estado. Un programa orientado a objetos es un método de implementación en el que los programas están organizados como colecciones de objetos, donde cada uno es una instancia de alguna clase, y donde todas las clases son miembros de una jerarquía de clases conectadas por relaciones de herencia. Este tipo de lenguajes son muy recientes en comparación a los primeros lenguajes de programación que aparecieron.

Variable como lenguaje de programación

En programación, una variable está formada por un espacio en el sistema de almacenaje (memoria principal de un ordenador) y un nombre simbólico (un identificador) que está asociado a dicho espacio. Ese espacio contiene una cantidad o información conocida o desconocida, es decir un valor. El nombre de la variable es la forma usual de referirse al valor almacenado: esta separación entre nombre y contenido permite que el nombre sea usado independientemente de la información exacta que representa. El identificador, en el código fuente de la computadora puede estar ligado a un valor durante el tiempo de ejecución y el valor de la variable puede por lo tanto cambiar durante el curso de la ejecución del programa. El concepto de variables en computación puede no corresponder directamente al concepto de variables en matemática. El valor de una variable en computación no es necesariamente parte de una ecuación o fórmula como en matemáticas. En computación una variable puede ser utilizada en un proceso repetitivo: puede asignársele un valor en un sitio, ser luego utilizada en otro, más adelante reasignársele un nuevo valor para más tarde utilizarla de la misma manera. Procedimientos de este tipo son conocidos con el nombre de iteración. En programación de computadoras, a las variables, frecuentemente se le asignan nombres largos para hacerlos relativamente descriptivas para su uso, mientras que las variables en matemáticas a menudo tienen nombres escuetos, formados por uno o dos caracteres para hacer breve en su transcripción y manipulación.

Constante En Lenguaje De Programación

En programación, una constante es un valor que no puede ser alterado/modificado durante la ejecución de un programa, únicamente puede ser leído.

Una constante corresponde a una longitud fija de un área reservada en la memoria principal del ordenador, donde el programa almacena valores fijos.

Por ejemplo:

• El valor de pi = 3.1416

Por conveniencia, el nombre de las constantes suele escribirse en mayúsculas en la mayoría de lenguajes.

Lenguajes ensambladores (segunda generación)

Lenguajes de máquinas (primera generación)

Lenguajes de "Alto Nivel" (Tercera Generación)

- Los lenguajes de alto nivel se idearon con el propósito de:

* Independizar al programador de las características internas de la máquina

* Permitirle concentrarse es la lógica del problema por resolver.

* Se le liberó así de la necesidad de familiarizarse en detalle con el lenguaje de máquina.

- Una de las ventajas de los lenguajes de alto nivel es que con pequeñas modificaciones se pueda procesar en una máquina un programa escrito para otra máquina.

- Cuando un lenguaje puede ser procesado por cualquier computadora, se dice que el lenguaje ha sido estandarizado y se le asigna como lenguaje "Universal"

* Para esto, cada instrucción de un lenguaje de alto nivel es traducida por un computador o intérprete en una serie de órdenes en lenguajes de máquinas.

- El término "Alto nivel" significa que el lenguaje está más orientado hacia la gente, en contraste con los lenguajes de "Bajo Nivel", ensambladores, que están más orientados hacia la máquina.

* Por su mayor orientación hacia el usuario, los lenguajes de alto nivel tienen más relación con el lenguaje hablado que con el lenguaje de máquina y por ello resultan más fáciles de comprender.

- Estos lenguajes fueron elaborados originalmente para la programación de un determinado tipo de aplicación.

* Por ejemplo, el Fortran fue diseñado para aplicaciones Técnico-Científicas.

- Con la aparición de los lenguajes de alto nivel, se facilita la programación y se producen los errores que durante esta de deslizan.

- Recibiendo ventajas de los lenguajes de alto nivel:

* Intrusiones de formato libre, con sentencias escritas mayormente en lenguaje natural.

* Un programa escrito en L. de A.N. puede "correr" en distintos equipos, con modificaciones menores.

* Tiempo corto de aprendizaje.

* No se necesita conocer cómo es la estructura del computador.

* Se facilita la programación y se reducen los errores que durante esta se deslizan.

* Más rapidez en terminar el programa y probarlo.

* Cambio y correcciones más fáciles.

* Reducción en costo de creación y mantenimiento de programas.

* Fáciles de documentar.

- Tienen algunas "Desventajas"

* Incremento de tiempo de compilación (Traducción).

* No se aprovechan las posibles ventajas de la arquitectura del computador.

* Mayor uso de memoria (Por el compilador y por el programa objeto resultante) durante el proceso de compilación.

* Al generar más código instrucción aumenta el tipo de ejecución.

- Aunque es difícil clasificarlo ya que aparecen nuevos lenguajes frecuentemente y por otro lado existen muchos (En 1980 había más de 200 registrados), el agrupamiento más aceptado sería:

* Lenguajes de orientación científica, que fueron los primero en aparecer (se inventaron los computadores para esto; las máquinas permiten mayor formalización del lenguaje; son problemas no repetitivos, por lo que resultaba importante reducir el tiempo de programación).

Fortran - Algol - Pascal -C

* Lenguajes de orientación a la gestión, o comerciales, en que predominan las instrucciones dedicadas a procesos de entrada/salida.

Cobol - Basic - RPG - PL/1

* Lenguajes especiales, orientados a áreas de aplicaciones muy particulares entre otras:

~ Diseño de compiladores

~ Problemas de ingeniería.

~ Simulación

~ Control de máquinas herramientas

~ Logo, para enseñanza en escuelas primarias

Productos de Software integrados (cuarta generación)

Lenguajes De Programación Más Utilizados

.NET

Objective C

Scala y Groovy

CoffeeScript

PHP

Conclusión

Los lenguajes de programación no son simplemente un detalle más del amplio mundo de la informática, y por lo tanto deben ser vistos como el fundamento y la base del desarrollo y avance de la computación.

Estudiar los conceptos básicos, clasificación, diferencias, propiedades y funcionamiento de los lenguajes de programación es elemental para cualquier estudiante o profesional dedicado a la computación, pues de esa manera se logra tener una perspectiva global y mucho más amplia que tendrá mucho peso al estar bien documentados y al conocer qué son, cómo se clasifican y de qué manera trabajan los lenguajes de programación.

Luego del desarrollo de esta investigación resulta fácil comprender los tipos y la clasificación que se les da a los lenguajes de programación en base a sus funcionalidades y características.

Este estudio también permite desarrollar un sentido crítico de los lenguajes de programación, de forma que el programador no seleccione ni emita un juicio respecto a determinado lenguaje basado simplemente en su limitado conocimiento ni basado en la popularidad de la que goza cierto lenguaje, sino que el programador esté capacitado para dar razones contundentes y certeras del por qué un lenguaje es mejor que otro para determinada tarea, qué ventajas tiene uno respecto del otro, y que así también el programador sea capaz de seleccionar el lenguaje que más le convenga para la resolución de un problema determinado.

Esta investigación servirá para evaluar correctamente los lenguajes de programación, determinando las ventajas y desventajas que cada uno de ellos presenta.

...

Descargar como  txt (25 Kb)  
Leer 14 páginas más »