Introducción a la Programación Prof. Yerson Rodríguez Componentes SW Lenguajes de Programación Mediante los programas se indica a la computadora que tarea debe realizar y cómo efectuarla, pero para ello es preciso introducir estas órdenes en un lenguaje que el sistema pueda entender. En principio, el ordenador sólo entiende las instrucciones en código máquina, es decir, el específico de la computadora. Sin embargo, a partir de éstos se elaboran los llamados lenguajes de programación de alto y bajo nivel. Unidad I Introducción a la Programación Prof. Yerson Rodríguez Componentes SW Lenguaje de máquina Son los Lenguajes de Programación más básicos, consisten en hileras de números y son definidos por el diseño del hardware, ósea varia entre computadores diferentes, el de una Macintosh no es igual al de una PC. Un computador comprende sólo su Lenguaje máquina original. Esencialmente, el código máquina consiste por completo de los 0 y 1 del sistema binario. Unidad I Los Lenguajes de máquina se consideran lenguajes de programación de 1ra Generación 34 Introducción a la Programación Prof. Yerson Rodríguez Componentes SW Lenguaje Ensamblador assembly-languaje En estos lenguajes el conjunto de instrucciones del microprocesador se representa por mnemónicos, en vez de binarios o hexadecimales, con el fin de facilitar la escritura de programas. Un lenguaje ensamblador es de bajo nivel, es decir, está muy cerca de las operaciones reales del microprocesador. Pascal, Basic, C, entre otros, son lenguajes de alto nivel porque son muy lejanos del procesador. Los Lenguajes Ensambladores se consideran de 2da Generación. Ejemplo en ensamblador: suma: ADDS rD,r3,r4 resta: SUBS rF,r1,r0 Unidad I Introducción a la Programación Prof. Yerson Rodríguez Componentes SW Lenguaje de Alto Nivel high-level-languaje Son lenguajes que no están en contacto directo con la computadora, por lo que el programador no necesita saber nada respecto a las operaciones a nivel de máquina del sistema. Una instrucción sencilla en un lenguaje de alto nivel podría necesitar una página de instrucciones en lenguaje ensamblador para realizarse, pero el programador del lenguaje de alto nivel no requiere conocer esto. Unidad I Los Lenguajes de Alto Nivel se considera comienzan con la tercera generación, comprende los lenguajes de: - 3ra Generación - 4ta Generación - 5ta Generación Introducción a la Programación Prof. Yerson Rodríguez Componentes SW Compilador El término general Traductor, denota cualquier procesador de lenguajes que acepte programas en algún lenguaje fuente como entradas y que produzca otros programas equivalentes funcionales en otro lenguaje objeto como salida. Programa fuente Traductor Un Compilador, es un traductor cuyo lenguaje fuente es un lenguaje de alto nivel y cuyo lenguaje objeto es cercano al lenguaje de máquina de una computadora real, ya sea un lenguaje ensamblador o alguna variedad de lenguaje de máquina. Programa objeto Unidad I Introducción a la Programación Prof. Yerson Rodríguez Componentes SW Otros traductores Un ensamblador Es un traductor cuyo lenguaje objeto es también alguna variedad de lenguaje máquina para una computadora real pero cuyo lenguaje fuente, un lenguaje ensamblador, representa una transcripción del código objeto de la máquina. Un cargador Es un traductor cuyo lenguaje objeto es el código de la máquina real y cuyo lenguaje fuente es casi idéntico. Un enlazador (link editor) Es un traductor cuyo lenguaje fuente es el mismo que el de un cargador: programas en forma reubicable. Un preprocesador Es un traductor cuyo lenguaje fuente es una forma extendida de un lenguaje de alto nivel, como Pascal, y cuyo lenguaje objeto es la forma estándar del mismo lenguaje. El programa objeto producido se ejecutará por el procesador del lenguaje estándar. Lenguajes Compilados Fortran, Pascal, Ada, PL/1 y Cobol, los programas en estos lenguajes son traducidos a lenguaje de máquina de la computadora real que sé esta usando. Unidad I 38 Introducción a la Programación Prof. Yerson Rodríguez Componentes SW Interpretes Interpretes. Realizan Interpretación (Simulación) Se refiere a la simulación a través de programas que corren en otra computadora anfitriona, una computadora cuyo lenguaje de maquina sea el lenguaje de alto nivel. La computadora simulada acepta como entrada de datos un programa en lenguaje de alto nivel. Es decir, se construye con software corriendo sobre la computadora anfitriona el lenguaje de alto nivel de la computadora, la cual se debería de otra manera haber construido con hardware. A diferencia de la traducción (compilación). Ambos, interpretación y compilación aceptan programas en el lenguaje de alto nivel como entradas, pero el compilador simplemente produce un programa equivalente en su lenguaje objeto. El interpretador ejecuta el programa introducido directamente. Lenguajes Interpretados LISP, SNOBOL4 Y APL, son lenguajes que con frecuencia se implementan por medio de un interprete de software. En tal implementación del lenguaje, el traductor no produce código de maquina para la computadora que sé esta usando. En lugar de eso, el traductor produce alguna forma intermedia del programa aun cuando es diferente del código de maquina. 39 Unidad I Introducción a la Programación Prof. Yerson Rodríguez Componentes SW Software de uso general El software de uso general ofrece la estructura para un gran número de aplicaciones empresariales, científicas y personales. El software de hoja de cálculo, de diseño asistido por computadoras (CAD), de procesamiento de texto, de manejo de bases de datos, pertenecen a esta categoría. La mayoría de estos se vende como paquetes; es decir, con software y documentación orientada al usuario. Unidad I Introducción a la Programación Prof. Yerson Rodríguez Componentes SW Software de aplicaciones El software de aplicaciones esta diseñado y escrito para realizar tareas específicas personales empresariales o científicas como el procesamiento de nóminas, la administración de los recursos humanos o el control de inventarios. Todas éstas aplicaciones procesan datos (recepción de materiales) y generan información (registros de nómina) para el usuario. 41 Unidad I Introducción a la Programación Prof. Yerson Rodríguez Concepto Sistemas numéricos posiciónales Sistema Decimal (base 10). Desde hace siglos, el hombre ha utilizado como sistema para contar el denominado decimal, que derivó del sistema numérico indoarábigo; posiblemente se adoptó este mismo por contar con diez dedos en las manos. El sistema decimal es unos de los denominados sistemas posicionales, utilizando un conjunto de símbolos cuyo significado depende fundamentalmente de su posición relativa al símbolo de coma (.), Denominado coma decimal, que en caso de ausencia se supone colocada implícitamente a al derecha. Utiliza como base el 10, que corresponde al número de dígitos o símbolos que comprende para la representación de cantidades; estos dígitos son: 0 1 2 3 4 5 6 7 8 9. Unidad I 42 Introducción a la Programación Prof. Yerson Rodríguez Concepto Sistemas numéricos posiciónales Sistema Decimal (base 10). Una determinada cantidad, que denominaremos número decimal, se puede expresar de la siguiente forma: n N ° = ∑(dígito) i ×(base ) i i =− d Donde: base = 10, i= posición respecto a la coma, D = Nº. Dígitos a la izquierda de la coma, N = Nº , de dígitos a la Izquierda de la coma, Dígito = cada uno de los que componen el número. Esta forma corresponde al teorema fundamental de la numeración y por tanto corresponde a la representación. Por ejemplo, la representación de las cantidad 34567 es: 3456710 = (3×10 4 ) + (4×103 ) + (5×10 2 ) + (6×101 ) + (7×100 ) 43 Unidad I Introducción a la Programación Prof. Yerson Rodríguez Concepto Sistemas numéricos posiciónales Sistema Binario (base 2). Es el sistema que utiliza internamente el hardware de las computadoras actuales, por ello en el campo de la computación es el sistema al que se le presta mayor atención y estudio. Se basa en la representación de cantidades utilizando los dígitos 1 y 0. Por tanto su base es 2 (número de dígitos del sistema). Cada dígito de un número en este sistema se denomina bit (contracción de binary digit). Se puede utilizar con nombre propio determinados conjuntos de dígitos en binario. Cuatro bits se denominan cuaterno (ejemplo: 1001), ocho bits octeto o byte (ejemplo: 10010110), al conjunto de 1024 bytes se le llama Kilobyte o simplemente K, 1024 Kilobytes forman un megabyte y 1024 megabytes se denominan Gigabytes. Unidad I 44 Introducción a la Programación Prof. Yerson Rodríguez Concepto Sistemas numéricos posiciónales Sistema Octal (base 8). Es un sistema de numeración cuya base es 8, es decir, utiliza ocho dígitos para la representación de las cantidades, Estos dígitos son; 0123457 Este sistema también es de los llamados posicionales y la posición de sus cifras se mide con relación a la coma decimal que en caso de no aparecer se supone implícitamente a la derecha del número. La aritmética en este sistema es similar a la de los sistemas binario y decimal, por lo que su estudio es similar. 45 Unidad I Introducción a la Programación Prof. Yerson Rodríguez Concepto Sistemas numéricos posiciónales Sistema Hexadecimal (base 16). Es un sistema posicional de numeración en el que su base es 16, por tanto, utilizará 16 dígitos para la representación de cantidades, estos dígitos son; 0 1 2 3 4 5 6 7 8 9 A B C D E F. Los dígitos A, B, C, D, E y F tienen asignados los siguientes valores: Símbolo Valor Absoluto A 10 B 11 C 12 D 13 E 14 F 15 Cabe destacar que este sistema numérico tiene mucha utilidad, en las operaciones internas del computador, ya que por ejemplo cuando se utiliza el comando DEBUG, los valores contenidos en todos los registros de memoria se especifican en hexadecimal. Unidad I 46 Introducción a la Programación Prof. Yerson Rodríguez Conversiones Conversiones Conversión Decimal-Binario: Para convertir números enteros de decimal a binario, la forma más simple es dividir sucesivamente el numero decimal y los cocientes que se van obteniendo por dos, hasta que una de las divisiones se haga 0. La unión de todos los restos obtenidos escritos en orden inverso, nos proporcionan el número inicial expresado en el sistema binario. Ej.: 10 0 2 5 1 2 2 0 2 1 1 2 0 Ósea la conversión del número diez decimal a binario quedaría: 1010 = 10102 47 Unidad I Introducción a la Programación Prof. Yerson Rodríguez Conversiones Conversiones Conversión Decimal-Octal: Conversión décimo octal: Consiste en dividir un numero y sus sucesivos cocientes obtenidos por ocho hasta llegar a una división cuyo cociente sea 0. El numero Octal buscado es el compuesto por todos los restos obtenidos escritos en orden inverso a su obtención. Ej.: 1992 39 72 0 8 249 09 1 8 31 8 7 3 Ósea la conversión del número 1992 decimal a octal quedaría: 199210 = 37108 Unidad I 48 Introducción a la Programación Prof. Yerson Rodríguez Conversiones Conversiones Conversión Decimal-Hexadecimal: Se divide el numero decimal y los cocientes sucesivos por 16 hasta obtener un cociente igual a 0. El número hexadecimal buscado será compuesto por todos logros obtenidos en orden inverso a su obtención. Ej.: 1000 40 8 16 62 14 16 3 Ósea la conversión del número 1000 decimal a hexadecimal quedaría: 100010 = 3E816 49 Unidad I Introducción a la Programación Prof. Yerson Rodríguez Bibliografía Joyanes A., Luis, Programación en Turbo/Borland Pascal 7. 3ra Ed. Osborne/McGrawHill Interamericana, Madrid, 1998 Rodnay, Zaks, Programación en Pascal, Turbo Pascal. 1ra Ed. Anaya Multimedia, Madrid, 1986 Joyanes A., Luis, Turbo/Borland Pascal 7. 1ra Ed. Osborne/McGraw-Hill Interamericana, Madrid, 1997 Noton, Peter. Introducción a la Computación. 3ra Edición. México. McGraw-Hill Interamericana, México, D.F., 2003. Prieto E., Alberto y otros, Introducción a la Informática. 3da Ed. McGraw-Hill Interamericana, Madrid, 2002 Mata T., Ramón, Cushman, Pauline, Introducción a la Programación. 1ra Ed. McGrawHill Interamericana, México, D.F., 2001 Unidad I Introducción a la Programación Prof. Yerson Rodríguez Recursos en Internet www.glencoe.com/norton/online Website con información general de computación y apoyo al libro ”Introducción a la Computación” de Noton, Peter. http://atc.ugr.es/intro_info_mcgraw.html Página web para uso de estudiantes y profesores sobre el libro “Introducción a la Informática” de Prieto E., Alberto y otros. http://www.lawebdelprogramador.com/cursos/Pascal/Turbo Sítio web que provee información de interés sobre programación en Pascal, cursos, tutoriales, etc. http://www.ctv.es/USERS/pacoga/progpas.htm Sítio web que provee información de interés sobre programación en Pascal, cursos, tutoriales, etc. http://ar.geocities.com/nrs_arg/pascalmania/sources.htm Sítio web que provee información de interés sobre programación en Pascal, cursos, tutoriales, etc. http://www.terra.es/personal2/cesar.zm/comienzo.htm Sítio web que provee tutoriales gratuítos de Pascal. http://www.fortunecity.com/skyscraper/seagate/1072/libreria.htm Sitio web con programas en Turbo Pascal. Unidad I