josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real,...

35
1 UNIVERSIDAD NACIONAL DE INGENIERIA UNI – Norte Lic. José Manuel Alvarado INTRODUCCIÓN A LA PROGRAMACIÓN Objetivo General. Emplear las diferentes técnicas de programación para dar solución a diversos problemas a través del análisis de los mismos, diseño y verificación manual de algoritmos. Resolver problemas de conversión a los diferentes sistemas de numeración. Manipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado a objetos. Específicos: Examinar diferentes problemas para aprender a identificar qué tipo de información se necesita producir. Diseñar algoritmos y verificar manualmente los mismos. Programación I

Transcript of josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real,...

Page 1: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

1

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

INTRODUCCIÓN A LA PROGRAMACIÓN

Objetivo General.

Emplear las diferentes técnicas de programación para dar solución a diversos problemas a través del análisis de los mismos, diseño y verificación manual de algoritmos.

Resolver problemas de conversión a los diferentes sistemas de numeración.

Manipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado a objetos.

Específicos:

Examinar diferentes problemas para aprender a identificar qué tipo de información se necesita producir.

Diseñar algoritmos y verificar manualmente los mismos.

Conocer los diferentes tipos de datos dentro de la algoritmización.

Definir los diferentes sistemas de numeración.

Operar con los diferentes sistemas de numeración.

Comprender las técnicas de programación estructurada.

Emplear las técnicas de programación estructurada en la solución de problemas.

Programación I

Page 2: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

2

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Comprender las estructuras de datos Arrays.

Aplicar las estructura de datos Arrays en la solución de problemas.

Comprender que es la programación modular y su funcionamiento.

Emplear la programación modular para dar solución a problemas.

Comprender el comportamiento de las diferentes técnicas de Búsqueda y Ordenación.

Emplear las técnicas de Búsqueda y Ordenación en la solución de problemas.

Conocer la implementación de objetos, atributos y responsabilidades, evaluados en: clases, variables y métodos de un leguaje de programación orientado a objetos.

Programación I

Page 3: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

3

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

UNIDAD I: Sistemas Numéricos (6 Hrs Clase)

1. Binarios (suma, resta, conversión)

2. Octal (suma, resta, conversión)

3. Hexadecimal (suma, resta, conversión)

4. Código ASCII.

UNIDAD II: Reseña Histórica (2 Hrs Clase)

1. Concepto de programa

2. Lenguaje de maquina

Características

Ventajas

Inconvenientes

3. Lenguajes a bajo nivel

Ventajas

Inconvenientes

4. Traductores

Interpretes

Compiladores

UNIDAD III: Elementos de Programación (22 Hrs Clase)

1. Sintaxis y Semántica

2. Tipos de datos

Tipos de datos primitivos

Programación I

Page 4: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

4

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Variables

Constantes

Representación interna de los datos

Conversión de tipo

3. Instrucciones

Instrucción de asignación

Instrucción de E/S

4. Operadores

Operadores aritméticos

Operadores de incrementos y decremento

Operadores relacionales

Operadores lógicos

Operadores de asignación

5. Funciones internas

6. Operaciones con cadenas

7. Estructura de control

Secuencia

Selección

Interacción

UNIDAD IV: Introducción a la POO (50 Hrs Clase)

1. Introducción

2. Clases y objetos

Conceptos

Programación I

Page 5: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

5

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Diferencias

Representación grafica (UML)

3. Estructura interna de una clase

Atributos

Métodos

4. Estructura interna de un objeto

5. Instancia de una clase

6. Diseño practico de clases

7. Métodos de las clases

8. Programación estructurada incluida en Métodos

Estructuras secuenciales

Estructuras selectivas

Estructuras repetitivas

Estructuras de decisión anidadas

Estructuras de repetición anidadas

Búsqueda, ordenación y mezcla

9. Declaración de clases usando un lenguaje de POO

Miembros privados

Miembros públicos

Miembros protegidos

Miembros de datos

Miembros funciones y/o procedimientos

UNIDAD I: SISTEMAS NUMÉRICOS

Programación I

Page 6: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

6

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Los números se pueden representar en distintos sistemas de numeración que se

diferencian entre sí por su base.

Así el sistema de numeración decimal es de base 10, el binario de base 2, el octal de base

8 y el hexadecimal de base 16. El diseño de todo sistema digital responde a operaciones

con números discretos y por ello necesita utilizar los sistemas de numeración y sus

códigos. En los sistemas digitales se emplea el sistema binario debido a su sencillez.

Cualquier número de cualquier base se puede representar mediante la siguiente ecuación

polinómica:

...... 11

00

23

121

bababababaN nnn

Siendo b la base del sistema de numeración. Se cumplirá que b>1; a i es un número

perteneciente al sistema que cumple la siguiente condición: 0 ≤ ai <b.

DECIMAL

Su origen lo encontramos en la India y fue introducido en España por los árabes. Su base

es 10. Emplea 10 caracteres o dígitos diferentes para indicar una determinada cantidad: 0,

1, 2, 3, 4, 5, 6, 7, 8, 9. El valor de cada símbolo depende de su posición dentro de la

cantidad a la que pertenece. Veámoslo con un ejemplo:

01210 106103101136

2101210 10210410610310142,136

BINARIOS (SUMA RESTA, RESTA CONVERSIÓN)

Programación I

Page 7: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

7

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Es el sistema digital por excelencia, aunque no el único, debido a su sencillez. Su base es 2

Emplea 2 caracteres: 0 y 1. Estos valores reciben el nombre de bits (dígitos binarios). Así,

podemos decir que la cantidad 10011 está formada por 5 bits. Veamos con un ejemplo

como se representa este número teniendo en cuenta que el resultado de la expresión

polinómica dará su equivalente en el sistema decimal:

1001234

2 1910110110010010110011

Suma

La tabla de adición siguiente nos muestra las 4 reglas básicas para sumar dígitos binarios:

0 + 0 = 0 Suma = 0 Acarreo = 0

0 + 1 = 1 Suma = 1 Acarreo = 0

1 + 0 = 1 Suma = 1 Acarreo = 0

1 + 1 = 10 Suma = 0 Acarreo = 1

Puede verse que las primeras 3 reglas dan lugar a un resultado de un solo bit, y la cuarta

regla, la suma de dos unos, da lugar a 10 (2 en binario). Cuando se suman números en

binarios, teniendo en cuenta la última regla se obtiene en la columna dada la suma de 0 y

un acarreo de 1 que pasa a la siguiente columna de la izquierda, como se muestra:

Programación I

Page 8: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

8

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Resta

La tabla de siguiente nos muestra las 4 reglas básicas para restar dígitos binarios:

0 - 0 = 0

1 - 1 = 0

1 - 0 = 1

10 - 1 = 1 0 – 1 con acarreo negativo (préstamo) de 1

Cuando se restan números, algunas veces se genera un acarreo negativo que pasa a la

siguiente columna de la izquierda. En binario esto sucede cuando se intenta restar 1 de 0.

En este caso se pide prestado un 1 de la siguiente columna de la izquierda, y en la

columna que se está restando se genera un 10. Veamos esto con un ejemplo:

Supongamos que queremos realizar la resta 5 – 3 = 2 en binario. Esto es 101 – 011

Conversión

Si la conversión es de binario a decimal, aplicaremos la siguiente regla: se toma la cantidad

binaria y se suman las potencias de 2 correspondientes a las posiciones de todos sus

dígitos cuyo valor sea 1. Veamos dos ejemplos:

1011012 = 1.25+0.24+1.23+1.22+0.21+1.20 = 4510

101012= 1.24+0.23+1.22+0.21+1.20 = 2110

Si la conversión es de decimal a binario, aplicaremos la siguiente regla: se toma la cantidad

decimal dada y se divide sucesivamente entre 2. Los restos obtenidos en cada división (0,

1), forman la cantidad binaria pedida, leída desde el último cociente al primer resto.

Decimal Base Cociente Resto 4510 = 1011012

45 2 22 122 2 11 011 2 5 1

Programación I

Page 9: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

9

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

5 2 2 12 2 1 0

Cuando tengamos un número con decimales seguiremos el siguiente procedimiento:

multiplicaremos por 2 la parte decimal y se toma como dígito binario su parte entera. El

proceso se repite con la fracción decimal resultante del paso anterior, hasta obtener una

fracción decimal nula, o bien hasta obtener el número de cifras binarias que se desee.

Ejemplo: 45,645

101101, 101001012

Fracción decimal Multiplicado por: Resultado Dígito binario

0,645 2 1,290 1

0,290 2 0,580 0

0,580 2 1,160 1

0.160 2 0,320 0

0,320 2 0.64 0

0.64 2 1.28 1

0.28 2 0.56 0

0.56 2 1.12 1

OCTAL (SUMA RESTA, RESTA CONVERSIÓN)

Posee ocho símbolos: 0, 1, 2, 3, 4, 5, 6, 7. Su base es 8.

Este sistema tiene una peculiaridad que lo hace muy interesante y es que la conversión al

sistema binario resulta muy sencilla ya que, 8 = 23. Así, para convertir un número de base

8 a binario se sustituye cada cifra por su equivalente binario.

Programación I

Page 10: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

10

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Suma

Las operaciones aritméticas de este sistema se resuelven en idéntica forma a los sistemas

vistos, sin rebasar la base, es decir, cada vez que se conformen grupos de ocho se salta al

siguiente nivel significativo. A continuación se presentan ejemplos de cada caso.

257318

+ 321478

60100

Resta

321478

-257318

42168

Conversión

Este sistema tiene una base de ocho símbolos. La facilidad que existe en convertir entre el

sistema binario y el octal, permite expresar los números binarios en un formato más

compacto, ya que cada dígito octal equivale a 3 dígitos binarios.

Base: 8 Símbolos: 0, 1, 2, 3, 4, 5, 6, 7

Los 8 primeros números octales se escriben:

Octal Decimal Binario

0 0 000

1 1 001

2 2 010

3 3 011

4 4 100

5 5 101

Programación I

Page 11: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

11

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

6 6 110

7 7 111

Binario a Octal

Para convertir un número expresado en base 8 a base 2, simplemente sustituimos cada

una de las cifras que lo forman por sus tres cifras binarias equivalentes.

Ejemplo: Convertir a Binario el número 375,428

Con lo que tenemos que 375,428 = 011111101,1000102

Octal a Binaria

Si la conversión es de binario a octal se realiza a la inversa, comenzando desde la coma

decimal hacia la izquierda para la parte entera, rellenando con 0’s a la izquierda si fuera

necesario; y desde la coma decimal hacia la derecha para la parte fraccionaria, rellenando

con 0’s a la derecha si fuera necesario. Ejemplo: Convertir 11111101,1000102 a octal

Con lo que tenemos que 11111101,1000102 = 375,428

Octal a Decimal

Se realiza del mismo modo que de binario a decimal, teniendo en cuenta que la base

ahora es B=8.

Ejemplo: 345,58 = 3·82 + 4·81 + 5·80 + 5·8-1 = 192 + 32 + 5 + 0,625 = 229,62510

Decimal a Octal

Programación I

Page 12: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

12

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Convertir el numero 1036,3510

HEXADECIMAL (SUMA RESTA, RESTA CONVERSIÓN)

Programación I

El resultado final es la unión de ambos

valores: 1036,3510 = 2014,26314…8.

Page 13: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

13

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Está compuesto por 16 símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F. Su base es 16. Es

uno de los sistemas más utilizados en electrónica, ya que además de simplificar la

escritura de los números binarios, todos los números del sistema se pueden expresar en

cuatro bits binarios al ser 16 = 24. La conversión de un número hexadecimal a uno binario

es muy sencilla al igual que en el sistema octal.

Las operaciones aritméticas son las mismas de cualquier otro sistema. A continuación se

relacionan ejemplos de sumas, restas:

Suma

(7AB,CD)16+(AA,33)16 7AB,CD16

AA,3316 8 5 6,0016

Resta

(ABCDE)16-(1234 A)16 ABCDE

1234A

99994

Conversión

La conversión entre binario y hexadecimal es igual al de la conversión octal y binario, pero

teniendo en cuenta los caracteres hexadecimales, ya que se tienen que agrupar de 4 en 4.

La conversión de binario a hexadecimal se realiza según el ejemplo siguiente:

Hexadecimal a Binario

Programación I

Page 14: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

14

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

La conversión de hexadecimal a binario simplemente sustituiremos cada carácter por su

equivalente en binario, por ejemplo: 69DE16= 0110 1001 1101 11102

Sistema binario Sistema Hexadecimal

0000 0

0001 1

0010 2

0011 3

0100 4

0101 5

0110 6

0111 7

1000 8

1001 9

1010 A

1011 B

1100 C

1101 D

1110 E

1111 F

Ejemplo: 1011111,1100012

Agrupando obtenemos el siguiente

resultado:

0101 1111, 1100 01002

Sustituyendo según la tabla logramos la

conversión esperada:

5F, C416

Decimal a Hexadecimal

Programación I

Page 15: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

15

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

(284161)10 base Cociente Residuo

284161 ÷ 16 = 17760 1

17760 ÷ 16 = 1110 0

1110 ÷ 16 = 69 6

69 ÷ 16 = 4 5

4

(284161)10 = (45601)16

Hexadecimal a Decimal

La conversión se realiza siguiendo el mismo procedimiento que en las conversiones

binario-decimal, pero considerando la base B=16. En este caso, además, deberemos

sustituir los valores A, B, C, D, E, F por su equivalencia en el sistema decimal.

Ejemplo: Hállese el equivalente decimal del valor hexadecimal 39,B816.

39,B816 = 3·161 + 9·160 + B·16-1 + 8·16-2 =

= 3·161 + 9·160 + 11·16-1 + 8·16-2 =

= 48 + 9 + 0.6875 + 0.03125 =

= 57,71875

Hexadecimal a Octal (y viceversa)

Para convertir de entre estos sistemas numéricos lo que se debe hacer es convertir

cualquiera de estos a su equivalente en sistema decimal o binario y luego convertir al otro.

CÓDIGO ASCII

Programación I

Page 16: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

16

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

ASCII (American Standard Code for Information Interchange).

El código ASCII básico utiliza 7 bits y permite representar 128 caracteres (letras

mayúsculas y minúsculas del alfabeto inglés, símbolos de puntuación, dígitos 0 a 9 y

ciertos controles de información tales como retorno de carro, salto de línea, tabulaciones,

etc.). Este código es el más utilizado en computadoras, aunque el ASCII ampliado con 8

bits permite llegar a 28 (256) caracteres distintos, entre ellos ya símbolos y caracteres

especiales de otros idiomas como el español.

Programación I

Page 17: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

17

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

UNIDAD II: RESEÑA HISTÓRICA

CONCEPTO DE PROGRAMA

Un programa informático es un conjunto de instrucciones que una vez ejecutadas

realizarán una o varias tareas en una computadora. Sin programas, estas máquinas no

pueden funcionar. Al conjunto general de programas, se le denomina software, que más

genéricamente se refiere al equipamiento lógico o soporte lógico de una computadora

digital.

DEFINICIÓN DE LENGUAJE

Un lenguaje de programación es un conjunto de símbolos y reglas sintácticas y semánticas

que definen su estructura y el significado de sus elementos y expresiones, y es utilizado

para controlar el comportamiento físico y lógico de una máquina.

LENGUAJE DE MAQUINA

Características

Los ordenadores sólo entienden un lenguaje específico para cada máquina, que se

denomina CÓDIGO MÁQUINA o Lenguaje Máquina. Este lenguaje utiliza un código binario

(símbolos “0" y “1").

Las órdenes que se dan a un ordenador han de ir codificadas en instrucciones, y estas

forman los programas. Las instrucciones tienen dos partes diferenciadas: código de

operación y código(s) de operando(s):

CODOP CODOPERANDO(S)

En la primera, se codifica la operación que realiza la instrucción. Este código de operación

siempre es único para cada instrucción. En la segunda se indica(n) la(s) dirección(es) de

Programación I

Page 18: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

18

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

memoria en la que se encuentra el operando, hasta un máximo de tres, sobre el/(los) que

se aplicará la operación.

Puesto que cada tipo de ordenador tiene su código máquina específico, para programar

en este lenguaje el programador debe conocer la arquitectura física de la computadora

con cierto detalle (registros de la CPU, palabras de memora,...). La estructura del lenguaje

máquina está totalmente adaptada a los circuitos de la computadora y muy alejada del

lenguaje que empleamos normalmente para expresar y analizar los problemas que hoy día

son resolubles con la computadora. Por ejemplo, para hacer cálculos aritméticos

disponemos de un “lenguaje” matemático fácil de comprender y claro, que no se parece

en nada al código máquina necesario para hacer dichos cálculos.

Ventajas

Un programa escrito en lenguaje máquina es directamente interpretable por el

procesador central. Una vez introducido el programa en la memoria principal de la

computadora, no se necesitan transformaciones previas para ser ejecutado (como

más adelante veremos que sí ocurre con los programas escritos en lenguajes de

alto nivel).

Los programas escritos en lenguaje máquina se ejecutan muy eficientemente (con

rapidez), debido a que el usuario lo redacta específicamente para los circuitos que

lo han de interpretar y ejecutar, y a que desde el código máquina se puede utilizar

la totalidad de los recursos de la máquina.

Inconvenientes

Las instrucciones son cadenas de ceros y unos, aunque estas cadenas se pueden

introducir en la computadora mediante un código intermedio (octal o

hexadecimal).

Programación I

Page 19: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

19

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Los datos se utilizan por medio de las direcciones de memoria donde se

encuentran. En las instrucciones no aparecen nombres de variables (i, j aux...), sino

que el programador debe asignar las direcciones de memoria para las variables y

constantes del programa. Para realizar esta asignación se debe tener en cuenta la

zona de memoria que ocupa el programa, para que no se solape con la zona en la

que se almacenan las variables.

El repertorio de instrucciones suele ser muy reducido y las instrucciones realizan

operaciones muy simples.

En lenguaje máquina, hay varios tipos de instrucciones:

De transferencia de información.

De tratamiento o aritmético-lógicas y de desplazamiento

De transferencias de control: bifurcaciones, saltos, llamadas a procedimientos y

retornos de procedimientos.

Muchas computadoras, por ejemplo, no disponen de instrucciones específicas de

multiplicar y dividir; en su lugar, el programador debe ingeniárselas para

descomponer cada una de las operaciones que desee realizar en términos de las

instrucciones elementales del repertorio máquina.

Por ejemplo, para multiplicar, se deberá codificar un algoritmo que realice la

multiplicación por medio de sumas, comparaciones, desplazamientos, etcétera.

El lenguaje máquina depende y está ligado íntimamente a la CPU del computador.

Si dos computadoras tienen CPU’s diferentes, tendrán distintos lenguajes máquina.

En particular, dos microcomputadoras con el mismo microprocesador e iguales

circuitos de control, tienen igual lenguaje máquina. La dependencia del lenguaje

máquina de la configuración de la CPU hace que los programas redactados en este

lenguaje de programación sean poco transferibles o transportables de una

computadora a otra.

Programación I

Page 20: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

20

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

En un programa en código máquina, no pueden incluirse comentarios que faciliten

la legibilidad del mismo. Además, debido a su representación totalmente

numérica, es muy difícil de reconocer o interpretar por el usuario.

LENGUAJES A BAJO NIVEL

Los lenguajes de máquina están escritos en códigos (código máquina) directamente

inteligibles por la máquina (computadora), siendo sus instrucciones cadenas binarias (0 y

1).

“Lenguaje de máquina” hace referencia al lenguaje específico de una computadora,

mientras que “código máquina” hace referencia al modo en que se escriben los diferentes

lenguajes de máquina.

Los lenguajes de bajo nivel son lenguajes de programación que se acercan al

funcionamiento de una computadora. Los lenguajes de más bajo nivel son los lenguajes de

máquinas. A éste nivel le sigue el lenguaje ensamblador, ya que al programar en

ensamblador se trabajan con los registros de memoria de la computadora de forma

directa.

Ventajas

La programación en un lenguaje de bajo nivel tiene como ventajas una mayor adaptación

al equipo, además de la posibilidad de obtener la máxima velocidad con el mínimo uso de

memoria.

Inconvenientes

Sin embargo tiene importantes inconvenientes, como la imposibilidad de escribir código

independiente de la máquina y la mayor dificultad en la programación y en la

comprensión de los programas.

Programación I

Page 21: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

21

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

TRADUCTORES

Para facilitar el trabajo de programación y hacer los programas más legibles, resolviendo

las limitaciones que presentan los lenguajes máquina, se han desarrollado lenguajes de

programación que permiten utilizar una simbología y terminología próximas a las

tradicionalmente utilizadas en la descripción de problemas. Estos lenguajes se denominan

genéricamente lenguajes simbólicos.

Como la computadora únicamente puede interpretar y ejecutar código máquina, existen

programas traductores, que traducen o trasladan programas desde el lenguaje simbólico

al lenguaje máquina.

INTERPRETES

Un intérprete hace que un programa fuente escrito en un lenguaje vaya, sentencia a

sentencia, traduciéndose a código objeto y sea ejecutado directamente por la

computadora. El intérprete capta una sentencia fuente y la traduce, expandiéndola en una

o varias instrucciones máquina, que ejecuta inmediatamente, no creándose, por tanto, un

fichero o programa objeto almacenable en memoria masiva para posteriores ejecuciones.

En la práctica el usuario crea un fichero con el programa fuente. Esto suele realizarse con

un editor específico del propio intérprete del lenguaje. Según se van almacenando las

instrucciones simbólicas, se analizan y se producen los mensajes de error

correspondientes: así el usuario puede proceder inmediatamente a su corrección. Una vez

creado el fichero fuente el usuario puede dar la orden de ejecución (“RUN”) y el intérprete

lo ejecuta línea a línea. Siempre la traducción antecede inmediatamente a la ejecución, de

forma que:

Las optimizaciones sólo se realizan dentro del contexto de cada sentencia, no

contemplándose el programa o sus estructuras en conjunto.

Programación I

Page 22: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

22

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Si una sentencia forma parte de un bucle, se traduce tantas veces como tenga que

ejecutarse el bucle, y no una sola vez como ocurriría en un compilador.

Cada vez que utilicemos un programa tenemos que volver a traducirlo, ya que en la

traducción no se genera un fichero objeto que poder guardar en memoria masiva

(y utilizarlo en cada ejecución). Con un compilador, aunque la traducción es más

lenta, esta sólo debe realizarse una vez (ya depurado el programa): cuando

deseemos ejecutar un programa ejecutamos el fichero objeto, que se tradujo

previamente.

COMPILADORES

Un compilador traduce un programa fuente, escrito en un lenguaje de alto nivel, a un

programa objeto, escrito en lenguaje ensamblador o máquina. El programa fuente suele

estar contenido en un fichero, y el programa objeto pasa a ocupar otro fichero. El fichero

objeto puede almacenarse en memoria masiva para ser procesado posteriormente.

La traducción por un compilador (la compilación) consta de dos etapas fundamentales,

que a veces no están claramente diferenciadas a lo largo del proceso: la etapa de análisis

del programa fuente y la etapa de síntesis del programa objeto; es decir, qué pretende

realizar el programa fuente, y cómo realizarlo en el programa objeto. A su vez, cada una

de estas etapas conlleva la realización de varias fases, y en cada una de las cuales se

recorre o analiza completamente el programa fuente.

Programación I

Page 23: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

23

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Análisis lexicográfico.

Consiste en descomponer el programa

fuente en sus elementos constituyentes,

es decir, sus símbolos, que son caracteres

o secuencias de caracteres con

significado especial. En cierto sentido,

identifica las palabras del lenguaje. De

esta forma, el analizador léxico (también

denominado escáner) aísla los símbolos,

identifica su tipo y almacena en las tablas

de símbolos la información del símbolo

que pueda ser necesaria durante el

proceso de traducción.

Análisis sintáctico.

La sintaxis de los lenguajes de programación se especifica mediante un conjunto de reglas

(la gramática del lenguaje). Esta fase deberá comprobar si un programa es sintácticamente

correcto, es decir, si sus estructuras (expresiones, sentencias o asignaciones) están

construidas de acuerdo con las reglas del lenguaje.

Análisis semántico.

La semántica de un lenguaje de programación define el significado dado a las distintas

construcciones sintácticas. En los lenguajes de programación, el significado está ligado a la

estructura sintáctica de las sentencias.

En el proceso de traducción, el significado de las sentencias se obtiene de la identificación

sintáctica de las construcciones sintácticas y de la información almacenada en la tabla de

símbolos.

Programación I

Page 24: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

24

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Generación de Código Intermedio.

Si no se han producido errores en algunas de las etapas anteriores, este módulo realiza la

traducción a un código interno propio del compilador, denominado Código Intermedio, a

fin de permitir la transportabilidad del lenguaje a otros ordenadores.

Optimizaciones.

En la fase de optimización se mejora el código intermedio generado anteriormente,

analizando el programa de forma global. Un ejemplo de optimización sería encontrar en el

código la inicialización de una constante dentro de un bucle, con lo que esta inicialización

se produciría tantas veces como se repitiese el bucle. El optimizador sacaría esta

inicialización de la constante fuera del bucle para que sólo se realizase una vez.

Generación de Código Objeto.

En esta etapa se genera el código objeto final. En algunos casos, este código es

directamente ejecutable, y en otros necesita algunos pasos previos a la ejecución

(ensamblado, encuadernación y carga).

UNIDAD III: ELEMENTOS DE PROGRAMACIÓN

SINTAXIS Y SEMÁNTICA

Cada lenguaje de programación define reglas que permiten componer el texto de un

programa como una secuencia de símbolos. El conjunto de estas reglas se denomina

gramática, o más usualmente, la sintaxis del lenguaje. Sintaxis significa con orden. Cada

regla establece una clase definida de objetos o categorías sintácticas; como ejemplos

pueden darse algunas partes típicas de un programa: acciones, declaraciones,

condiciones, expresiones, etc.

Programación I

Page 25: josemao.files.wordpress.com€¦  · Web viewManipular la abstracción de objetos del mundo real, mediante la implementación de clases utilizando un lenguaje de programación orientado

25

UNIVERSIDAD NACIONAL DE INGENIERIAUNI – Norte

Lic. José Manuel Alvarado

Asociado a cada palabra (símbolo) y a cada frase (categoría sintáctica) debe existir un

significado. Que se traduce en valores de los objetos (constantes y variables) de acuerdo a

sus tipos; o en nombres de objetos o grupos de acciones; o en la especificación de las

operaciones que deben efectuarse sobre esos objetos. Todas las reglas que aportan esta

información se denominan: Semántica del lenguaje.

TIPOS DE DATOS

Datos primitivos

Llamamos tipos primitivos de un lenguaje cuando hablamos de tipos de datos ya definidos

en el lenguaje y de los que se puede partir para la construcción de expresiones o tipos de

compuestos.

Variables

Las variables son objetos que poseen un valor que puede ir cambiando o ser modificado a

lo largo de la ejecución del programa.

Constantes

Las constantes son valores declarados en un programa para su utilización posterior y

poseen un valor que no varía durante el proceso de ejecución.

Programación I