FUNDAMENTOS DE PROGRAMACIN:
Conceptos Tericos sobre Fundamentos de
Programacin Digital
INTRODUCCIN
Las computadoras electrnicas modernas son uno de los productos ms
importantes del siglo xx y especialmente de las dos ltimas dcadas. Son una
herramienta esencial en muchas reas: industria, gobierno, ciencia, educacin. Etc.,
en realidad en casi todos los campos de nuestras vidas.
El papel de los programas de las computadoras es esencial; sin una lnea de
instrucciones a seguir, la computadora es virtualmente intil. Los lenguajes de
Programacin nos permiten escribir esos programas y por consiguiente,
comunicarnos con las computadoras.
La principal razn para que las personas aprendan lenguajes y tcnicas de
programacin es utilizar la computadora como una a herramienta para resolver
problemas.
2. CONCEPTO DE ALGORITMO
El objetivo fundamental de este texto es ensear a resolver problemas mediante una
computadora. El programador de computadora es antes que nada una persona que
resuelve problemas, por lo que para Ilegar a ser un programador eficaz se necesita
aprender a resolver problemas de un modo riguroso y sistemtico.
A lo largo de todo este libro nos referiremos a la metodologa necesaria para resolver
problemas mediante programas, concepto que se denomina metodologa de la
programacin. El eje central de esta metodologa es el concepto, ya tratado, de
algoritmo.
Un algoritmo es un mtodo para resolver un problema. Aunque la popularizacin del
trmino ha Ilegado con el advenimiento de la era informhtica, algoritmo proviene de
Mohammed al-KhoWirizmi, matemtico persa que vivi durante el siglo IX y alcanz
gran reputacin por el enunciado de las reglas paso a paso para sumar, restar,
multiplicar y dividir nmeros decimales; la traduccin al latn del apellido en la palabra
algorismus deriv posteriormente en algoritmo. Euclides, el gran matemtico griego
(del siglo IV a.c.) que invent un mtodo para encontrar el mximo comn divisor de dos
nmeros, se considera con Al-Khowirizmi el otro gran padre de la algoritmia (ciencia que
trata de los algoritmos).
El profesor Niklaus Wirth -inventor de Pascal, Modula-2 y Oberon- titul uno de sus ms
famosos libros, Algoritmos + Estructuras de datos = Programas, significndonos que
slo se puede llegar a realizar un buen programa con el diseo de un algoritmo y una
correcta estructura de datos. Esta ecuacin ser una de las hiptesis fundamentales
consideradas en esta obra.
La resolucin de un problema exige el diseo de un algoritmo que resuelva el problema
propuesto.
4.1 Lenguajes de Maquina: Son aquellos que estn escritos en lenguajes directamente
inteligibles por la mquina (computadora), ya que sus instrucciones son cadenas
binarias (cadenas o series de caracteres
-dgitos- O y 1) que especifican una operacin, y las posiciones (direccin) de memoria
implicadas en la operacin se denominan instrucciones de mquina o cdigo mquina.
El cdigo mquina es el conocido cdigo binario.
Las instrucciones en lenguaje mquina dependen del hardware de la computadora y,
por tanto, diferirn de una computadora a otra. El lenguaje mquina de un PC
(computadora personal) ser diferente de un sistema HP (Hewlett Packard), Compaq o
un sistema de IBM.
Las ventajas de programar en lenguaje mquina son la posibilidad de cargar (transferir
un programa a la memoria) sin necesidad de traduccin posterior, lo que supone una
velocidad de ejecucin superior a cualquier otro lenguaje de programacin.
Los inconvenientes -en la actualidad- superan a las ventajas, lo que hace prcticamente
no recomendables los lenguajes mquina. Estos inconvenientes son:
Dificultad y lentitud en la codificacin.
Poca fiabilidad.
Dificultad grande de verificar y poner a punto los programas.
Los programas slo son ejecutables en el mismo procesador (UPC, nidad
Central de Proceso).
4.2 Lenguajes de Bajo Nivel: Los lenguajes de bajo nivel son ms fciles de utilizar que los
lenguajes mquina, pero, al igual, que ellos, dependen de la mquina en particular. El
lenguaje de bajo nivel por excelencia es el ensamblador (assembly language). Las
instrucciones en lenguaje ensamblador son instrucciones conocidas como memotcnicos.
Por ejemplo, nemotcnicos tpicos de operaciones aritmticas son: en ingls, ADD, SUB, D I
V , etc.; en espaol, SUM, RES, DIV, etc.
4.3 Lenguajes de Alto Nivel: Los lenguajes de alto nivel son los ms utilizados por los
programadores. Estn diseados para que las personas escriban y entiendan los programas
de un modo mucho ms fcil que los lenguajes mquina y ensambladores. Otra razn es
que un programa escrito en lenguaje de alto nivel es independiente de la mquina; esto es,
las instrucciones del programa de la computadora no dependen del diseo del hardware o
de una computadora en particular. En consecuencia, los programas escritos en lenguaje de
alto nivel son portables o transportables, lo que significa la posibilidad de poder ser
ejecutados con poca o ninguna modificacin en diferentes tipos de computadoras; al
contrario que los programas en lenguaje mquina o ensamblador, que slo se pueden
ejecutar en un determinado tipo de computadora.
Los lenguajes de alto nivel presentan las siguientes ventajas:
El tiempo de formacin de los programadores es relativamente corto comparado con
otros lenguajes
La escritura de programas se basa en reglas sintcticas similares a los lenguajes
humanos.
Las modificaciones y puestas a punto de los programas son ms fciles.
Reduccin del coste de los programas.
Transportabilidad.
5. TRADUCTORES DE LENGUAJE: Los traductores de lenguaje son programas que
traducen a su vez los programas fuente escritos en lenguajes de alto nivel a cdigo
mquina.
Los traductores se dividen en:
Intrpretes.
Compiladores.
BIBLIOGRAFIA