conceptos básicos de programación digital

41
Universidad de Los Andes Facultad de Ingeniería Materia: Programación Digital Profesor: Eloy Peña

Transcript of conceptos básicos de programación digital

Universidad de Los AndesFacultad de Ingeniería

Materia: Programación DigitalProfesor: Eloy Peña

Desde un punto de vista simple, unacomputadora es una herramientapara procesar datos y convertirlos eninformación significativa. Unacomputadora consta de dos partesbien diferenciadas, hardware ysoftware. El hardware consta de laspartes físicas, tangibles de lacomputadora. El software consta deprogramas, también llamadasaplicaciones, que contieneninstrucciones que la computadora“ejecuta” o “corre”.

Es el conjunto de componentes físicos queconforman el computador. Existen diferentestipos de dispositivos, tales como, dispositivosde ensamblaje y electrónicos, dispositivos deprocesamiento, dispositivos de almacenamientoy periféricos.

Dispositivos de ensamblaje.

Case: el cual es undispositivo donde se instalatodo el Hardware de uncomputador (fuente depoder, tarjeta madre,lectores de CD, DVD, y otrosdispositivos externos).

Dispositivos electrónicos.Fuente de poder: es elsistema que otorgaelectricidad imprescindiblepara alimentar al equipo, escomplementada por unventilador que impide que eldispositivo se recaliente.

Dispositivos de procesamiento:

Interactúan para dar funcionamiento alcomputador, distribuyendo y procesando lainformación incorporada. Administran tanto elsoftware como el hardware. Tales como:procesador, memoria RAM.

El procesador: es el cerebrodel PC. Se encarga de hacerfuncionar a las aplicacionesy el sistema operativo,dando respuesta a lasórdenes que se le envía através de los periféricos deentrada como el teclado o elratón.

Memoria RAM:RAM es el acrónimo deRandom Access Memory, enespañol memoria de accesoaleatorio. Es utilizada por elsistema tanto paraalmacenar los programasque se ejecuta, en undeterminado momento comolos datos con los que setrabaja.

Dispositivos de almacenamiento:

Son los dispositivos en los que se puedenguardar o respaldar datos e información. Talescomo: disco duro, cd, pen drive, dvd.

Disco duro: es el dispositivoque almacena los programas yarchivos del PC de formapermanente. Es capaz de noolvidar nada aunque no recibacorriente eléctrica. Otrasmemorias del equipo, comopor ejemplo la Memoria Ram,que es usada para hacerfuncionar los programas,necesita tener corriente parano perder la información.

Periféricos:

Son componentes físicos capaces de comunicarinformación entre el usuario y el computador.Los periféricos se clasifican en:

Periféricos de entrada: solopermiten la comunicacióndel usuario con elcomputador, tales como,mouse, teclado, web cam,escáner, micrófono.

Periféricos de salida: solopermiten la comunicacióndel computador con elusuario, tales como,monitor, impresora,cornetas, plotter.

Son los programas y la documentación asociadaa éstos que especifican la forma en que loscomponentes del hardware son utilizados pararealizar una cierta tarea. Los tipos de softwareson: de sistemas, de programación y deaplicación.

De Sistemas: permiten lainteracción entre el hardware yel software. Tales como lossistemas operativos, que sonel conjunto de programas decomputadora, destinado apermitir la administracióneficaz de sus recursos. Lossistemas operativos másconocidos son: MicrosoftWindows y Linux.

De Programación: es el conjunto deherramientas que permite al programadordesarrollar programas informáticos, usandodiferentes alternativas y lenguajes deprogramación, en una manera práctica.Ejemplos: Editores de texto, compiladores,intérpretes, enlazadores, depuradores.

De Aplicación: permite a losusuarios llevar a cabo una ovarias tareas específicas, encualquier campo de actividadsusceptible a ser automatizadoo asistido. Ejemplos: Paquetesintegrados. (Ofimática: Word,Excel, PowerPoint…), Programasde diseño asistido porcomputador. (AutoCAD), entreotros.

Primera generación (1938-1958): loscomputadores funcionaban con válvulas,usaban tarjetas perforadas para entrar losdatos y los programas, utilizaban cilindrosmagnéticos para almacenar información einstrucciones internas, y se utilizabanexclusivamente en el ámbito científico ymilitar.

Segunda generación (1958-1963): usabantransistores para procesar la información, loscuales eran más rápidos, más pequeños ymás confiables que los tubos al vacío.

Tercera generación (1964-1970): comienzana utilizarse los circuitos integrados, los cualespermitieron abaratar los costos al tiempo quese aumentaba la capacidad de procesamientoy se reducía el tamaño de las máquinas.

Cuarta generación (1971-1983): fasecaracterizada por la integración de loscomponentes electrónicos, lo que propició laaparición del microprocesador, es decir, unúnico circuito integrado en el que se reúnenlos elementos básicos de la máquina. Sedesarrolló el microprocesador.

Quinta generación (1984-1999): surge la pctal cual como la conocemos hoy en día. IBMpresenta su primera computadora personal yrevoluciona el sector informático. En vista dela acelerada marcha de la microelectrónica, lasociedad industrial se ha dado a la tarea deponer también a esta altura el desarrollo delsoftware y los sistemas con que se manejanlas computadoras.

Sexta generación (1999-Actualidad): lascomputadoras de esta generación cuentancon arquitecturas combinadasParalelo/Vectorial, con cientos demicroprocesadores vectoriales trabajando almismo tiempo. Las tecnologías de estageneración ya han sido desarrolladas o estánen proceso, algunas de ellas son: inteligenciaartificial distribuida, teoría del caos, sistemasdifusos, holografía, transistores ópticos,entre otros.

Sirven para escribir programas que permiten lacomunicación usuario/máquina. Unosprogramas especiales llamados traductores(Compiladores o Intérpretes) convierten lasinstrucciones escritas en lenguajes deprogramación en instrucciones escritas enlenguaje máquina (0’s y 1’s, bits) que éstapueda entender.

El propósito de un lenguaje informático(lenguaje de computadora) es permitir a laspersonas comunicarse con una computadora.Los principales tipos de lenguaje utilizados enla actualidad son: Lenguaje de Máquina,Lenguaje de Bajo Nivel (Ensamblador) yLenguaje de Alto Nivel.

Lenguajes de Máquina: son aquellos que estánescritos directamente en lenguajes inteligiblespor la máquina (computadora), ya que susinstrucciones son cadenas binarias (cadenas de0’s y 1’s) que especifican una operación, y lasposiciones (dirección) de memoria implicadasen la operación se denominan Instrucciones deMáquina o Código Máquina. El Código Máquinaes el conocido como Código Binario.

Lenguajes de Bajo Nivel: son más fáciles deutilizar que los lenguajes de máquina, peroigual que ellos, dependen de la máquina enparticular. El Lenguaje de Bajo Nivel porexcelencia es el Ensamblador. Las instruccionesen lenguaje Ensamblador son instruccionesconocidas como nemotécnicas. Un programaescrito en lenguaje Ensamblador no puede serejecutado directamente por la computadora,sino que se requiere de una fase de traducciónal lenguaje Máquina.

Lenguajes de Alto Nivel: son los más utilizadospor los programadores. Están diseñados paraque las personas escriban y entiendan losprogramas de un modo mucho más fácil quelos lenguajes Máquina y Ensambladores. Esindependiente de la máquina, esto es, lasinstrucciones del programa de computadora nodependen del diseño del hardware o de unacomputadora en particular.

Son programas que traducen a su vez losprogramas fuentes escritos en lenguajes de altonivel a código máquina. Se dividen enCompiladores e Intérpretes.

Intérprete: es un traductor que toma unprograma fuente y a continuación lo ejecuta.

ProgramaFuente

IntérpreteTraducción y ejecución

línea a línea

Compiladores: un compilador es un programaque traduce un programa en lenguaje de altonivel, tal como un programa en C / C++ /Pascal, en un programa de un lenguaje mássencillo que la computadora puedecomprender más o menos directamente.

La compilación y sus fases:

La compilación es el proceso de traducciónde programas fuente a programas objeto. Elprograma objeto obtenido de la compilaciónha sido traducido normalmente a códigomáquina.

Fases del proceso: Análisis léxico: el análisis léxico constituye la

primera fase, aquí se lee el programa fuente deizquierda a derecha y se agrupa en componentesléxicos (tokens), que son secuencias decaracteres que tienen un significado. Además,todos los espacios en blanco, líneas en blanco,comentarios y demás información innecesaria seelimina del programa fuente. También secomprueba que los símbolos del lenguaje(palabras clave, operadores, etc.) se han escritocorrectamente.

Análisis sintáctico: En esta fase los caractereso componentes léxicos se agrupanjerárquicamente en frases gramaticales que elcompilador utiliza para sintetizar la salida. Secomprueba si lo obtenido de la fase anteriores sintácticamente correcto (obedece a lagramática del lenguaje).

Análisis semántico: La fase de análisissemántico revisa el programa fuente paratratar de encontrar errores semánticos yreúne la información sobre los tipos para lafase posterior de generación de código. Enella se utiliza la estructura jerárquicadeterminada por la fase de análisis sintácticopara identificar los operadores y operandosde expresiones y proposiciones.

Un componente importante del análisissemántico es la verificación de tipos. Aquí, elcompilador verifica si cada operador tieneoperandos permitidos por la especificación dellenguaje fuente. Por ejemplo, las definicionesde muchos lenguajes de programaciónrequieren que el compilador indique un errorcada vez que se use un número real comoíndice de una matriz. Revisa que los arreglostengan definido el tamaño correcto.

Fase de síntesis: Consiste en generarel código objeto equivalente al programafuente. Sólo se genera código objeto cuandoel programa fuente está libre de errores deanálisis, lo cual no quiere decir que elprograma se ejecute correctamente, ya queun programa puede tener errores deconcepto o expresiones mal calculadas. Por logeneral el código objeto es código demáquina relocalizable o código ensamblador.

Generación de código Intermedio: Algunoscompiladores generan una representaciónintermedia explícita del programa fuente, unavez que se han realizado las fases de análisis.Se puede considerar esta operaciónintermedia como un subprograma para unamáquina abstracta. Esta representaciónintermedia debe tener dos propiedadesimportantes: debe ser fácil de producir y fácilde traducir al programa objeto.

Optimización de Código: En esta fase se tratade mejorar el código intermedio, de modoque resulte un código de máquina más rápidode ejecutar.

Generación de Código: Esta constituye la fasefinal de un compilador. En ella se genera elcódigo objeto que por lo general consiste encódigo en lenguaje máquina (códigorelocalizable). Las posiciones de memoriarelativas se seleccionan para cada variable.

Joyanes, Aguilar (2002). Fundamentos deprogramación. Tercera Edición. Madrid,España.