Professional Documents
Culture Documents
Lxico y programacin[editar]
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
naturalacotada (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).[cita requerida]
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.
Programas y algoritmos[editar]
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.
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.
La programacin puede seguir muchos enfoques, o paradigmas, es decir, diversas
maneras de formular la resolucin de un problema dado. Algunos de los principales
paradigmas de la programacin son:
Programacin declarativa
Programacin estructurada
Programacin modular
Programacin orientada a objetos
Compilacin[editar]
El programa escrito en un lenguaje de programacin de alto nivel (fcilmente
comprensible por el programador) es llamado programa fuente y no se puede ejecutar
directamente en una computadora. La opcin ms comn es compilar el programa
obteniendo un mdulo objeto, aunque tambin puede ejecutarse en forma ms directa
a travs de un intrprete informtico.
El cdigo fuente del programa se debe someter a un proceso de traduccin para
convertirlo a lenguaje mquina o bien a un cdigo intermedio, generando as un
mdulo denominado "objeto". A este proceso se le llama compilacin.
Habitualmente la creacin de un programa ejecutable (un tpico.exe para Microsoft
Windows o DOS) conlleva dos pasos. El primer paso se llama compilacin
(propiamente dicho) y traduce el cdigo fuente escrito en un lenguaje de
programacin almacenado en un archivo de texto a cdigo en bajo nivel (normalmente
en cdigo objeto, no directamente a lenguaje mquina). El segundo paso se
llama enlazado en el cual se enlaza el cdigo de bajo nivel generado de todos los
ficheros y subprogramas que se han mandado compilar y se aade el cdigo de las
funciones que hay en las bibliotecas del compilador para que el ejecutable pueda
comunicarse directamente con el sistema operativo, traduciendo as finalmente
el cdigo objeto a cdigo mquina, y generando un mdulo ejecutable.
Estos dos pasos se pueden hacer por separado, almacenando el resultado de la fase
de compilacin en archivos objetos (un tpico .o para Unix, .obj para MS-Windows,
DOS); para enlazarlos en fases posteriores, o crear directamente el ejecutable; con lo
que la fase de compilacin puede almacenarse solo de forma temporal. Un programa
podra tener partes escritas en varios lenguajes, por
ejemplo, Java, C, C++ y ensamblador, que se podran compilar de forma
independiente y luego enlazar juntas para formar un nico mdulo ejecutable.
Referencias histricas[editar]
El trabajo de Ada Lovelace, hija de Anabella Milbanke Byron y Lord Byron, que realiz
para la mquina de Babbage le hizo ganarse el ttulo de primera programadora de
computadoras del mundo, aunque Babbage nunca complet la construccin de la
mquina. El nombre del lenguaje de programacin Ada fue escogido como homenaje a
esta programadora.
Objetivos de la programacin[editar]
La programacin debe perseguir la obtencin de programas de calidad. Para ello se
establece una serie de factores que determinan la calidad de un programa. Algunos de
los factores de calidad ms importantes son los siguientes:
Eficiencia. Se trata de que el programa, adems de realizar aquello para lo que fue
creado (es decir, que sea correcto), lo haga gestionando de la mejor forma posible
los recursos que utiliza. Normalmente, al hablar de eficiencia de un programa, se
suele hacer referencia al tiempo que tarda en realizar la tarea para la que ha sido
creado y a la cantidad de memoria que necesita, pero hay otros recursos que
tambin pueden ser de consideracin para mejorar la eficiencia de un programa,
dependiendo de su naturaleza (espacio en disco que utiliza, trfico en la red que
genera, etc.).
Definiciones
Hardware: Componentes fsicos de un ordenador, por ejemplo: monitor, ratn,
teclado, ordenador, impresora, ...
Software: Programas o elementos lgicos que hacen funcionar un ordenador o que
se ejecutan en ellos, distinguir: sistema operativa, programa
Historia de la Programacin
Sobre los ltimos 50 aos, los idiomas que programan han evolucionado del
cdigo binario de mquina a herramientas poderosas que crean las abstracciones
complejas. Es importante entender por qu los idiomas han evolucionado, y qu
capacidades que los idiomas ms nuevos nos dan.
"Tan largo como no haba mquinas, programar era ningn problema; cuando
tuvimos unos pocas computadoras dbiles, programar lleg a ser un problema
templado y ahora que tenemos las computadoras gigantescas, programar ha
llegado a ser un problema igualmente gigantesco. En este sentido que la industria
electrnica no ha resuelto un solo problema, tiene slo los cre - ha creado el
problema de usar su producto". [Edsger. W. Dijkstra. "El Programista Humilde" (la
Conferencia del Premio de Turing), Comunicaciones del ACM, Vol 15, No. 10 (el
octubre 1972).]
John Von Neumann desarroll el modelo que lleva su nombre, para describir este
concepto de "programa almacenado". En este modelo, se tiene una abstraccin de
la memoria como un conjunto de celdas, que almacenan simplemente nmeros.
Estos nmeros pueden representar dos cosas: los datos, sobre los que va a
trabajar el programa; o bien, el programa en s.
La solucin que se tom fue la siguiente: a cada accin que sea capaz de realizar
nuestra computadora, asociarle un nmero, que ser su cdigo de operacin
(opcode) . Por ejemplo, una calculadora programable simple podra asignar los
opcodes :
Podemos ver que con esta representacin, es simple expresar las operaciones de
las que es capaz el hardware (en este caso, nuestra calculadora imaginaria), en la
memoria.
Tercera Generacin
Con el desarrollo en los 50s y 60s de algoritmos de ms elevado nivel, y el
aumento de poder del hardware, empezaron a entrar al uso de computadoras
cientficos de otras ramas; ellos conocan mucho de Fsica, Qumica y otras ramas
similares, pero no de Computacin, y por supuesto, les era sumamente
complicado trabajar con lenguaje Ensamblador en vez de frmulas. As, naci el
concepto de Lenguaje de Alto Nivel, con el primer compilador de FORTRAN
(FORmula TRANslation), que, como su nombre indica, inici como un "simple"
esfuerzo de traducir un lenguaje de frmulas, al lenguaje ensamblador y por
consiguiente al lenguaje de mquina. A partir de FORTRAN, se han desarrollado
innumerables lenguajes, que siguen el mismo concepto: buscar la mayor
abstraccin posible, y facilitar la vida al programador, aumentando la
productividad, encargndose los compiladores o intrpretes de traducir el lenguaje
de alto nivel, al lenguaje de computadora.
Cuarta Generacin
Los idiomas de la cuarta generacin parecen segn las instrucciones a las de la
tercera generacin. Lo nuevo de estas lenguajes son conceptos como clases,
objetos y eventos que permiten soluciones ms fciles y lgicos. Lenguajes como
C++, java y C# se llaman lenguajes orientadas al objeto.
Los idiomas modernos, tal como C++ y Java, no slo permite las abstracciones,
pero permite la implementacin impuesta de restricciones en abstracciones. La
mayora de los idiomas modernos son objetivas orientado, que permite que m
modele el mundo verdadero que usa mi idioma. Adems, puedo limitar el acceso
para modelar las restricciones de mundo verdadero en datos. La llave es que us
el trmino "mundo verdadero." Por la primera vez, yo modelo mi solucin en
trminos del problema. Quiero que mi solucin sea orientado de problema, para
que la solucin refleje el mundo verdadero en trminos de estructuras de datos y
acceso a los datos. Yo tambin puedo aplicar directamente y para poder modelar
objetos de mundo verdadero usando las clases (en C + + o Java).
Quinta Generacin
Como la quinta generacin estn conocidos los Lenguajes de inteligencia artificial.
Han sido muy valorados al principio de las noventa - mientras ahora el desarrollo
de software toma otras caminos.
ejemplo Flowchart
ejemplo UML