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 prueba, se depura, se 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:
LENGUAJE DE BAJO NIVEL
Un lenguaje 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
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 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