Objetivo de Trabajo.
Satisfacer su
especificación exactamente a menudo, sin embargo, a causa de la complejidad de
la labor del programa, y de un entendimiento o cuidado inadecuado de parte del
programador, un programa falla en satisfacer alguna parte de su especificación,
un programa tiene que ser en todo tiempo cuidadoso de la exactitud o
pertinencia del programa para su propósito especificado.
Introducción
Definición de
programación.
Programación es
la acción y
efecto de programar.
Este verbo tiene varios usos: se refiere a idear y ordenar las acciones
que se realizarán en el marco de un proyecto;
al anuncio de las partes que componen un acto o espectáculo; a la preparación
de máquinas para que cumplan con una cierta tarea en un momento determinado; a
la elaboración de programas para la resolución de problemas mediante
ordenadores; y a la preparación de los datos necesarios para obtener una
solución de un problema a través de una calculadora electrónica, por ejemplo.
Una vez hallada la idea, se debe
establecer el diseño de la misma; en otras palabras, se
trata de formalizar todo aquello que se haya discutido durante la búsqueda
inicial. Si bien cada equipo trabaja a su manera, dado que no se puede
estructurar la creación de una forma rígida, es probable que el siguiente paso
lógico sea comenzar a experimentar a través de la programación, para facilitar
a los diseñadores un contacto directo e interactivo con su idea.
Los programadores tienen en sus manos el
poder de dar vida a un sistema, a una aplicación, a un videojuego. Es
importante notar que todos estos productos pueden ser definidos en absoluto
detalle en un documento, incluyendo imágenes y gráficos que expliquen cómo
funciona cada milímetro de los mismos; sin embargo, hasta que un desarrollador
de software no entra en acción, no es posible verlos en movimiento, probarlos,
pasar de la teoría a la práctica.
En un plano más técnico, la programación
se realiza mediante el uso de algoritmos, que son secuencias
finitas, ordenadas y no ambiguas de instrucciones que deben seguirse para
resolver un problema.
Algunas de ellas pueden agruparse y recibir un nombre para poder ser invocadas
con facilidad tantas veces como sea necesario. Del mismo modo que los seres
humanos necesitamos respirar constantemente, una aplicación informática
necesita conocer la posición del puntero del ratón a cada momento, así como su
actividad (si se ha hecho clic y con qué botón, si se ha soltado o si se
mantiene presionado, etcétera).
Por último, cabe destacar que se conoce
como programación al conjunto de los programas de televisión o radio. Por ejemplo: “Tengo
ganas de ver una película; veamos qué hay en la programación”.
Lenguajes
de programación
Al desarrollarse las primeras computadoras electrónicas,
se vio la necesidad de programarlas, es decir, de almacenar en memoria la información sobre
la tarea que iban a ejecutar. Las primeras se usaban como calculadoras simples;
se les indicaban los pasos de cálculo, uno por uno.
John Von Neumann desarrolló
el modelo que
lleva su nombre, para describir este concepto de
"programa almacenado".
En este modelo, se tiene una abstracción de la memoria como
un conjunto de celdas, que almacenan simplemente números. Estos números pueden
representar dos cosas: los datos, sobre los que va a trabajar el
programa; o bien, el programa en sí.
Por ejemplo,
una calculadora programable simple podría asignar los opcodes
1 = SUMA, 2 =
RESTA, 3 = MULTIPLICA, 4 = DIVIDE.
La descripción y
uso de los opcodes es lo que llamamos lenguaje de
máquina . Es decir, la lista de códigos que la máquina va a interpretar como
instrucciones, describe las capacidades de programación que
tenemos de ella; es el lenguaje más
primitivo, depende directamente del hardware, y requiere del programador que
conozca el funcionamiento de la máquina al más bajo nivel.
Su Clasificación.
Java
El lenguaje de
programación Java, fue diseñado por la compañía Sun
Microsystems Inc, con el propósito de crear un lenguaje que pudiera funcionar
en redes computacionales heterogéneas ( redes
de computadoras formadas
por más de un tipo de computadora, ya sean PC, MAC's, estaciones de trabajo, etc.), Esto significa que un programa
de Java puede ejecutarse en cualquier máquina o plataforma. El lenguaje fue
diseñado con las siguientes características en mente:
·
Simple. Elimina la complejidad de
los lenguajes como "C" y da paso al contexto de los lenguajes
modernos orientados a objetos. Orientado a Java puede funcionar como una
aplicación sola o como un "applet", que es un pequeño programa hecho
en Java. Los applets de Java se pueden "pegar" a una página de Web (HTML), y con esto puedes tener un programa que
cualquier persona que
tenga un browser compatible podrá usar.
Unix
No todo el
"árbol" de directorios está compuesto por directorios de usuario.
Existen muchos de ellos que son de uso general o del propio sistema y con los
que habrá que familiarizarse. Los más importantes son:
/
El raíz, del
que "cuelgan" todos.
/bin y /usr/bin
Contienen comandos UNIX
ejecutables.
/etc
Es quizá el
directorio más importante. Contiene ficheros de datos y configuración del
sistema, el fichero de password, configuración de terminales, red,
etc (de ahí su nombre).
/dev
Ficheros de
dispositivos E/S.
/usr/man
Manual
/tmp
Directorio para
arreglos temporales. TODOS los usuarios pueden leer y escribir en él.
Lenguaje C
C es un
lenguaje de programación diseñado por Dennis Ritchie, de los Laboratorios Bell,
y
se instaló en
un PDP-11 en 1972; se diseñó para ser el lenguaje de los Sistemas Operativos
Ejemplo de un Programa en C
/*Programa
ejemplo que despliega el contenido de "ROL" en pantalla*/
despliega_rol()
{
printf("Mi
rol es : \%s\n", ROL);
}
void main() {
despliega_rol();
}
/* Fin programa
*/
Unix1
A su vez, UNIX
es un Sistema Operativo desarrollado por Ken Thompson, quién
utilizó el
lenguaje ensamblador y un lenguaje llamado B para producir las versiones
originales de UNIX, en 1970. C se inventó para superar las limitaciones de B.
Pascal
Pascal es un
lenguaje de programación de alto nivel de propósito general; esto es, se puede
utilizar para escribir programas para
fines científicos y comerciales.
El lenguaje de
programación Pascal fue desarrollado por el profesor Niklaus
(Nicolás) Wirth en Zurich, Zuiza, al final de los años 1960s y principios de
los 70s. Wirth diseñó este lenguaje para que fuese un buen primer lenguaje de
programación para personas comenzando a aprender a programar. Pascal tiene un
número relativamente pequeño de conceptos para aprender y dominar. Su diseño facilita
escribir programas usando un estilo que está generalmente aceptado como
práctica estándar de programación buena. Otra de las metas del diseño de Wirth
era la implementación fácil. Él diseñó un lenguaje para el cual fuese fácil
escribir un compilador para un nuevo tipo de computadora.
program
Sorting;
{
Este programa
lee un natural y una secuencia de N caracteres de la entrada estandar;
construye un indice para ordenarlos de menor a mayor e imprime en la salida la
secuencia ordenada.
QBasic
Qbasic es un
lenguaje de alto nivel, el cual consiste en instrucciones que los humanos
pueden relacionar y entender. El compilador de Qbasic se encarga de traducir el
mismo a lenguaje de máquina.
Un programa es
una secuencia de instrucciones. El proceso de ejecutar esas instrucciones se
llama correr el programa. Los programas contienen las funciones de entrada,
procesamiento y salida. La persona que resuelve problemas mediante
escribir programas en la computadora se conoce como programador. Después de
analizar el problema y desarrollar un plan para
solucionarlo, escribe y prueba el programa que instruye a la computadora como
llevar a cabo el plan. El procedimiento que realiza el programador se define
como "problem solving". Pero es necesario especificar que un
programador y un usuario no son lo mismo. Un usuario es cualquier persona que
use el programa.
Linux.
Linux es una
implementación del sistema operativo UNIX (uno más de entre los numerosos
clónicos del histórico Unix), pero con la originalidad de ser gratuito y a la
vez muy potente, que sale muy bien parado (no pocas veces victorioso) al
compararlo con las versiones comerciales para sistemas de mayor envergadura y
por tanto teóricamente superiores. Comenzó como proyecto personal del
–entonces estudiante- Linus Torvalds, quien tomó como punto de partida otro
viejo conocido, el Minix de Andy. S. Tanenbaum (profesor de sistemas operativos
que creó su propio sistema operativo Unix en PCs XT para usarlo en su docencia). Actualmente Linus lo sigue
desarrollando, pero a estas alturas el principal autor es la red Internet,
desde donde una gigantesca familia de
programadores y usuarios aportan diariamente su tiempo aumentando susprestaciones y
dando información y soporte técnico mútuo. La versión original -y aun
predominante- comenzó para PCs compatibles (Intel 386 y superiores), existiendo
también en desarrollo versiones para prácticamente todo tipo de plataformas:
Ensamblador
Cuando
abstraemos los opcodes y los sustituimos por una palabra que sea una clave de
su significado, a la cual comúnmente se le conoce como mnemónico , tenemos el
concepto de Lenguaje Ensamblador . Así, podemos definir simplemente al Lenguaje Ensamblador de la siguiente forma:
Lenguaje
Ensamblador es la primera abstracción del Lenguaje de Máquina , consistente en
asociar a los opcodes palabras clave que faciliten su uso por parte del
programador
Como se puede
ver, el Lenguaje Ensamblador es directamente traducible al Lenguaje de Máquina,
y viceversa; simplemente, es una abstracción que facilita su uso para los seres
humanos. Por otro lado, la computadora no entiende directamente al Lenguaje
Ensamblador; es necesario traducirle a Lenguaje de Máquina. Originalmente, este
proceso se hacía a mano, usando para ello hojas donde se escribían tablas de
programa similares al ejemplo de la calculadora que vimos arriba . Pero, al ser
tan directa la traducción, pronto aparecieron los programas
Ensambladores, que son traductores que convierten el código fuente (en Lenguaje
Ensamblador) a código objeto (es decir, a Lenguaje de Máquina).
En ciertos
casos extremos, puede llegarse a sobreescribir información del CMOS de la
máquina (no he visto efectos más riesgosos); pero, si no la conservamos, esto
puede causar que dejemos de "ver" el disco duro, junto con toda su
información.
Falta de
portabilidad
Como ya se
mencionó, existe un lenguaje ensamblador para cada máquina; por ello,
evidentemente no es una selección apropiada
de lenguaje cuando deseamos codificar en una máquina y luego llevar los
programas a otros sistemas operativos o modelos de
computadoras. Si bien esto es un problema general a todos los lenguajes, es
mucho más notorio en ensamblador: yo puedo reutilizar un 90% o más del código
que desarrollo en "C", en una PC, al llevarlo a una RS/6000 con UNIX,
y lo mismo si después lo llevo a una Macintosh, siempre y cuando esté bien
hecho y siga los estándares de "C", y los principios de la
programación estructurada. En cambio, si escribimos el programa en Ensamblador
de la PC, por bien que lo desarrollemos y muchos estándares que sigamos,
tendremos prácticamente que reescribir el 100 % del código al llevarlo a UNIX,
y otra vez lo mismo al llevarlo a Mac.
Lenguajes
de Programación.
Los lenguajes de
programación son herramientas que nos permiten crear programas y software.
Entre ellos tenemos Delphi, Visual Basic, Pascal, Java, etc..
Una computadora funciona bajo control de un programa el cual debe estar almacenado en la unidad de memoria; tales como el disco duro.
Los lenguajes de programación de una computadora en particular se conoce como código de máquinas o lenguaje de máquinas.
Una computadora funciona bajo control de un programa el cual debe estar almacenado en la unidad de memoria; tales como el disco duro.
Los lenguajes de programación de una computadora en particular se conoce como código de máquinas o lenguaje de máquinas.
Estos
lenguajes codificados en una computadora específica no podrán ser ejecutados en
otra computadora diferente.
Para que estos programas funcionen para diferentes computadoras hay que realizar una versión para cada una de ellas, lo que implica el aumento del costo de desarrollo.
Por otra parte, los lenguajes de programación en código de máquina son verdaderamente difíciles de entender para una persona, ya que están compuestos de códigos numéricos sin sentido nemotécnico.
Los lenguajes de programación facilitan la tarea de programación, ya que disponen de formas adecuadas que permiten ser leidas y escritas por personas, a su vez resultan independientes del modelo de computador a utilizar.
Los lenguajes de programación representan en forma simbólica y en manera de un texto los códigos que podrán ser leidos por una persona.
Los lenguajes de programación son independientes de las computadoras a utilizar.
Para que estos programas funcionen para diferentes computadoras hay que realizar una versión para cada una de ellas, lo que implica el aumento del costo de desarrollo.
Por otra parte, los lenguajes de programación en código de máquina son verdaderamente difíciles de entender para una persona, ya que están compuestos de códigos numéricos sin sentido nemotécnico.
Los lenguajes de programación facilitan la tarea de programación, ya que disponen de formas adecuadas que permiten ser leidas y escritas por personas, a su vez resultan independientes del modelo de computador a utilizar.
Los lenguajes de programación representan en forma simbólica y en manera de un texto los códigos que podrán ser leidos por una persona.
Los lenguajes de programación son independientes de las computadoras a utilizar.
Existen estrategias que permiten ejecutar en una computadora un programa realizado en un lenguaje de programación simbólico.los procesadores del lenguaje son los programas que permiten el tratamiento de la información en forma de texto, representada en los lenguajes de programación simbólicos. Hay lenguajes de programación que utilizan compilador. La ejecución de un
programa con compilador
requiere de dos etapas:
1) Traducir el programa simbólico a código máquina
2) Ejecución y procesamiento de los datos.
Otros lenguajes de programación utilizan un programa intérprete o traductor, el cual analiza directamente la descripción simbólica del programa fuente y realiza las instrucciones dadas.
El intérprete en los lenguajes de programación simula una máquina virtual, donde el lenguaje de máquina es similar al lenguaje fuente.
La ventaja del proceso interprete es que no necesita de dos fases para ejecutar el programa, sin embargo su inconveniente es que la velocidad de ejecución es más lenta ya que debe analizar e interpretar las instrucciones contenidas en el programa fuente.
El objetivo de esta lista
de lenguajes de programación es
nombrar todos los lenguajes de
programación relevantes
existentes, tanto los de uso actual como históricos, en orden alfabético,
excepto los dialéctos de BASIC y lenguaje de
programación esotérico.
LISTADO
DE LENGUAJES DE
|
||||
B[editar]
C[editar]
D[editar]
E[editar]
F[editar]
G[editar]
H[editar]
I[editar]
J[editar]
K[editar]
L[editar]
M[editar]
N[editar]
Ñ[editar]
O[editar]
P[editar]
Q[editar]
R[editar]
S[editar]
T[editar]
U[editar]
V[editar]
W[editar]
X[editar]
Y[editar]
Z[editar]
Estructura de
programación orientada a objetos.
Estructuras de
programación orientada a objetos La programación orientada a objetos (POO) es
un modelo de programación, una forma particular de pensar y escribir el código,
en la que se utilizan los elementos básicos vistos anteriormente: variables,
expresiones y funciones..., pero organizados de modo más próximo al lenguaje
verbal. El hecho de ser un modelo implica que tiene su propia lógica, y para
usarlo no sólo debe comprenderse sino que hay que pensar el desarrollo del
código según ese modelo, para poder aplicar después el lenguaje.
manera más abstracta y
con una estructura
más organizada, que
sigue un proceso de
descomposición del
problema en partes
bastante particular. Los
métodos
tradicionales de
programación estructurada
descomponen la
complejidad en partes más
simples y fáciles de
codificar, de manera que
cada sub-programa
realiza una acción.
En la POO no se
descompone el problema
en las acciones que
tiene que hacer el
programa, sino en
objetos, por lo que debemos
pensar en el posible
escenario de esos
objetos, cómo definir
sus características y
comportamiento. De ahí
que el elemento básico de esta estructura de programación no son las funciones
sino los objetos, entendidos como la representación de un concepto que contiene
información necesaria (datos) para describir sus propiedades o atributos y las
operaciones (métodos) que describen su comportamiento en ese escenario. Por eso
implica una manera distinta de enfocar los problemas, que empieza por la
abstracción, entendida en este caso como la capacidad mental para representar
una realidad compleja en los elementos separados simplificados (objetos), ver
aisladamente sus necesidades de definición y comportamiento, y también sus
relaciones (mensajes) y comportamiento conjunto. Si nos detenemos a pensar
sobre cómo se nos plantea un problema cualquiera en la realidad podremos ver
que lo que hay son entidades (otros nombres que podríamos usar para describir
lo que aquí llamo entidades son "agentes" u "objetos"). Y
no sólo eso, también podremos descubrir, a poco que nos fijemos, todo un
conjunto de interrelaciones entre las entidades, guiadas por el intercambio de
mensajes; las entidades del problema responden a estos mensajes mediante la
ejecución de ciertas acciones.36 Esta forma particular de estructurar el código
favorece su reutilización al compartimentarse en módulos independientes.
Recordad la cita de Katherine B. McKeithen37 respecto a la importancia de
organizar bien la información para procesarla como grupos significativos, algo
así sucede en la POO.
Bibliografía.
Peter Abel. IBM PC Assembly Language and Programming. Fourth
Edition. Prentice Hall. 1997.
Al parecer me sirvio de mucho la informaion....
ResponderBorrar