sábado, 7 de abril de 2018

LENGUAJE DE PROGRAMACION


LENGUAJE DE PROGRAMACIÓN

Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a cabo por máquinas como las computadoras.
Pueden 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.
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se escribe, se pruebase depurase compila y se mantiene el código fuente de un programa informático se le llama programación.
La estructura de los lenguajes son como sigue:
0. Código Binario - Es el lenguaje básico, sólo admite todo (1) o nada (0). Todo sistema informático está basado en este código, ya que el 1 (todo, SÍ) quiere decir que se permite el paso de la electricidad y el 0 (nada, NO) no lo permite. Sería la forma en la que están almacenados los programas, sea en memoria, sea en dispositivos de almacenamiento. De esta forma son recibidas y ejecutadas cada una de las instrucciones por la CPU del ordenador.
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.
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. Lenguaje de bajo nivel -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.
4. 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.
5. 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.

LENGUAJE DE PROGRAMACIÓN DE ALTO NIVEL:

    Lenguaje de programación de alto nivel es un tipo de lenguaje de programación que permite al programador escribir programas (algoritmos) que son más o menos independientes de un tipo particular de computadora (del hardware). Estos lenguajes son considerados de alto nivel porque son más parecidos al lenguaje natural humano y más lejanos al lenguaje de las máquinas. En otras palabras, utilizan una fuerte abstracción de los detalles de la computadora.

  La principal ventaja de los lenguajes de alto nivel sobre los de bajo nivel es que son más fáciles de leer, escribir y mantener por humanos. Al final, los programas escritos en alto nivel deben ser traducidos en un lenguaje máquina específico empleando un compilador o un intérprete. De esta manera pueden ser ejecutados por una máquina específica.



El primer lenguaje de programación de alto nivel diseñado para computadoras fue Plankalkül (1948), creado por Konrad Zuse (1910-1995). De todas maneras no fue implementado en su momento.

En tanto el primer lenguaje de programación de alto nivel ampliamente distribuido fue Fortran, un desarrollo de IBM que apareció por primera vez en 1957.

Ventajas y desventajas de los lenguajes de programación de alto nivel

Ventajas

- Resultan en un código fuente más fácil de leer, escribir y mantener por los humanos. En general, permite emplear menos líneas de código en comparación con lenguaje máquina.

-Permiten escribir un código válido ejecutable en distintos tipos de máquinas y sistemas operativos.

- Emplean paradigmas de programación.


Desventajas

  • Son más lentos de ejecutar, siendo el código máquina más eficiente. De todas maneras esto depende del diseño del compilador para lenguajes de alto nivel: un buen diseño produce más eficiencia.

  • En algunos casos el programa resultante requiere una determinada plataforma para ejecutarse.


Modos de ejecución de los lenguajes de programación de alto nivel

Existen tres modos de ejecución de estos lenguajes:
*Interpretado: cuando un código en un lenguaje es interpretado, su sintaxis es leída y luego ejecutada directamente, sin fase de compilación. Un programa llamado intérprete lee cada instrucción del programa, siguiendo el flujo de programa, y decide qué hacer y lo hace. Los intérpretes son la forma más simple de implementación del comportamiento de un lenguaje, comparado con las otras dos variantes listadas aquí.

* Compilado: cuando un código en un lenguaje es compilado, su sintaxis es primero transformada a una forma ejecutable antes de correrlo. Existen dos tipos de compilación: generación de código máquina (compilador que pasa del código fuente directamente al código máquina) y representación intermedia (se compila una representación que puede ser optimizada o guardada para ejecutar luego sin la necesidad de releer el código fuente. Cuando esta representación se guardada puede ser en forma de bytecode).

*Traducción fuente a fuente (Source-to-Source Translated o Trans-compiling): el código escrito en un lenguaje puede ser traducido a términos de un lenguajes de programación para los cuales los compiladores de código nativo ya están ampliamente disponibles. Los lenguajes JavaScript y C son usuales para estas traducciones. Por ejemplo, CoffeeScript, Chicken Scheme y Eiffel.

Ejemplos de lenguajes de programación de alto nivel



Los primeros lenguajes de programación de alto nivel fueron diseñados en los 50. Actualmente existen cientos de lenguajes de este tipo como:
  •  Ada
  • Algol
  •  BASICCOBOL 
  • Delphi
  •  FORTRAN
  • Java 
  • LISP
  • Modula-2
  • Pascal N
  • Perl 
  • php 
  • Prolog
  • Python
  • Visual Basic .NET


LENGUAJE DE BAJO NIVEL

Ulenguaje de programación de características bajo nivel es aquel 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 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.
En este tipo de lenguajes se trabaja a nivel de instrucciones, es decir, su programación es al más fino detalle, además, está completamente orientado a la máquina.
·         Adaptación - Máxima entre programación y aprovechamiento del recurso de la máquina.
·         Velocidad - Máxima al contar con un acceso directo a los recursos, sin capas intermedias.
·         Portabilidad - Mínima por estar restringido a las especificaciones del fabricante.
·         Abstracción - Mínima por depender completamente de la técnica del hardware.
·         Uso - Requiere de la máxima atención y de una organización estructurada sobre la base de los planos del hardware y del objetivo del software.
·         isomorfismo - Conceptualización de los datos de la información, que se complementaran
¿Qué es un lenguaje de bajo nivel?
Los lenguajes de bajo nivel, también llamados lenguajes ensambladores, permiten al programadorescribir instrucciones de un programa usando abreviaturas del inglés, también llamadas palabras nemotécnicas, tales como: ADD, DIV, SUB, etc. Un programa escrito en un lenguaje ensamblador tiene el inconveniente de que no es comprensible para la computadora, ya que, no está compuesto por ceros y unos. Para traducir las instrucciones de un programa escrito en un lenguaje ensamblador a instrucciones de un lenguaje máquina hay que utilizar un programa llamado ensamblador.


PORTABILIDAD


 Es la propiedad de un programa o una aplicación informática que le permite funcionar bajo diferentes sistemas. Cuando el programa informático es portable puede ser utilizados en diferentes tipos de equipos.

La portabilidad es un elemento de suma importancia en la programación de alto nivel. Se dice que un programa informático es portable cuando este es capaz de ejecutarse sobre plataformas diferentes. Lo ideal sería que todos los programas funcionaran con independencia del soporte técnico. En ocasiones para referirse a la portabilidad en la programación se utiliza el término multiplataforma.
Desde los inicios de la informática, uno de los grandes problemas ha sido la interoperabilidad entre los sistemas operativos y las diferentes arquitecturas de hardware. Esto quiere decir que un programa diseñado para un sistema operativo y un procesador concretos no puede ser ejecutado en nigún otro.

Los programas, independientemente del lenguaje en el que han sido escritos, son compilados en código máquina (código binario), el único lenguaje que es capaz de interpretar el hardware y que es específico para cada tipo de procesador. Además, debido a la complejidad de los sistemas actuales, los programas no pueden comunicarse directamente con la máquina y deben hacerlo a través de las librerías que proporcionan los sistemas operativos. Tomando en cuenta estos dos factores el software resultante solo puede ser ejecutado en máquinas determinadas.



Para lograr que un programa sea útil en cualquier plataforma se necesita de un lenguaje intermedio común a todos los sistemas operativos que sea convertido a cada arquitectura cuando sea necesario.


NET Framework y Mono, la versión open source de NET Framework, hacen precisamente eso: al compilar un programa que hayamos escrito, no lo hacemos en código máquina, sino en un lenguaje intermedio conocido como CIL (Common Intermediate Language). Este lenguaje universal, al no ser cercano a la máquina, es independiente de ella y se puede utilizar en cualquier computadora.


NET Framework y Mono son máquinas virtuales cuya función es “traducir” el programa al lenguaje que cada ordenador entiende conforme se va ejecutando. De esta forma, lo único que dependerá de cada plataforma será la máquina virtual pues los programas serán interpretados al momento.






Variables


Eprogramació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 de 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.
Las variables pueden ser de longitud:
·         Fija.- Cuando el tamaño de la misma no variará a lo largo de la ejecución del programa. Todas las variables, sean del tipo que sean tienen longitud fija, salvo algunas excepciones — como las colecciones de otras variables (arrays) o las cadenas.
·         Variable.- Cuando el tamaño de la misma puede variar a lo largo de la ejecución. Típicamente colecciones de datos.
Las variables pueden ser intercambiadas entre rutinas, por valor y por referencia:
·         Por valor.- Se copia el valor (el dato) de la variable en la zona de la pila de llamadas —de ámbito local— que corresponde a la nueva subrutina llamada. Por tanto, esta subrutina obtiene dicho valor pero no puede modificar la variable original. Esto significa que si la variable sufre alteraciones dentro de esta rutina, para poder acceder a dichas modificaciones al finalizar, deberá devolver el nuevo valor de la misma. Si no se realiza esta operación, el valor de la variable será exactamente el mismo que tenía antes de pasar por la función.
·         Por referencia.- No se pasa el valor directamente de la variable, si no una referencia o puntero a la misma —que contiene la dirección de la zona de memoria donde se aloja el contenido—, de tal modo que se opera directamente sobre la zona de memoria que la contiene, lo cual implica que las modificaciones que sufra serán accesibles a posterior.
Respecto al ámbito de una variable, éste puede ser:
·         Local: Cuando la misma sólo es accesible desde un único procedimiento, no pudiendo ser leída o modificada desde otro procedimiento hermano o desde el propio procedimiento padre. Es posible declarar variables en bloques de condición, bucles, etc. de tal modo que sólo pueda accederse a ellas en el propio bloque.
·         Global: Cuando la misma es accesible tanto desde rutinas o macros de la aplicación, como en todos los procedimientos y funciones de la misma.

Constante

En programación, una constante es un valor que no puede ser alterado durante la ejecución de un programa. Corresponde a una longitud fija de un área reservada en la memoria principal del ordenador, donde el programa almacena valores fijos. El nombre de las constantes suele escribirse en mayúsculas en la mayoría de lenguajes.

No hay comentarios:

Publicar un comentario

DESARROLLO DE METODOLOGIAS DE SOFTWARE

El desarrollo de software, ha ido evolucionando constantemente en las metodologías o maneras en las cuales se realiza la planeación para e...