evolución de algoritmos y programación

Upload: daniel-oso-mendz

Post on 24-Feb-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 Evolucin de Algoritmos y Programacin

    1/10

    Evolucin de Algoritmos y Programacin

    Qu es un algoritmo?

    Por algoritmo, se entiende a un conjunto finito de instrucciones que se deben

    seguir para resolver un problema. No obstante, desde el punto de vista de la

    programacin de ordenadores, la definicin del algoritmo como la especificacin

    de una serie de pasos, es incompleta. Debe observarse que los ordenadores son

    equipos que tienen limitaciones fsicas en cuanto a capacidad de almacenamiento

    ! procesamiento. Por consiguiente debemos refinar un poco m"s nuestra

    definicin de algoritmo para #acerla aplicable de manera efectiva en el "mbito de

    la inform"tica.

    $l algoritmo es un conjunto de pasos, instrucciones o acciones que se deben

    seguir para resolver un problema. $%isten una gran cantidad de algoritmos, #a!

    que escoger el m"s efectivo. &a! dos tipos de algoritmos que son

    los cualitativos ! cuantitativos, cualitativos son todos aquellos pasos o

    instrucciones descritos por medio de palabras que sirven para llegar a la obtencin

    de una respuesta o solucin de un problema, ! cuantitativos son todos aquellos

    pasos o instrucciones que involucran c"lculos numricos para llegar a un resultado

    satisfactorio.

    Caractersticas:

    'iene que ser preciso.

    'iene que estar bien definido.

    'iene que ser finito.

    (a programacin es adaptar el algoritmo al ordenador.

    $l algoritmo es independiente seg)n donde lo implemente.

    https://es.wikipedia.org/wiki/es:algoritmohttps://es.wikipedia.org/wiki/es:algoritmo
  • 7/24/2019 Evolucin de Algoritmos y Programacin

    2/10

    Definicin* +n algoritmo se entiende como una sucesin finita de pasos que debe

    cumplir las siguientes especificaciones*

    ada paso del algoritmo debe estar bien definido* $sto significa que la definicinde un paso debe ser suficientemente clara, para que una persona pueda

    entenderla ! reali-arla. i bien no se puede dar un criterio determinado para

    decidir si un paso est" bien definido, debemos apelar al sentido com)n para

    decidir que un paso est" especificado sin ambig/edades.

    +n algoritmo debe tener un principio ! un fin* +n programa es un algoritmo escrito

    con un objetivo* conseguir un resultado. No tiene sentido crear un programa que

    espere 0 segundos 1infinitos segundos2 ! luego escriba en pantalla 3&ola 4undo53,

    del mismo modo que un algoritmo debe tener un principio bien definido 1tampoco

    tiene sentido el algoritmo 3#a- nada, ! luego escribe &ola 4undo532

    Modelos computacionales

    +n modelo computacional es un modelo matem"tico en las ciencias de la

    computacin que requiere e%tensos recursos computacionales para estudiar el

    comportamiento de un sistema complejo por medio de la simulacin por

    computadora. $l sistema bajo estudio es a menudo un sistema complejo no lineal

    para el cual las soluciones analticas simples e intuitivas no est"n f"cilmente

    disponibles. $n lugar de derivar una solucin analtica matem"tica para el

    problema, la e%perimentacin es #ec#a con el modelo cambiando los par"metros

    del sistema en la computadora, ! se estudian las diferencias en el resultado de los

    e%perimentos. (as teoras de la operacin del modelo se pueden derivar6deducir

    de estos e%perimentos de computacionales.

    $jemplos de modelos de computacionales comunes son modelos de el pronstico

    del tiempo, modelos del $art# imulator, modelos de simulador de vuelo, modelos

    de plegamiento molecular de protenas, ! modelos de red neuronal.

  • 7/24/2019 Evolucin de Algoritmos y Programacin

    3/10

    e considera a los algoritmos al conjunto de pasos ordenados, que permiten

    resolver un problema bajo una secuencia lgica, es decir, que tenga inicio ! fin

    1sentido concreto2.

    Programas* 7lgoritmos para ser ejecutados por un ordenador

    +n ordenador o computadora est", desde que se enciende #asta que se apaga

    totalmente, ejecutando un algoritmo. Por lo general, estos algoritmos, escritos para

    que los entienda una m"quina, terminan siendo vagos ! confusos para la ma!ora

    de quienes no #an estudiado programacin. +na m"quina no puede entender

    3escribe &ola 4undo53 porque no sabe lo que es 3escribe3 ni lo que es una letra o

    un espacio, ni lo que es una pantalla. $n cambio, puede entender 3mov ea%,

    8%9:afb:;3 1escribir en el registro ea% el n)mero 8%9:afb:;2, aunque nosotros no.

    +n ordenador es solo un circuito electrnico, no funciona a base de magia ni nada

    por el estilo.

    Debido a lo difcil que es escribir en lenguaje m"quina, e incluso en ensamblador,

    se crearon diferentes lenguajes de programacin, m"s o menos parecidos al

    ingls actual ! a cmo se redacta un algoritmo. $stos lenguajes proveen de cosas

    tan complejas para una m"quina como los bucles for. (os compiladores se

    encargan de traducir esos fic#eros al lenguaje ensamblador que corresponda, el

    ensamblador de traducirlos a lenguaje m"quina ! el enla-ador de juntar todo ese

    cdigo m"quina en un solo arc#ivo, el programa. < el microprocesador, se encarga

    de ir encendiendo o apagando transistores seg)n lo que le diga el cdigo

    m"quina. $s f"cil entender el lenguaje de alto nivel en comparacin al lenguaje

    maquina pero de la evolucin surgieron.

    LENGUAJE E P!"G!AMAC#$N

    %&u' es el lengua(e de programacin)

    +n lenguaje de programacin es un lenguaje dise=ado para describir el conjunto

    de acciones consecutivas que un equipo debe ejecutar. Por lo tanto, un lenguaje

    http://karengarciahdz.blogspot.mx/2013/02/evolucion-del-lenguaje-c.htmlhttp://karengarciahdz.blogspot.mx/2013/02/evolucion-del-lenguaje-c.htmlhttp://karengarciahdz.blogspot.mx/2013/02/evolucion-del-lenguaje-c.htmlhttp://karengarciahdz.blogspot.mx/2013/02/evolucion-del-lenguaje-c.html
  • 7/24/2019 Evolucin de Algoritmos y Programacin

    4/10

    de programacin es un modo pr"ctico para que los seres #umanos puedan dar

    instrucciones a un equipo.

    Por otro lado, el trmino 3lenguaje natural3 define un medio de comunicacin

    compartido por un grupo de personas 1por ejemplo* ingls o francs2.

    (os lenguajes que los equipos usan para comunicarse entre ellos no tienen nada

    que ver con los lenguajes de programacin> se los conoce como protocolos de

    comunicacin. e trata de dos conceptos totalmente diferentes. +n lenguaje de

    programacin es mu! estricto*

    7 cada instruccin le corresponde una accin de procesador.

    $l lenguaje utili-ado por el procesadorse denomina lenguaje m"quina.

    $l lenguaje de programacin tiene varias ventajas*

    $s muc#o m"s f"cil de comprender que un lenguaje m"quina*

    Permite ma!or portabilidad, es decir que puede adaptarse f"cilmente para

    ejecutarse en diferentes tipos de equipos.

    *ipos de Lengua(e de Programacin

    $l ordenador slo entiende un lenguaje conocido como cdigo binario o cdigo

    m"quina, consistente en ceros ! unos. $s decir, slo utili-a 8 ! ; para codificar

    cualquier accin.

    (os lenguajes m"s pr%imos a la arquitectura #ard@are se denominan lenguajes

    de bajo nivel ! los que se encuentran m"s cercanos a los programadores !

    usuarios se denominan lenguajes de alto nivel.

    Lengua(es de +a(o nivel

    http://es.kioskea.net/contents/internet/protocol.php3http://es.kioskea.net/contents/internet/protocol.php3http://es.kioskea.net/contents/pc/processeur.php3http://karengarciahdz.blogspot.mx/2013/02/evolucion-del-lenguaje-c.htmlhttp://es.kioskea.net/contents/internet/protocol.php3http://es.kioskea.net/contents/internet/protocol.php3http://es.kioskea.net/contents/pc/processeur.php3http://karengarciahdz.blogspot.mx/2013/02/evolucion-del-lenguaje-c.html
  • 7/24/2019 Evolucin de Algoritmos y Programacin

    5/10

    on lenguajes totalmente dependientes de la m"quina, es decir que el programa

    que se reali-a con este tipo de lenguajes no se puede migrar o utili-ar en otras

    m"quinas.

    7l estar pr"cticamente dise=ados a medida del #ard@are, aprovec#an al m"%imolas caractersticas del mismo.

    entro de este grupo se encuentran:

    $l lenguaje maquina* este lenguaje ordena a la m"quina las operaciones

    fundamentales para su funcionamiento. onsiste en la combinacin de 8As ! ;As

    para formar las ordenes entendibles por el #ard@are de la m"quina. $ste lenguaje

    es muc#o m"s r"pido que los lenguajes de alto nivel. (a desventaja es que son

    bastantes difciles de manejar ! usar, adem"s de tener cdigos fuente enormes

    donde encontrar un fallo es casi imposible.

    $l lenguaje ensamblador es un derivado del lenguaje m"quina ! est"

    formado por abreviaturas de letras ! n)meros llamadas mnemotcnicos. on la

    aparicin de este lenguaje se crearon los programas traductores para poder pasar

    los programas escritos en lenguaje ensamblador a lenguaje m"quina. omo

    ventaja con respecto al cdigo m"quina es que los cdigos fuentes eran m"s

    cortos ! los programas creados ocupaban menos memoria. (as desventajas de

    este lenguaje siguen siendo pr"cticamente las mismas que las del lenguaje

    ensamblador, a=adiendo la dificultad de tener que aprender un nuevo lenguaje

    difcil de probar ! mantener.

    Lengua(es de alto nivel

    on aquellos que se encuentran m"s cercanos al lenguaje natural que al lenguaje

    m"quina.

    $st"n dirigidos a solucionar problemas mediante el uso de $DDAs.

    Nota* $DDAs son las abreviaturas de $structuras Din"micas de Datos, algo mu!

    utili-ado en todos los lenguajes de programacin. on estructuras que pueden

  • 7/24/2019 Evolucin de Algoritmos y Programacin

    6/10

    cambiar de tama=o durante la ejecucin del programa. Nos permiten crear

    estructuras de datos que se adapten a las necesidades reales de un programa.

    e tratan de lenguajes independientes de la arquitectura del ordenador. Por lo

    que, en principio, un programa escrito en un lenguaje de alto nivel, lo puedesmigrar de una m"quina a otra sin ning)n tipo de problema.

    $stos lenguajes permiten al programador olvidarse por completo del

    funcionamiento interno de la maquina6s para la que est"n dise=ando el programa.

    'an solo necesitan un traductor que entiendan el cdigo fuente como las

    caractersticas de la m"quina.

    uelen usar tipos de datos para la programacin ! #a! lenguajes de propsito

    general 1cualquier tipo de aplicacin2 ! de propsito especfico 1como BC'7N

    para trabajos cientficos2.

    Lengua(es de Medio nivel

    e trata de un trmino no aceptado por todos, pero que seguramente #abr"s odo.

    $stos lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro

    de estos lenguajes podra situarse !a que puede acceder a los registros del

    sistema, trabajar con direcciones de memoria, todas ellas caractersticas de

    lenguajes de bajo nivel ! a la ve- reali-ar operaciones de alto nivel.

    Generaciones

    (a evolucin de los lenguajes de programacin se puede dividir en E etapas o

    generaciones.

    Primera generacin* lenguaje m"quina.

    egunda generacin* se crearon los primeros lenguajes ensambladores.

    'ercera generacin* se crean los primeros lenguajes de alto nivel. $j. ,

    Pascal, obolF

  • 7/24/2019 Evolucin de Algoritmos y Programacin

    7/10

    uarta generacin. on los lenguajes capaces de generar cdigo por si

    solos, son los llamados 7D, con lo cuales se pueden reali-ar aplicaciones sin ser

    un e%perto en el lenguaje. 7qu tambin se encuentran los lenguajes orientados a

    objetos, #aciendo posible la reutili-acin d partes del cdigo para otros programas.

    $j. Gisual, Natural 7dabesF

    Quinta generacin* aqu se encuentran los lenguajes orientados a la

    inteligencia artificial. $stos lenguajes todava est"n poco desarrollados. $j. (HP

    Principales lengua(es de nivel alto

    GI.N$'

    7da

    7(JC(

    I7H

    K

    CIC(

    Bortran

    Lava

    (isp

    4odulaM9

    Pascal

    Perl

    P&P

    P(6;

    P(6Q(

  • 7/24/2019 Evolucin de Algoritmos y Programacin

    8/10

    P!t#on

    ub!

    4atlab

    Principales lengua(es de nivel medio

    ,istoria del Lengua(e C

    $l lenguaje de programacin fue creado por Dennis itc#ie entre ;OO ! ;O:

    cuando trabajaba en Iell (aboratories de 7'R' junto con Sen '#ompson en el

    dise=o del sistema operativo +NHT. fue creado para poder escribir dic#o sistema

    operativo en un lenguaje de alto nivel, independiente del #ard@are donde se

    ejecutara.

    ontar con un lenguaje de alto nivel permiti el avance de los sistemas operativos,

    !a que el mismo cdigo poda ser utili-ado en las distintas plataformas,

    propiciando la reutili-acin de cdigo ! reduciendo los tiempos de desarrollo. 7s

    es que los sistemas operativos basados en +NHT, el sistema ID, el sistema

    JN+6(inu% ! muc#os otros fueron desarrollados en .

    7dem"s, con el paso del tiempo se #an desarrollado cientos de bibliotecas que

    permiten a los programadores de utili-ar el cdigo desarrollado por otros para la

    reali-acin de tareas comunes. $sto, a su ve-, #a propiciado el desarrollo de

    aplicaciones en lenguaje .

    7ctualmente es imposible contar la cantidad de aplicaciones ! #erramientas

    desarrolladas en .

    http://karengarciahdz.blogspot.mx/2013/02/evolucion-del-lenguaje-c.htmlhttp://karengarciahdz.blogspot.mx/2013/02/evolucion-del-lenguaje-c.html
  • 7/24/2019 Evolucin de Algoritmos y Programacin

    9/10

    Evolucin

    7 mediados de los a=os 8s, 4artin ic#ards dise= el lenguaje IP( con la

    finalidad de usarlo para escribir soft@are de sistemas operativos ! compiladores.

    $n ;OO, Sen '#ompson escribi el (enguaje I, en Iell (aboratories, con el

    objetivo de recodificar +NHT 1escrito #asta ese momento en lenguaje

    ensamblador2 usando un lenguaje de alto nivel m"s portable ! fle%ible.

    Durante los siguientes a=os, Dennis itc#ie modific el lenguaje I, llegando a

    crear el lenguaje ! reescribiendo el sistema +NHT en dic#o lenguaje> a=adi

    caractersticas nuevas, como son el dise=o de tipos ! las estructuras de datos.

    $n ;OU, Dennis itc#ie ! Irian Sernig#an publicaron la primera edicin del libro

    $l lenguaje de programacin . $ste libro fue durante a=os la especificacin

    informal del lenguaje. $l lenguaje descrito en la primera edicin de este libro, fue

    conocido como 3el de Sernig#an ! itc#ie3 o simplemente 3SR 3. $n este libro

    se introdujeron nuevas caractersticas al lenguaje* los tipo de datos struct, long int

    ! unsigned int> los operadores V ! VM fueron sustituidos por V ! MV.

    7 mediados de los a=os U8, Ijarne troustrup 1tambin de los laboratorios Iell2,

    crea el lenguaje , un lenguaje basado en , con numerosas caractersticas

    adicionales, siendo la principal que est" orientado a objetos. i bien se #an creado

    muc#os lenguajes basados en , es el que #a permanecido m"s asociado a

    .

    $n los a=os siguientes a la publicacin del de Sernig#an ! itc#ie, se a=adieron

    al lenguaje muc#as caractersticas no oficiales, que estaban presentes en algunos

    compiladores ! no en otros. Bue por ello que en ;OUO 7NH 17merican National

    tandards Hnstitute2 public el primer est"ndar oficial de , que es conocido como

    7NH .

    $n este est"ndar se tomaron muc#as de las funcionalidades no oficiales ! se

    agregaron funcionalidades nuevas como los prototipos de funcin, ! un

  • 7/24/2019 Evolucin de Algoritmos y Programacin

    10/10

    preprocesador mejorado. 'ambin se cambi la sinta%is de la declaracin de

    par"metros de funciones, para que inclu!eran el tipo junto con el nombre.

    7l a=o siguiente, en ;OO8 se public la estandari-acin HC del lenguaje. $ste

    est"ndar es b"sicamente el est"ndar 7NH, con unas pocas modificaciones deformato. 7 este est"ndar se lo conoce, entonces, como UO, o O8, ! se trata del

    mismo lenguaje.

    Ias"ndose en el est"ndar 7NH que estaba en preparacin, en ;OUU Sernig#an !

    itc#ie publicaron la segunda edicin de su libro, que es a)n #o! utili-ada como

    una de las referencias principales del lenguaje.

    Durante los siguientes a=os, el lenguaje permaneci sin demasiados cambios.

    in embargo, como #aba sucedido antes, los distintos compiladores fueron

    incorporando caractersticas adicionales, que otros compiladores no tenan, siendo

    la principal influencia.

    Bue por ello que a finales de los noventa se decidi revisar el est"ndar de , lo

    que llev a la publicacin del est"ndar OO. $ste est"ndar inclu!e varias nuevas

    caractersticas como son* las funciones inline> la posibilidad de declarar variables

    en cualquier parte del cdigo> los comentarios de una sola lnea utili-ando 66> los

    tipos de datos long long int, bool ! comple%, entre otras.

    7)n #o! el proceso de evolucin del lenguaje sigue avan-ando, ! desde 988 se

    est" trabajando en el armado de un nuevo est"ndar.