Escolar Documentos
Profissional Documentos
Cultura Documentos
Copyright (AO) por (Elver Vladimir Colque Ugarte - Mauricio Flores Lpez). T odos los derechos reservados.
La figura 2 es un diagrama de flujo bsico. Los smbolos estndar normalizados por ANSI
(abreviatura de American National Standars Institute) son muy variados
10
11
12
El nico lenguaje que una computadora comprende es su lenguaje mquina. Sin embargo,
la gente tiene dificultad para entender el cdigo mquina. Como resultado, los
investigadores desarrollaron primero un lenguaje ensamblador luego lenguajes de nivel
superior. Esta evolucin representa una transicin de hileras de nmeros (cdigo
mquina) a secuencias de comandos que se pueden leer como cualquier otro lenguaje.
Los lenguajes de nivel superior se enfocan en lo que el programador quiere que haga la
computadora, no en cmo la computadora ejecutar esos comandos.
4.1 Clasificacin de los Lenguajes de Programacin
Lenguajes mquina: son los lenguajes
bsicos. Consisten en hileras de nmeros y son
definidos por el diseo del hardware. En otras palabras, el lenguaje mquina para una
Macintosh no es el mismo que el de una PC. Una computadora comprende slo su lenguaje
mquina original, los comandos de su equipo de instruccin. Estos comandos le
dan
instrucciones
a
la computadora para realizar operaciones elementales: cargar,
almacenar, aadir y sustraer. Esencialmente, el cdigo mquina consiste por completo de
los 0 y 1 del sistema numrico binario.
Lenguajes ensambladores, fueron desarrollados usando nemotcnicos similares a las
palabras del idioma ingls. Los programadores trabajan en editores de texto, que son
simples procesadores de palabras, para crear archivos fuente. Los archivos fuente contienen
instrucciones para que la computadora las ejecute, pero tales archivos deben primero
introducirse al lenguaje mquina.
Los investigadores crearon programas traductores llamados ensambladores para realizar
la conversin. Los lenguajes ensambladores an son altamente detallados y secretos, pero
leer un cdigo ensamblador es mucho ms rpido que batallar con el lenguaje mquina. Los
programadores rara vez escriben programas de tamao significativo en un lenguaje
ensamblador. (Una excepcin a esta regla se encuentra en los juegos de accin en donde la
velocidad del programa es decisiva.) En su lugar, se usan lenguaje ensambladores para
afinar partes importantes de programas escritos en un lenguaje de nivel superior.
Los lenguajes de alto nivel fueron desarrollados para hacer ms fcil la programacin.
Estos lenguajes son llamados de alto nivel porque su sintaxis es ms cercana al lenguaje
humano que el cdigo del lenguaje mquina o ensamblador. Usan palabras familiares en
lugar de comunicar en el detallado embrollo de los dgitos que comprenden las
instrucciones de la mquina. Para expresar las operaciones de la computadora estos
lenguajes usan operadores, como los smbolos de ms o menos, que son los componentes
familiares de las matemticas. Como resultado, leer, escribir y comprender programas de
cmputo es ms fcil con un programa de alto nivel, a pesar de que las instrucciones
todava deba ser introducidas al lenguaje mquina antes de que la computadora pueda
comprenderlas y llevarlas a cabo.
Los comandos escritos en cualquier lenguaje ensamblador o de alto nivel deben ser
traducidos de nuevo a cdigo mquina antes de que la computadora pueda ejecutar los
comandos. Estos programas traductores se denominan compiladores. Entonces,
normalmente un programa debe ser compilado o traducido a cdigo mquina antes de
que se ejecute. Los archivos de programas compilados se vuelve n ejecutables.
A continuacin se recaba algunos de los lenguajes de programacin de alto nivel ms
importantes.
Los lenguajes de programacin son tratados a veces en trminos de generaciones. Se
considera que cada generacin sucesiva contiene lenguajes que son ms fciles de usar y
ms poderosos que los de la generacin previa. Los lenguajes mquina son considerados de
la primera generacin, y los ensambladores de segunda generacin. Los lenguajes
de alto nivel comenzaron en la tercera generacin.
13
14
15
Los lenguajes de bajo nivel que la computadora puede entender directamente se conocen
como lenguajes ensamblador o lenguaje mquina. En realidad, aunque son muy similares y
en ocasiones se les considera sinnimos, tienen algunas pequeas diferencias. El lenguaje
que la computadora puede comprender directamente se denomina lenguaje mquina. El
lenguaje ensamblador es casi la misma cosa, pero necesita un paso adicional para que la
traduccin pueda ser entendida por la mquina. Si un compilador traduce el programa de
alto nivel a algn lenguaje de bajo nivel, no es exactamente lenguaje mquina, se necesita,
por tanto, una pequea traduccin adicional antes de ser ejecutado en la computadora, pero
normalmente este proceso suele ser automtico y no es problemtico.
En esencia, un compilador es un programa que traduce un programa en lenguaje de
alto nivel, tal como un programa de C/C++/Java, en un programa de un lenguaje ms
sencillo que la computadora puede comprender ms o menos directamente.
La compilacin y sus fases
La compilacin es el proceso de traduccin de programas fuente a programas objeto. El
programa objeto obtenido de la compilacin se traduce normalmente a cdigo mquina.
Para conseguir el programa mquina real se debe utilizar un programa llamado montador o
enlazador (linker). El proceso de montaje conduce a un programa en lenguaje mquina
directamente ejecutable. Figura 1.4.3.
El proceso
de ejecucin de un programa escrito en un lenguaje de
programacin (por ejemplo, C) y mediante un compilador suele tener los siguientes pasos:
1. Escritura del lenguaje mquina con un editor (programa que permite a una computadora
actuar de modo similar a una mquina de escribir electrnica) y guardarlo en un dispositivo
de almacenamiento (por ejemplo, un disco).
2. Introducir el programa fuente en memoria.
3. Compilar el programa con el compilador C.
4. Verificar y corregir errores de compilacin (listado de errores).
5. Obtencin del programa objeto.
6. El enlazador (linker) obtiene el programa ejecutable.
7. Se ejecuta el programa y, si no existen errores, se tendr la salida del programa.
16
17
18
19
CONCLUCION
En la actualidad el ser humano se enfrenta a distintas situaciones: de aprendizaje, de
retroalimentacin y en muchas ocasiones dificultades que con la experiencia o por la
eleccin de la alternativa apropiada, va dando solucin.
Es por ello que a menudo se emplea cierta metodologa para la solucin de los problemas
en lugar de actuar de forma imprevista, siendo una caracterstica relevante el anlisis de los
mismos. La humanidad de forma natural emplea en la vida cotidiana ciertas conductas que
son rutinarias, siguen un orden, una secuencia y pretenden alcanzar un objetivo.
Este conjunto de acciones rutinarias que se llevan a cabo y forman parte ya de la vida
cotidiana del ser humano, se conocen como algoritmos, los cuales son aplicables en los
mbitos que as se necesiten.
El mbito de mayor de aplicacin y de primordial importancia es en la solucin de
problemas mediante computadora. Donde el elemento base para lograr dicha solucin
es el algoritmo propio.
Desarrollar un algoritmo involucra tener un conocimiento base sobre las caractersticas y
elementos que debe contener, con el fin de cumplir sus cualidades: finito, definido y
preciso.
Es importante sealar que en el mbito de la programacin antes de resolver el problema
mediante la computadora se recomienda realizar primero el algoritmo, ya que es aqu donde
se encuentra la solucin universal de la problemtica en cuestin.
Y para codificar dicho algoritmo slo basta en adaptar cada uno de sus elementos, al
lenguaje de programacin en el que se desee implementar.
Para resolver un problema se pueden desarrollar diversos algoritmos, existen en ocasiones
mltiples soluciones, pero dentro de ellas existen las que son ms eficientes y es aqu donde
la habilidad del desarrollador juega un papel importante. Por lo que la prctica continua
contribuye a la mejora del desarrollo.
BIBLIOGRAFIA
Pginas web
http://es.wikipedia.org/wiki/Algoritmo
http://www.algoritmia.net/
http://pjsml.50megs.com/java/algoritmos.html
http://www.monografias.com/trabajos/algoritmo/algoritmo.shtml
http://www.carlospes.com/curso_de_algoritmos/
http://www.desarrolloweb.com/manuales/67/
http://www.virtual.unal.edu.co/cursos/ingenieria/2001839/index.html
http://www.lcc.uma.es/~av/Libro/indice.html
http://ayura.udea.edu.co/~jlsanche/index.htm
http://www.algoritmia.org/index.php
http://www.algoritmos.tk/
Asignatura: Anlisis y Complejidad de algoritmos
Carrera: Ingeniera de sistemas
20