Sei sulla pagina 1di 5

INTRODUCCION A LOS LENGUAJES DE PROGRAMACIN

Definicin de Programas

Un programa puede ser definido como un conjunto de instrucciones que pueden


someterse como unidad a un ordenador y utilizarse para dirigir el comportamiento de
ste.

Tipos de Programas (Fuente, Objeto)

Un programa fuente es aquel que nos permite escribir un algoritmo mediante un


lenguaje formal. Por eso al cdigo desarrollado al programar se le llama cdigo
fuente.

Un programa objeto es el resultado de traducir un programa fuente para obtener un


lenguaje comprensible por la mquina.

Compilador e Interpretador

Traductores de programas

Los traductores son un tipo de programas cuya funcin es convertir el cdigo de un


lenguaje en otro.

Existen distintos tipos de traductores, entre ellos destacan:

Ensambladores

Intrpretes.

Compiladores

Compiladores
Es el tipo de traductor ms conocido. Se trata de un programa que traduce cdigo
fuente escrito en un lenguaje de alto nivel (Pascal) en cdigo mquina (no siempre).
Son ms rpidos que los intrpretes pero presentan mayor dificultad a la hora de
detectar errores.

Intrpretes
Se trata de traductores-ejecutores ya que con cada instruccin realizan un
proceso triple de lectura-traduccin-ejecucin. Son relativamente lentos, pero muy
buenos para la depuracin de programas.

Ensambladores
Es un tipo de traductor que convierte programas escritos en lenguaje
ensamblador en programas escritos en cdigo mquina.

Tipos de Lenguajes (Bajo, Nivel, Alto Nivel)

Lenguaje mquina:

Son aquellos cuyas instrucciones son directamente entendibles por el


ordenador sin la necesidad de traduccin alguna.

Sus instrucciones no son ms que ristras de ceros y unos (bits). stas


especifican la operacin a realizar, los registros del procesador y celdas de
memoria implicados, etc.

Obviamente, este tipo de lenguajes sern fciles de comprender para un


computador pero muy difciles para el hombre. Esta razn nos lleva a buscar
otro lenguaje para comunicarnos con el computador.

Lenguajes de bajo nivel (ensamblador)

La programacin en lenguaje mquina es difcil, por ello se necesitan


lenguajes que permitan simplificar este proceso. Los lenguajes de bajo nivel
han sido diseados para este fin.

Son generalmente dependientes de la mquina, es decir, dependen de


un conjunto de instrucciones especficas del ordenador. Un ejemplo de este tipo
de lenguajes es el ensamblador. En l, las instrucciones se escriben en
cdigos alfabticos conocidos como mnemotcnicos (generalmente,
abreviaturas de palabras inglesas).

Las palabras mnemotcnicas son mucho ms fciles de recordar que las


secuencias de ceros y unos.

A medida que los programas crezcan en tamao y complejidad, el


ensamblador sigue sin ser una buena solucin.

Lenguajes de alto nivel


Son aquellos en los que las instrucciones o sentencias son escritas con
palabras similares a las de los lenguajes humanos (en la mayora de los casos,
el ingls).

Esto facilita la escritura y comprensin del cdigo al programador.

Los programas escritos en lenguaje de alto nivel no son entendibles


directamente por la mquina. Necesitan ser traducidos a instrucciones en
lenguaje mquina que entiendan los ordenadores.

Definicin y propsito de los Lenguajes Naturales y Artificiales

Lenguaje Natural

Comunicacin entre humanos. Lenguaje humano como el espaol o ingls.

Se dice que son naturales en comparacin con el cdigo de notas musicales, el


morse o Fortran.

Un lenguaje natural es ms directo para expresar lo que queremos comunicar. Pero


los lenguajes artificiales (Basic, C, Lisp, etc.) son mucho menos sujetos a malas
interpretaciones por el empleo de trminos con un solo significado.

Lenguaje Artificial

Interaccin hombre-mquina. Aquel por medio de los cual se habla a la mquina y


no entre personas. Tambin llamados inventados, construidos y modelados.

Diferencias entre los Lenguajes Naturales y los Lenguajes Artificiales

Lenguaje Natural

Complejidad (oraciones largas, entonacin, gestos, seas)


Violaciones de Sintaxis

Permite Ambigedad

Desarrollo natural o espontneo


Lenguaje Artificial
Ms simple
Comunicacin clara y precisa
No permite Ambigedad
Desarrollo planeado

Lenguaje de Programacin Pascal o C


El Lenguaje de programacin C fue implantado por primera vez en los aos 70 por
Dennis Ritchie para una computadora DEC PDP-11 corriendo el sistema operativo UNIX.
El lenguaje C, a diferencia de lenguajes como Basic y Pascal que son lenguajes de alto
nivel, es un lenguaje de nivel medio ya que combina las propiedades de un lenguaje de
alto nivel con la funcionalidad del lenguaje ensamblador.

Es esa misma caracterstica la que le da a este lenguaje ms potencia y dominio


sobre los recursos del sistema. Entre una de las caractersticas ms importantes de C
est la portabilidad, esto es, un programa escrito en C se puede trasladar fcilmente
entre distintos sistemas operativos como Windows, DOS o Linux.

Caractersticas.

Un ncleo del lenguaje simple, con funcionalidades aadidas importantes, como


funciones matemticas y de manejo de ficheros, proporcionadas por
bibliotecas.
Es un lenguaje muy flexible que permite programar con mltiples estilos. Uno
de los ms empleados es el estructurado no llevado al extremo (permitiendo
ciertas licencias rupturistas).

Un sistema de tipos que impide operaciones sin sentido.

Usa un lenguaje de preprocesado, el preprocesador de C, para tareas como


definir macros e incluir mltiples ficheros de cdigo fuente.

Acceso a memoria de bajo nivel mediante el uso de punteros.

Interrupciones al procesador con uniones.

Un conjunto reducido de palabras clave.

Por defecto, el paso de parmetros a una funcin se realiza por valor. El paso
por referencia se consigue pasando explcitamente a las funciones las
direcciones de memoria de dichos parmetros.

Punteros a funciones y variables estticas, que permiten una forma


rudimentaria de encapsulado y polimorfismo.

Tipos de datos agregados (struct) que permiten que datos relacionados (como
un empleado, que tiene un id, un nombre y un salario) se combinen y se
manipulen como un todo (en una nica variable "empleado").

Ventajas

Lenguaje muy eficiente puesto que es posible utilizar sus caractersticas de bajo
nivel para realizar implementaciones ptimas.
A pesar de su bajo nivel es el lenguaje ms portado en existencia, habiendo
compiladores para casi todos los sistemas conocidos.
Proporciona facilidades para realizar programas modulares y/o utilizar cdigo o
bibliotecas existentes.

Desventajas

El mayor problema que presenta el desarrollo con el lenguaje C frente a los


lenguajes de tipo de dato dinmico es su gran diferencia de velocidad de desarrollo,
siendo mucho ms lento desarrollando en C. En cambio, los programas terminados
presentan una mejor utilizacin de los recursos hardware. El mantenimiento tambin es
ms difcil y costoso que con el resto de lenguajes.

Por otra parte, la mayor parte de los problemas de seguridad en los sistemas
informticos actuales deriva del hecho de que han sido realizados en C: al no disponer
de sistemas de control y depender casi exclusivamente de la experiencia del
programador, muchas veces quedan algunas entradas de informacin al programa sin
comprobar en su longitud, provocando la sobreescritura de cdigo en la pila del
programa. Los lenguajes de tipo dinmico cuentan con muchos ms controles de
gestin de memoria y de entrada de datos.

Por ello, los directores de desarrollo deben decidir si compensa un desarrollo ms


largo frente a un peor aprovechamiento del hardware y, teniendo en cuenta adems,
que el hardware, a igualdad de prestaciones, baja su precio con el tiempo, mientras
que el coste de los programadores, aumenta.

Ejemplo de cdigo

El siguiente programa imprime en pantalla la frase "Hola Mundo" (C99).

#include <stdio.h> // necesario para utilizar printf()

int main(void)
{
printf("Hola, Mundo\n");
// return 0 implcito en C99 para main().
}

El siguiente escribe "Hola, mundo" en C89

/* comentarios con '//' no permitidos en C89, s en C99 */


#include <stdio.h> /* necesario para utilizar printf */

main() /* tipo 'int' de retorno implcito */


{
printf ("Hola Mundo\n") ;
return 0;
}

Potrebbero piacerti anche