Sie sind auf Seite 1von 13

Lenguaje de programacin

Captura de la microcomputadora Commodore PET-32 mostrando un programa en el lenguaje de programacin BASIC, bajo el emulador VICEen una distribucin GNU/Linux.

Un lenguaje de programacin es un idioma artificial diseado para expresar procesos que pueden ser llevadas a cabo por mquinas como las computadoras. Pueden usarse para crear programas que controlen el comportamiento fsico y lgico de una mquina, para expresar algoritmos con precisin, o como modo de comunicacin humana.1 Est formado por un conjunto de smbolos y reglas sintcticas ysemnticas 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 cdigo fuente de un programa informticose le llama programacin. Tambin la palabra programacin se define como el proceso de creacin de

un programa de computadora, mediante la aplicacin de procedimientos lgicos, a travs de los siguientes pasos:

El desarrollo lgico del programa para resolver un problema en particular. Escritura de la lgica del programa empleando un lenguaje de programacin especfico (codificacin del programa).

Ensamblaje o compilacin del programa hasta convertirlo en lenguaje de mquina. Prueba y depuracin del programa. Desarrollo de la documentacin.

Existe un error comn que trata por sinnimos los trminos 'lenguaje de programacin' y 'lenguaje informtico'. Los lenguajes informticos engloban a los lenguajes de programacin y a otros ms, como por ejemplo HTML (lenguaje para el marcado de pginas web que no es propiamente un lenguaje de programacin, sino un conjunto de instrucciones que permiten disear el contenido de los documentos). Permite especificar de manera precisa sobre qu datos debe operar una computadora, cmo deben ser almacenados o transmitidos y qu acciones debe tomar bajo una variada gama de circunstancias. Todo esto, a travs de un lenguajeque intenta estar relativamente prximo al lenguaje humano o natural. Una caracterstica relevante de los lenguajes de programacin es

precisamente que ms de un programador pueda usar un conjunto comn de instrucciones que sean comprendidas entre ellos para realizar la construccin de un programa de forma colaborativa.

LENGUAJES DE PROGRAMACION
Un lenguaje de programacin es un lenguaje que puede ser utilizado para controlar el comportamiento de una mquina, particularmente una computadora. Consiste en un conjunto de reglas sintcticas y semnticas que definen su estructura y el significado de sus elementos, respectivamente. Aunque muchas veces se usa lenguaje de programacin y lenguaje informtico como si fuesen sinnimos, no tiene por qu ser as, ya que los lenguajes informticos engloban a los lenguajes de programacin y a otros ms, como, por ejemplo, el HTML.

Un lenguaje de programacin es un lenguaje que puede ser utilizado para crear programas que controlen el comportamiento fsico y lgico de una mquina, para expresar algoritmos con precisin, o como modo de comunicacin humana.1

PROGRAMA

Programa informtico
Un programa informtico es un conjunto de instrucciones que una vez ejecutadas realizarn una o varias tareas en una computadora. Sin programas, estas mquinas no pueden funcionar.1 2 Al conjunto general de programas, se le denomina software, que ms genricamente se refiere al equipamiento lgico o soporte lgico de una computadora digital. En informtica, se los denomina comnmente binarios, (propio en sistemas Unix, donde debido a la estructura de este ltimo, los ficheros no necesitan hacer uso de extensiones; posteriormente, los presentaron como ficheros ejecutables, con extensin .exe, en los sistemas operativos de la familia Windows) debido a que una vez que han pasado por el proceso de compilacin y han sido creados, las instrucciones que se escribieron en un determinado lenguaje de programacin, han sido traducidas al nico idioma que la mquina comprende, combinaciones de ceros y

unos llamadocdigo mquina. El mismo trmino, puede referirse tanto a un programa ejecutable, como a su cdigo fuente, el cual estransformado en un binario una vez que es compilado. Generalmente el cdigo fuente lo escriben profesionales conocidos como programadores. Este cdigo se escribe en un lenguaje que sigue uno de los siguientes dos paradigmas: imperativo o declarativo, y que posteriormente puede ser convertido en una imagen ejecutable a travs de un programa-compilador. Cuando se pide que el programa sea ejecutado, el procesador ejecuta instruccin por instruccin. De acuerdo a sus funciones, los programas informticos se clasifican en software de sistema y software de aplicacin. En los computadores actuales, al hecho de ejecutar varios programas de forma simultnea y eficiente, se le conoce como multitarea.

ndice [ocultar] 1 Programacin o 1.1 Paradigmas

2 Ejecucin o 2.1 Programas que se auto-modifican

3 Ejecucin y almacenamiento de los programas o o o o 3.1 Programas empotrados en hardware 3.2 Programas cargados manualmente 3.3 Programas generados automticamente 3.4 Ejecucin simultnea

4 Categoras funcionales 5 Vase tambin 6 Referencias 7 Bibliografa

[editar]Programacin
Artculo principal: Programacin.

#include

<stdio.h>

int { printf("Hello return 0; }


El cdigo fuente de un programa escrito en ellenguaje de programacin C

main()

world!\n");

La programacin de computadoras es el proceso iterativo de escribir o editar cdigo fuente. Dicha edicin de cdigo fuente implica probar, analizar y perfeccionar, y, a veces, coordinar con otros programadores, en el caso de un programa desarrollado en conjunto. Una persona que practica esta tcnica se la conoce como programador de computadoras, desarrollador de software, o codificador. El proceso, a veces a largo plazo, de programacin de computadoras normalmente se lo conoce como desarrollo de software. El trmino ingeniera de software se est convirtiendo en muy popular, ya que esta actividad es vista como una disciplina de ingeniera.

[editar]Paradigmas
Los programas de ordenador para se pueden clasificar Dos segn de los el paradigma del lenguaje principales de

programacin utilizado

producirlos.

paradigmas

son imperativos y declarativos. Los programas escritos con un


3

lenguaje

imperativo

especifican

un algoritmo utilizando

declaraciones, expresiones e informes. Una declaracin asocia un nombre de variable a un tipo de datos. Por ejemplo: var x: integer; . Una expresin produce un valor. Por ejemplo: 2 +

2 produce 4. Por ltimo, una declaracin puede asignar una expresin a una variable o usar el valor
de una variable para alterar las estructuras de control del programa. Por ejemplo: x := 2 + 2;

if x = 4 then hacer_algo(); Una crtica de los lenguajes imperativos es el efecto


secundario de una sentencia de asignacin en una clase de variables llamadas variables no locales.4 Los programas escritos en un lenguaje declarativo especifican las propiedades que tienen o que deben cumplirse para la salida. No especifican detalles expresados en trminos de flujo de control de la mquina de ejecucin pero s de las relaciones matemticas entre los objetos declarados y sus propiedades. Los lenguajes funcionales y lgicos son dos amplias categoras de lenguajes declarativos. El principio detrs de los lenguajes funcionales (como Haskell) es el de no permitir efectos secundarios, lo que hace que sea ms fcil para razonar sobre los programas como si se tratasen de funciones matemticas.4 El principio detrs de los lenguajes lgicos (como Prolog) es definir el problema a ser resuelto - la meta - y dejar la solucin detallada al propio sistema Prolog.5 El objetivo se define proporcionando la lista de sub-objetivos. Luego, cada subobjetivo se define ms arriba, proporcionando la lista de sus sub-objetivos, etc. Si la ruta de sub-objetivos no encuentra una solucin, entonces ese subobjetivo se retrocede y otra va se intenta

sistemticamente. La forma en que se crea el programa puede ser textual o visual. En un programa de lenguaje visual, los elementos en vez de ser textualmente especificados son manipulados grficamente.

[editar]Ejecucin
Una vez escritos, pueden ser ejecutados de diversas formas6 :

Mediante un programa que va adaptando las instrucciones conforme son encontradas. A este proceso se lo llamainterpretar y a los programas que lo hacen se los conoce como intrpretes. Ejemplos de esto son bash, clsico en estaciones Unix y que fue escrito para el proyecto GNU o Python, cuya peculiaridad adems de ser multipropsito, est en su facilidad de uso y productividad y de hecho, es usado en parte de los proyectos Google y YouTube.7

Traduciendo el cdigo escrito del programa (lo que se denomina cdigo fuente), a su equivalente en lenguaje mquina. A este proceso se le llama compilar y al programa traductor

se le denomina compilador. Ejemplos de esto son: El lenguaje C, que combina en su sintaxis caractersticas de medio y bajo nivel y el compilador gcc usado en el proyecto GNU.

[editar]Programas

que se auto-modifican

Un programa informtico en ejecucin normalmente es tratado como algo diferente de los datos con los cuales opera. Sin embargo, en algunos casos sta distincin es ambigua, especialmente cuando un programa se modifica a s mismo. El programa modificado es secuencialmente ejecutado como parte del mismo programa. El cdigo que se auto-modifica es posible para programas escritos en cdigo mquina, Lenguaje ensamblador, Lisp, C, COBOL, PL/1 y Prolog yJavaScript (la funcin eval), entre otros.

[editar]Ejecucin

y almacenamiento de los programas

Tpicamente, los programas se almacenan en una memoria no voltil (por ejemplo un disco), para que luego el usuario de la computadora, directa o indirectamente, solicite su ejecucin. Al momento de dicha solicitud, el programa es cargado en la memoria de acceso aleatorio o RAM del equipo, bajo el control del software llamado sistema operativo, el cual puede acceder directamente al procesador. El procesador ejecuta (corre) el programa, instruccin por instruccin hasta que termina. A un programa en ejecucin se le suele llamar tambin proceso. Un programa puede terminar su ejecucin en forma normal o por causa de un error, dicho error puede ser de software o de hardware.

[editar]Programas

empotrados en hardware

El microcontrolador a la derecha de laMemoria USB est controlada por unfirmware empotrado.

Algunos programas estn empotrados en el hardware. Una computadoracon arquitectura de programas almacenados requiere un programa inicial almacenado en su ROM para arrancar. El proceso de arranque es para identificar e inicializar todos los aspectos del sistema, desde los registros del procesador, controladores de dispositivos hasta el contenido de lamemoria RAM.8 Seguido del proceso de inicializacin, este programa inicial carga al sistema operativo e inicializa al contador de programa para empezar las operaciones normales. Independiente de la computadora, undispositivo de hardware podra tener firmware empotrado para el control de sus

operaciones. El firmware se utiliza cuando se espera que el programa cambie en raras ocasiones o nunca, o cuando el programa no debe perderse cuando haya ausencia de energa. 9

[editar]Programas

cargados manualmente

Interruptores para la carga manual en unaData General Nova 3.

Los programas histricamente se cargaron manualmente al procesador central mediante interruptores. Una instruccin era representada por una configuracin de estado abierto o cerrado de los interruptores. Despus de establecer la configuracin, se ejecutaba un botn de ejecucin. Este proceso era repetitivo. Tambin, histricamente los programas se cargaban manualmente mediante una cinta de papel o tarjetas perforadas. Despus de que el programa se cargaba, la direccin de inicio se estableca mediante interruptores y el botn de ejecucin se presionaba.10

[editar]Programas
La programacin

generados automticamente
un estilo de programacin que ygeneradores de crea cdigo cdigo para

automtica es

fuente mediante clases genricas, prototipos, plantillas, aspectos,

aumentar la productividad del programador. El cdigo fuente se genera con herramientas de programacin tal como un procesador de plantilla o un IDE. La forma ms simple de un generador de cdigo fuente es un procesador macro, tal como el preprocesador de C, que reemplaza patrones de cdigo fuente de acuerdo a reglas relativamente simples. Un motor de software da de salida cdigo fuente o lenguaje de marcado que simultneamente se vuelve la entrada de otro proceso informtico. Podemos pensar como analoga un proceso manejando a otro siendo el cdigo mquina quemado como combustible. Los servidores de aplicaciones son motores de software que entregan aplicaciones acomputadoras cliente. Por ejemplo, un software para wikis es un sevidor de aplicaciones que permite a los usuarios desarrollar contenido dinmico ensamblado a partir de artculos. Las Wikis

generan HTML, CSS, Java, y Javascript los cuales son interpretados por un navegador web.

[editar]Ejecucin

simultnea

Vanse tambin: Proceso (informtica) y Multiprocesamiento.

Muchos programas pueden correr simultneamente en la misma computadora, a lo cual se le conoce como multitarea y puede lograrse a travs de mecanismos de software o de hardware. Los sistemas operativos modernos pueden correr varios programas a travs del planificador de procesos un mecanismo de software para conmutar con frecuencia la cantidad de procesos del procesador de modo que los usuarios puedan interactuar con cada programa mientras estos estn corriendo.11 Tambin se puede lograr la multitarea por medio del hardware; las computadoras modernas que usan varios procesadores o procesadores con varios ncleos pueden correr muchos programas a la vez.12

[editar]Categoras

funcionales

Los programas se pueden categorizar segn lneas funcionales. Estas categoras funcionales son software de sistema ysoftware de aplicacin. El software de sistema incluye al sistema operativo el cual acopla el hardware con el software de aplicacin.13 El propsito del sistema operativo es proveer un ambiente en el cual el software de aplicacin se ejecuta de una manera conveniente y eficiente.13 Adems del sistema operativo, el software de sistema incluye programas utilitarios que ayudan a manejar y configurar la computadora. Si un programa no es software de sistema entonces es software de aplicacin. El middleware tambin es un software de aplicacin que acopla el software de sistema con lainterfaz de usuario. Tambin son software de aplicacin los programas utilitarios que ayudan a los usuarios a resolver problemas de aplicaciones, como por ejemplo la necesidad de ordenamiento.

[editar]Vase

tambin

La programacin es el proceso de disear, codificar, depurar y mantener el cdigo fuente de programas computacionales. El cdigo fuente es escrito en un lenguaje de programacin. El propsito de la programacin es crear programas que exhiban un comportamiento deseado. El proceso de escribir cdigo requiere frecuentemente conocimientos en varias reas distintas, adems del dominio del lenguaje a utilizar, algoritmos especializados y lgica formal. Programar no involucra necesariamente otras tareas tales como el anlisis y diseo de la aplicacin (pero s el diseo del cdigo), aunque s suelen estar fusionadas en el desarrollo de pequeas aplicaciones.

Lxico y programacin
La programacin se rige por reglas y un conjunto ms o menos reducido de rdenes, expresiones, instrucciones y comandos que tienden a asemejarse a una lengua natural acotada (en ingls); y que adems tienen la particularidad de una reducida ambigedad. Cuanto menos ambiguo es un lenguaje de programacin, se dice, es ms potente. Bajo esta premisa, y en el extremo, el lenguaje ms potente existente es el binario, con ambigedad nula (lo cual lleva a pensar as del lenguaje ensamblador). En los lenguajes de programacin de alto nivel se distinguen diversos elementos entre los que se incluyen el lxico propio del lenguaje y las reglas semnticas y sintcticas. [editar]Programas

y algoritmos

Un algoritmo es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema. Un programa normalmente implementa (traduce a un lenguaje de programacin concreto) uno o ms algoritmos. Un algoritmo puede expresarse de distintas maneras: en forma grfica, como un diagrama de flujo, en forma de cdigo como en pseudocdigo o un lenguaje de programacin, en forma explicativa, etc. Los programas suelen subdividirse en partes menores, llamadas mdulos, de modo que la complejidad algortmica de cada una de las partes sea menor que la del programa completo, lo cual ayuda al desarrollo del programa. Esta es una prctica muy utilizada y se conoce como "refino progresivo". Segn Niklaus Wirth, un programa est formado por los algoritmos y la estructura de datos. Se han propuesto diversas tcnicas de programacin cuyo objetivo es mejorar tanto el proceso de creacin de softwarecomo su mantenimiento. Entre ellas, se pueden mencionar las siguientes:

programacin declarativa programacin estructurada programacin modular programacin orientada a objetos

Paradigma de programacin
Un paradigma de programacin es una propuesta tecnolgica que es adoptada por una comunidad de programadores cuyo ncleo central es incuestionable en cuanto a que unvocamente trata de resolver uno o varios problemas claramente delimitados. La resolucin de estos problemas debe suponer consecuentemente un avance significativo en al menos un parmetro que afecte a la ingeniera de software. Tiene una estrecha relacin con la formalizacin de determinados lenguajes en su momento de definicin. Un paradigma de programacin est delimitado en el tiempo en cuanto a aceptacin y uso ya que nuevos paradigmas aportan nuevas o mejores soluciones que la sustituyen parcial o totalmente. Ejemplo : Probablemente el paradigma de programacin que actualmente es el ms usado a todos los niveles es la orientacin a objeto. El ncleo central de este paradigma es la unin de datos y procesamiento en una entidad llamada "objeto", relacionable a su vez con otras entidades "objeto". Tradicionalmente datos y procesamiento se han separado en reas diferente del diseo y la implementacin de software. Esto provoc que grandes desarrollos tuvieran problemas de fiabilidad, mantenimiento, adaptacin a los cambios y escalabilidad. Con la orientacin a objetos y caractersticas como el encapsulado, polimorfismo o la herencia se permiti un avance significativo en el desarrollo de software a cualquier escala de produccin. La orientacin a objeto parece estar ligada en sus orgenes con lenguajes como Lisp y Simula aunque el primero que acu el ttulo de programacin orientada a objetos fue Smalltalk

[editar]Tipos

de paradigmas de programacin ms comunes

Imperativo o por procedimientos: es considerado el ms comn y est representado, por ejemplo, por C, BASIC oPascal

Funcional: est representado por Scheme o Haskell. Este es un caso del paradigma declarativo. Lgico: est representado por Prolog. Este es otro caso del paradigma declarativo. Declarativo: por ejemplo la programacin funcional, la programacin lgica, o la combinacin lgico-funcional.

Orientado a objetos: est representado por Smalltalk, un lenguaje completamente orientado a objetos.

Si

Compiladores e Intrpretes

bien

puede seleccionarse la forma pura de estos paradigmas al momento de programar, en la prctica es habitual que se mezclen, dando lugar a la programacin multiparadigma. Actualmente el paradigma de programacin ms usado es el de la programacin orientada a objetos.

En qu se diferencia un compilador de un intrprete?


Al conjunto de instrucciones escrito en un lenguaje de alto nivel se le llama cdigo fuente delprograma. As pues, el compilador es un programa que recibe como datos de entrada el cdigo fuente de un programa escrito por un programador, y genera como salida un conjunto de instrucciones escritas en el lenguaje binario de la computadora donde se van a ejecutar. Al conjunto de instrucciones generado por el compilador se le denomina cdigo objeto del programa, tambin conocido por cdigo mquina o cdigo binario, ya que, es, en s mismo, un programa ejecutable por la mquina. As, por ejemplo, un programador de C normalmente utilizar un programa de edicin para escribir el cdigo fuente de un programa, y lo guardar en un archivo con extensin (.c). Por ejemplo, Sumar.c. A continuacin, un compilador de C traducir el cdigo fuente a cdigo objeto, guardndolo con otra extensin, que, dependiendo del sistema operativo puede variar. Por ejemplo, en Windows, se guardar con la extensin (.obj), abreviatura de object. Por otro lado, existe un tipo delos programas llamados intrpretes, tambin sirven para traducir el cdigo fuente de un programa a cdigo objeto, pero, su manera de actuar es diferente con respecto a la de un compilador. El funcionamiento de un intrprete se caracteriza por traducir y ejecutar, de una en una, las

instrucciones del cdigo fuente de un programa, pero, sin generar como salida cdigo objeto. El proceso que realiza un intrprete es el siguiente: lee la primera instruccin del cdigo fuente, la traduce a cdigo objeto y la ejecuta; a continuacin, hace lo mismo con la segunda instruccin; y as sucesivamente, hasta llegar a la ltima instruccin del programa, siempre y cuando, no se produzca ningn error que detenga el proceso. Ya que en un programa pueden existir, bsicamente, tres tipos de errores: de sintaxis, de ejecucin y de lgica.