INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George...

97
INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y ADMINISTRATIVAS 2 DE OCTUBRE DEL 2009 THE BOOBS Secuencia: 1CM1 LICENCIATURA EN CIENCIAS DE LA INFORMÁTICA FUNDAMENTOS DE LA COMPUTACIÓN “UNIDAD 3 “ CONCEPTOS DE PROGRAMACION Integrantes: MENDOZA ESPINOSA DIANA CECILIA PAREDES CARRILLO NATALY TREJO SÀNCHEZ JESSICA DANIELA ZAGAL DOÌINGUEZ GLORIA EVA

Transcript of INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George...

Page 1: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONALUNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y CIENCIAS SOCIALES Y

ADMINISTRATIVAS

2 DE OCTUBRE DEL 2009THE BOOBS Secuencia: 1CM1

LICENCIATURA EN CIENCIAS DE LA INFORMÁTICA

FUNDAMENTOS DE LA

COMPUTACIÓN

“UNIDAD 3 “

CONCEPTOS DE PROGRAMACION

Integrantes:

MENDOZA ESPINOSA DIANA CECILIA PAREDES CARRILLO NATALY

TREJO SÀNCHEZ JESSICA DANIELAZAGAL DOÌINGUEZ GLORIA EVA

Page 2: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS

Tabla de contenidoINTRODUCCIÓN 3

3.1 Como determinar que un problema sea resuelto por computadora 6

3.1.1 La forma en que los programas resuelven problemas 10

3.2 Soluciones lógicas 13

3.2.1 Algoritmo 13

3.2.2 Pseucódigo 14

3.2.3 Compuertas o puertas lógicas 17

3.3 Diagrama lógico 18

3.3.1 Diagrama de flujo 19

3.3.2 Diagrama de Gantt 20

3.3.3 Diagrama de Pert 22

3.3.4 Diagrama de Venn 23

3.3.5 Diagrama de Procedimiento 24

3.3.6 Diagrama de Karnaugh- Simplificación 25

3.3.7 Diagrama de lluvia de ideas 27

3.4 Lenguaje de programación 28

3.4.1 Programa 30

3.4.2 Fases de creación de un programa 32

3.5 Lenguaje máquina 363.6 Traductor de lenguajes 38 3.6.1 Traductores 42

3.6.2 Compiladores 43

3.6.3 Ensamblador 48

3.6.4 Clasificación de compiladores 51

3.7 Elementos de programación 52

3.7.1 Tipos de datos 52

3.7.1.1 Estáticos 52

THE BOOP´s Página 2

Page 3: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS3.7.1.2 Dinámicos 55

3.7.1.3 Simples 55

3.7.1.4 Estructurados 56

3.7.1.5 Ordinales 57

3.7.2 Operadores lógicos 60

3.8 Programación estructurada 60

3.8.1 Técnicas de programación 60

3.8.1.1 Programación modular 60

3.8.1.2 Programación estructurada 61

3.8.3 Visión moderna de un programa estructurado 64

CONCLUSION 67

BIBLIOGRAFIA69

INTRODUCCIÓN

Desde que la computadora tuvo la capacidad de realizar tareas por si sola se vio

en la necesidad de seguir reglas que regularan el uso de sus funciones utilizando

diversos métodos para su comprensión...

Se baso en instrucciones que se vieron apoyadas por una serie de métodos que

permitieron agrupar información.

Esta información debía de ser comprendida por el ordenador ya que las

computadoras no usan un lenguaje como el del humano, si no que este debe de

ser interpretado para llegar a un nivel en el que las instrucciones sean entendidas

por el ordenador. Introduciendo así el uso de medios tales como algoritmos,

THE BOOP´s Página 3

Page 4: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASdiagramas de diversos tipos, pseucódigo, etc. Que permitieron organizar ideas

para la información que tenía que ser interpretada.

De aquí que surgen los lenguajes de programación, mediante los cuales se

desarrollan instrucciones que nos permiten llegar a un fin especifico.

Con el tiempo, estos fueron evolucionando en complejidad y en uso, debido a

esto se sentaron bases para el desarrollo de programas marcando una pauta y

división en su uso, surgiendo así distintos tipos de programación que satisfacían

diferentes requerimientos.

Al organizarse la forma en que trabajarían los programas surgieron

especificaciones de diversa índole, creando instrucciones delimitadas que se

seguirían como patrón en la elaboración de estos apareciendo así el uso de

“palabras” universales en cada programa para su utilización individual.

Dividiéndose también en complejidad unos de otros.

Para esta división se tomo en cuenta la clasificación de la información ya que no

toda seria tratada con el mismo fin, si no que se agruparon datos similares,

surgiendo grupos que tomarían un nombre de acuerdo a sus funciones y a la

forma en que fuerana ser utilizados.

Cuando la programación ya estuvo definida se trato de que fuera lo más

entendible tanto para el programador, como para una persona ajena a él, que

quisiera consultar el programa. Para esto se estructuraron los programas. En ellos

se trabajaría con un status sin olvidarse de las reglas de programación

independientemente del programa en el que se estuviese trabajando, ordenando

las instrucciones de una manera en la que se redujera el numero de procesos a

realizar dentro del, agilizando el manejo de información para hacerla lo más breve

y funcional dentro del programa.

THE BOOP´s Página 4

Page 5: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS

3.1 CÓMO DETERMINAR QUE UN PROBLEMA SEA RESUELTO POR COMPUTADORA

El software proporciona las instrucciones que hacen funcionar el hardware de la

computadora; sin este la computadora no puede funcionar, no es más que un

montón de partes. Algunos comandos de software pueden estar integrados en

piezas de de hardware especificas (por ejemplo los chips de CPU y ROM), peo

incluso en estos casos la programación es simplemente una versión de

“codificación dura” del software. Un ejemplo de este tipo de codificación se puede

encontrar en algo tan común como un reloj digital. Aunque posiblemente nunca lo

hayan considerado cierta entre clase de software está integrada en los circuitos

del reloj los cuales le permiten funciona. Debido a que el software es una parte tan

THE BOOP´s Página 5

Page 6: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASimportante de cualquier sistema de computación, es importante entender que tipo

de software es y donde proviene.

En termino software puede utilizarse en forma genérica, por ejemplo en la frase”

El software le dice a la computadora que hacer”. El término también puede

utilizarse de una manera más específica para describir un sistema operativo o

aplicación. Por ejemplo: puede decir, “Windows XP es un producto de software” o

“Photoshop es un producto de software”

Un programa de cómputo es un conjunto de instrucciones o declaraciones

(también conocidas como código) que debe de utilizar el CPU de una

computadora. Los programas, o software, tienen distintas formas. Éstas se pueden

dividir en tres categorías principales: sistemas operativos, herramientas y

aplicaciones.

Un programa normalmente está compuesto de un modulo principal y submódelos.

Estos módulos están almacenados como un conjunto de archivos; los programas

grandes pueden contener miles de archivos individuales, cada uno para un

propósito especifico. Algunos de los archivos contienen instrucciones para la

computadora mientras que otros contienen datos. Para las PC basadas en

Windows, algunas extensiones comunes para los archivos de programas son las

siguientes:

Archivos ejecutables: Un archivo ejecutable (.exe, .com) es parte de un

programa que en realidad envía comandos al procesador. De hecho,

cuando usted ejecuta un programa, está ejecutando un archivo ejecutable.

El procesador ejecuta los comandos del archivo ejecutable. El procesador

ejecuta dos comandos del archivo, de ahí proviene el nombre archivo

ejecutable. Los archivos ejecutables normalmente (pero no siempre) tienen

la extensión de nombre de archivo .exe.

Archivos de biblioteca dinámica de vínculos: Un archivo de biblioteca

dinámica de vínculos (.dll) es un archivo .exe parcial. Un archivo .dll no

puede ejecutarse por sí mismo; en lugar de esto, sus comandos son

accedidos por otro programa que esta ejecutándose. Debido a que los

THE BOOP´s Página 6

Page 7: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASarchivos .dll pueden contener partes de un programa ejecutable, ofrecen a

los programadores de manera efectiva de dividir programas grandes en

componentes pequeños que son reemplazables. Esta característica hace

que el programa completo sea fácil de actualizar. Además los archivos .dll

también pueden ser compartidos por distintos programas al mismo tiempo.

Archivos de inicialización: Un archivo de inicialización (.ini) contiene

información sobre co9nfiguraciones, por ejemplo, el tamaño y punto de

inicio de una ventana, el color de fondo, el nombre del usuario y otros

aspectos. Los archivos de inicialización ayudan a los programas a

ejecutarse o contiene información que los programas pueden utilizar

cuando se ejecutan. Aunque los archivos de inicialización se siguen

utilizando, muchos programas nuevos almacenan las preferencias del

usuario y otras variables del programa en el registro de Windows, una base

de datos especial contiene información sobre el usuario del computador,

los programas instalados y ciertos dispositivos de hardware.

Archivos de ayuda: Un archivo de ayuda (.hlp, .chm) contiene información

a un formato indexado y con vínculos cruzados. Al incluir el archivo de

ayuda, los programadores pueden proporcionar al usuario información de

ayuda en línea.

Archivos de secuencia de comandos: (.bat) automatiza tareas comunes

o repetitivas. Un archivo de secuencia de comandos es un programa

simple que consiste en un archivo de texto sin formato que contiene uno o

más comandos del sistema operativo. Si escribe el nombre de un archivo

de secuencia de comandos es un símbolo de sistema, su sistema operativo

ejecutara los comandos del sistema operativo.

La mayor parte de los archivos de programas se almacenan en una carpeta

nombrada como la aplicación o una abreviatura de ella. Sin embrago, algunos

archivos de programa se pueden encontrar en otras carpetas. Por ejemplo, los

archivos .dll en Windows XP normalmente están almacenados en las carpetas c:\

THE BOOP´s Página 7

Page 8: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASwindows\system 32. Para ver una lista de la mayoría de os archivos necesarios

para ejecutar una aplicación puede abrir la carpeta de esa aplicación.

El proceso de resolución de problemas con computadoras conduce a la escritura

de un programa y su ejecución en la misma. Aunque el proceso de diseñar

programas es esencialmente un proceso creativo, se puede considerar una serie

de fases o pasos comunes que generalmente deben seguir los programadores.

Estas fases son las siguientes:

Definición del Problema: Esta fase está dada por el enunciado del

problema, el cual requiere una definición clara y precisa. Es importante que

se conozca lo que se desea que realice la computadora; mientras esto no

se conozca del todo no tiene mucho caso continuar con la siguiente etapa.

Análisis del Problema: Una vez que se ha comprendido lo que se desea de

la computadora, es necesario definir:

1. Los datos de entrada.

2. Cuál es la información que se desea producir (salida).

3. Los métodos y fórmulas que se necesitan para procesar los datos.

Una recomendación muy práctica es el que nos pongamos en el lugar de la

computadora y analicemos que es lo que necesitamos que nos ordenen y en que

secuencia para producir los resultados esperados.

Codificación.

La codificación es la operación de escribir la solución del problema (de acuerdo a

la lógica del diagrama de flujo o pseudocódigo), en una serie de instrucciones

detalladas, en un código reconocible por la computadora, la serie de instrucciones

detalladas se le conoce como código fuente, el cual se escribe en un lenguaje de

programación o lenguaje de alto nivel.

THE BOOP´s Página 8

Page 9: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS Prueba y Depuración:

Los errores humanos dentro de la programación de computadoras son muchos y

aumentan considerablemente con la complejidad del problema. El proceso de

identificar y eliminar errores, para dar paso a una solución sin errores se le llama

depuración. La depuración o prueba resulta una tarea tan creativa como el mismo

desarrollo de la solución, por ello se debe considerar con el mismo interés y

entusiasmo.

Documentación:

Es la guía o comunicación escrita es sus variadas formas, ya sea en enunciados,

procedimientos, dibujos o diagramas. A menudo un programa escrito por una

persona, es usado por otra. Por ello la documentación sirve para ayudar a

comprender o usar un programa o para facilitar futuras modificaciones.

La documentación se divide en tres partes:

1. Documentación Interna: son los comentarios o mensajes que se añaden al

código fuente para hacer más claro el entendimiento de un proceso.

Documentación Externa: se define en un documento escrito los siguientes puntos:

Descripción del Problema.

Nombre del Autor.

Algoritmo (diagrama de flujo o pseudocódigo).

Diccionario de Datos.

Código Fuente (programa).

Manual del Usuario: describe paso a paso la manera cómo funciona el

programa, con el fin de que el usuario obtenga el resultado deseado.

THE BOOP´s Página 9

Page 10: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS Mantenimiento:

Se lleva a cabo después de terminado el programa, cuando se detecta que es

necesario hacer algún cambio, ajuste o complementar al programa para que siga

trabajando de manera correcta. Para poder realizar este trabajo se requiere que

el programa este correctamente documentado.

3.1.1 La forma en que los programas resuelven problemas.

Un programa es un conjunto de pasos que controlan una computadora, pero es

probable que no sepa que apariencia tiene estos pasos. Su apariencia o estructura

depende un poco del lenguaje de programación, pero el concepto general es el

mismo sin importar que lenguajes se utiliza. Cada paso del código es una

instrucción que realiza una sola tarea en una secuencia en una secuencia de

pasos que llevan a cabo una tarea más compleja.

Control de flujo de un programa:

Cuando inicia un programa, la computadora comienza a leer y llevar a cabo

declaraciones en el punto de entrada del principal archivo ejecutado. Normalmente

este punto de entrada es la primera línea (o declaración) del archivo, aunque

puede estar ubicado en otro lugar. Después de la ejecución de la primera

declaración, el programa pasa al control (o flujo) a otra declaración y así en

adelante hasta que se ejecuta la última declaración del programa; entonces el

programa termina. El orden en el cual se ejecutan las declaraciones de un

programa se conoce como control de flujo del programa.

Pseudocódigo

THE BOOP´s Página 10

Page 11: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASMezcla de lenguaje de programación y español (o inglés o cualquier otro idioma)

que se emplea, dentro de la programación estructurada, para realizar el diseño de

un programa. En esencial, el Pseudocódigo se puede definir como un lenguaje de

especificaciones de algoritmos.

En esencial, el Pseudocódigo se puede definir como un lenguaje de

especificaciones de algoritmos.

Es la representación narrativa de los pasos que debe seguir un algoritmo para dar

solución a un problema determinado. El Pseudocódigo utiliza palabras que indican

el proceso a realizar.

Ventajas de utilizar un Pseudocódigo a un Diagrama de Flujo

Ocupa menos espacio en una hoja de papel

Permite representar en forma fácil operaciones repetitivas complejas

Es muy fácil pasar de Pseudocódigo a un programa en algún lenguaje de

programación.

Si se siguen las reglas se puede observar claramente los niveles que tiene

cada operación.

Ejemplo de un pseucódigo

THE BOOP´s Página 11

Page 12: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASDiagramas estructurados (Nassi-Schneiderman)

El diagrama estructurado N-S también conocido como diagrama de chapin es

como un diagrama de flujo en el que se omiten las flechas de unión y las cajas

son contiguas. Las acciones sucesivas se pueden escribir en cajas sucesivas y

como en los diagramas de flujo, se pueden escribir diferentes acciones en una

caja.

Algoritmos

Los pasos que se presentan en un diagrama IPO normalmente conducen hacia un

resultado deseado. En conjunto, estos pasos se conocen como algoritmos. Un

algoritmo es una serie de instrucciones paso a paso que, se siguen, producen un

resultado conocido o esperado. Los pasos para encontrar una solución son los

mismos sin importar que se encuentre la solución con una computadora o a

mano, por lo cual se puede tener un programa y un diagrama IPO hecho a mano

parta realizar la misma tarea.

3.2 SOLUCIONES LOGICAS

Son aquellas que tienen operaciones lógicas.

La solución a cualquier problema de cómputo involucra la ejecución de una serie

de acciones en un orden específico. Al procedimiento para resolver un problema

en término de:

1. Acciones a ejecutar.

2. El orden en el cual se llevan a cabo dichas acciones.

3.2.1 ALGORITMO

THE BOOP´s Página 12

Page 13: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS Es un diseño de una serie de pasos a seguir y procesos lógicos encaminados a

resolver un problemas.

Características:

Lógica

Secuencia

Detallada

Acciones Pedir datos

Desplegar datos

Evaluar condiciones

Ejecutar operaciones

SOLUCION DE UN PROBLEMA1. ¿Qué debo hacer?

2. ¿Qué debo tener?

3. ¿Cómo hacerlo?

NOTA: Información proporcionada al algoritmo = Entrada Información producida por el algoritmo = Salida

El siguiente ejemplo demuestra que es importante especificar correctamente el

orden en que se debe ejecutar las acciones:

Considere el algoritmo “levantarse y arreglarse” que sigue un joven para salir de la

cama e ir a su trabajo:

1. Levantarse de la cama

THE BOOP´s Página 13

Page 14: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS2. Quitarse la pijama

3. Bañarse

4. Vestirse

5. Desayunar manejar hacia el trabajo

Esta rutina hace el ejecutivo vaya al trabajo bien preparado para tomar decisiones

criticas. A la especificación del orden en el cual se ejecutan las instrucciones

dentro de un programa de computadora se le llama control de programa.

3.2.2 PSEUDOCODIGO

El pseudocódigo en un lenguaje artificial e informal que ayuda a los

programadores a desarrollar algoritmos. El pseudocódigo es similar al inglés; es

conveniente y sencillo, aunque no es un lenguaje de programación real.

Los programas en pseudocódigo no se ejecutan en las computadoras, sino que

solo ayudan al programador a “resolver” un programa antes de intentar escribirlo

en un lenguaje de programación como C.

El pseudocódigo solo consiste en caracteres, de manera que los programadores

pueden introducir los programas en pseudocódigo a la computadora mediante un

programa de edición. La computadora puede desplegar o imprimir una copia

reciente del pseudocódigo cuando sea necesario. Un programa cuidadosamente

cuidado preparado puede convertirse fácilmente en su correspondiente programa.

Es tan claro como el diagrama y es una herramienta útil para el seguimiento de la

lógica de un algoritmo y, sobretodo, facilita la transcripción a un lenguaje de

programación. Tiene la desventaja de que el programador trata de transcribir los

pasos del algoritmo utilizando palabras reservadas, propias del lenguaje en el cual

está acostumbrado a trabajar.

No existe un pseudocódigo estándar, por este motivo hay una notación y una serie

de reglas correspondientes al pseudocódigo.

Algunas instrucciones que generalmente componen a un pseudocódigo son:

Instrucciones declarativas:

THE BOOP´s Página 14

Page 15: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASSon aquellas expresiones que definen las variables y demás objetos del programa,

así como el tipo de los mismos.

Ejemplo: Enteros A, B…

Instrucciones de asignación:

Asigna a ala variable que se encuentra a ala izquierda del símbolo de asignación

utilizando (generalmente el signo =) el valor de la constante, variable o expresión

que se encuentra a la derecha del mismo.

Ejemplos:

X=0 asignan el valor cero a la variable x

Instrucciones de entrada:

Introducen los datos desde un dispositivo o periférico de entrada a la memoria del

ordenador, depositándolos en las variables como paso previo para su tratamiento

en el programa. Ejemplo:

Si el dispositivo es de entrada es el teclado, se utilizara una de las siguientes

expresiones

Introducir variable o leer variable.

Instrucciones de salida:

Graban, imprimen o visualizan en el dispositivo de salida correspondiente los

datos contenidos en las variables especificadas. Dependiendo de los dispositivos

a utilizar, los verbos empleados serán visualizar, imprimir o grabar.

Si el dispositivo es por pantalla;

Visualizar apellidos muestra en pantalla el contenido de la variable apellidos.

REGLAS GENERALES EN LA CONFECCIÓN DE UN PSEUDOCODIGO

El conjunto de instrucciones que forman parte de un programa o

procedimiento va incluido entre las palabras “inicio” y “fin]” que delimitan su

contenido.

THE BOOP´s Página 15

Page 16: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS Los verbos se escribirán la primera letra con mayúscula y el resto con

minúscula.

Los nombres de variables se escribirán con mayúsculas.

Se identificaran los procedimientos o subrutinas del programa principal

encerrado entre los símbolos “<” y “>” el nombre de cada uno de ellos. El

nombre dado al procedimiento y las instrucciones que lo componen será

especificado aparte.

Para mejorar la legibilidad del programa se utilizara el sangrado o

tabulación de los márgenes que indique la subordinación de unas

instrucciones respecto a otras.

Cuando se considere necesario se incluirán comentarios explicativos en el

pseudocódigo precedidos del símbolo asterisco (*).

En algunos pseudocódigos se especifica un entorno donde se describen las

variables auxiliares utilizadas, indicando su nombre, significado, tipo y valor

inicial.

3.2.3 COMPUERTAS O PUERTAS LÓGICAS

Los símbolos lógicos que se usan para representar las puertas lógicas están de

acuerdo con el estándar ANSI/IEEE 91-1984.

La lógica es la parte del razonamiento humano que nos dice que una determinada

proposición (sentencia de asignación) es cierta si se cumplen ciertas condiciones.

Las proposiciones se pueden clasificar como verdaderas o falsas.

Cuando se combinan varias proposiciones se forman funciones lógicas o

proposicionales.

Hacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema

matemático para formular proposiciones lógicas con símbolos, de manera que los

problemas puedan formularse y resolverse de forma similar a como se hace en el

algebra ordinaria.

THE BOOP´s Página 16

Page 17: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASEl término lógico se aplica a los circuitos digitales que se utilizan para implementar

funciones lógicas. Existen varios tipos de circuitos lógicos que son los elementos

básicos que constituyen los bloques sobre los que se construyen los sistemas

digitales más complejos como por ejemplo una computadora.

Las líneas conectadas a cada símbolo son las entradas y las salidas. Las entradas

son las líneas situadas a la izquierda de cada símbolo y la salida es la línea

derecha. Un circuito que realiza una operación lógica determina (NOT, AND, OR)

se denomina puerta lógica. Las puertas AND y OR pueden tener cualquier número

de entradas

En las operaciones lógicas, las condiciones mencionadas anteriormente de:

Verdadero (ALTO) /falso (BAJO). Cada una de las tres operaciones básicas da

lugar a una respuesta para un determinado conjunto de condiciones.

3.3 DIGRAMAS LÓGICOS

INTRODUCCION

La representación del sistemas de control por diagramas lógicos se basa en el

empleo de símbolos normalizados (puertas) que representan funciones lógicas

directas del algebra de Boole (AND, OR, etc.) o sistemas lógicos más complejos

(biestables, registros, contadores etc.).

El conjunto de todos los símbolos con sus interrelaciones forman el loligrama del

sistema de control, representación compacta e independiente de la tecnología de

construcción del mismo (eléctrica, neumática, etc.).

THE BOOP´s Página 17

NO AN AN

Cualquier número de entradas

Page 18: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASDesgraciadamente el diagrama es una herramienta característica del técnico del

software o del ingeniero de diseño, muy alejado de muchos usuarios finales del

autómata, por lo que su empleo queda en la práctica casi circunscrito en la

representación del sistema en alto nivel, efectos de especificaciones y

documentación.

Figura 19. Representación de un circuito Lógico

3.3.1 DIAGRAMA DE FLUJO

Un diagrama de flujo es una representación grafica de un algoritmo o de una

porción de un algoritmo. Los diagramas de flujo se dibujan mediante símbolos de

propósito especial tales como rectángulos, rombos, óvalos y pequeños círculos;

estos símbolos se conectan mediante flechas llamadas líneas de flujo.

Como el pseudocódigo, los diagramas de flujo son útiles para desarrollar,

representar algoritmos, aunque la mayoría de los programadores prefieren el

pseudocódigo. Los diagramas de flujo muestran claramente la manera en que

opera las estructuras de control: esto es lo único para lo que los utilizaremos.

THE BOOP´s Página 18

Page 19: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS

3.3.2 DIAGRAMA DE GANTT

El diagrama de Gantt consiste en una representación gráfica sobre dos ejes; en el

vertical se disponen las tareas del proyecto y en el horizontal se representa el

tiempo.

Los cronogramas de barras o “gráficos de Gantt” fueron concebidos por el

ingeniero norteamericano Henry L. Gantt, uno de los precursores de la ingeniería

industrial contemporánea de Taylor. Gantt procuro resolver el problema de la

programación de actividades, es decir, su distribución conforme a un calendario,

THE BOOP´s Página 19

Page 20: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASde manera tal que se pudiese visualizar el periodo de duración de cada actividad,

sus fechas de iniciación y terminación e igualmente el tiempo total requerido para

la ejecución de un trabajo. El instrumento que desarrolló permite también que se

siga el curso de cada actividad, al proporcionar información del porcentaje

ejecutado de cada una de ellas, así como el grado de adelanto o atraso con

respecto al plazo previsto.

Este gráfico consiste simplemente en un sistema de coordenadas en que se

indica:

En el eje Horizontal: un calendario, o escala de tiempo definido en términos de la

unidad más adecuada al trabajo que se va a ejecutar: hora, día, semana, mes, etc.

En el eje Vertical: Las actividades que constituyen el trabajo a ejecutar. A cada

actividad se hace corresponder una línea horizontal cuya longitud es proporcional

a su duración en la cual la medición efectúa con relación a la escala definida en el

eje horizontal conforme se ilustra.

Símbolos Convencionales: En la elaboración del gráfico de Gantt se acostumbra

utilizar determinados símbolos, aunque pueden diseñarse muchos otros para

atender las necesidades específicas del usuario. Los símbolos básicos son los

siguientes:

· Iniciación de una actividad.

· Término de una actividad

· Línea fina que conecta las dos “L” invertidas. Indica la duración prevista de la

actividad.

· Línea gruesa. Indica la fracción ya realizada de la actividad, en términos de

porcentaje. Debe trazarse debajo de la línea fina que representa el plazo previsto.

· Plazo durante el cual no puede realizarse la actividad. Corresponde al tiempo

improductivo puede anotarse encima del símbolo utilizando una abreviatura.

THE BOOP´s Página 20

Page 21: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS

· Indica la fecha en que se procedió a la última actualización del gráfico, es decir,

en que se hizo la comparación entre las actividades previstas y las efectivamente

realizadas.

Figura. Representación de un diagrama de gant

3.3.3 DIAGRAMA DE PERT

El diagrama PERT es una representación gráfica de las relaciones entre las

tareas del proyecto que permite calcular los tiempos del proyecto de forma

sencilla.

THE BOOP´s Página 21

Page 22: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASPuede organizar tareas, establecer marcos de tiempo e ilustrar dependencias al

inicio de un proyecto con los diagramas de Técnica de programación, evaluación y

revisión (PERT) en Microsoft Office Visio.

También puede usar diagramas de PERT para ilustrar los pasos que encaminan a

una meta específica. Por ejemplo, un diagrama PERT puede servir para definir

los pasos que un departamento necesita para alcanzar sus objetivos de ingresos

cada dos años.

En un diagrama PERT, cada rectángulo o nodo representa una tarea, y las

conexiones entre tareas, dependencias.

3.3.4 DIAGRAMAS DE VENN

Una figura útil que puede ser usada para visualizar las relaciones entre las

variables del algebra de Boole es el diagrama de Venn

THE BOOP´s Página 22

Page 23: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASEn el cual se dibujan círculos traslapados para cada una de las variables.

Cada círculo es designado por una variable. Se asignan todos los puntos dentro

de cada circulo es designado por una variable. Se asignan todos los puntos de

cada círculo como pertenecientes a dichas variables y todos los puntos por fuera

del círculo como no pertenecientes a la variable.

Ahora bien con dos círculos traslapados se forman cuatro áreas distintas dentro

del rectángulo: el área que no pertenece ni a x ni a y (x’y’), el área dentro del

circulo y pero por fuera de x (x’y’), el área dentro del circulo y pero por fuera de y

(xy’) y el área dentro de ambos círculos (xy). De la figura19

Figura 20. Diagrama de Venn de dos los variables

Los diagramas de Venn se usan para demostrar los postulados del algebra de

Boole y para demostrar la validez de los teoremas.

3.3. 5 DIAGRAMA DE PROCEDIMIENTO

La multiplicidad de funciones y el crecimiento de las operaciones, tanto en

empresas del sector oficial como del privado, inciden en la proliferación de

procesos funcionales (crecimientos acelerados) que requieren grandes cantidades

THE BOOP´s Página 23

X Y

XY’

X’Y

X’Y’

Page 24: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASde recursos humanos, materiales y financieros que generalmente conducen a

zonas de empautamiento para el mejoramiento de la capacidad de producción de

bienes o servicios frente a los consumidores y los clientes.

La permanente revisión de los sistemas, estructuras y procedimientos por las

unidades responsables del mejoramiento administrativo permitirá conocer de

manera integral la operación de la institución o de cualquier unidad administrativa.

La presentación de procedimientos aislados no permiten conocer de manera

integral la operación de la empresa o de una de sus partes (unidad administrativa)

y el reconocer la deficiencia en la

calidad de los servicios prestados, y

la necesidad de identificar

problemas y dificultades

administrativas que se presentan en

el cotidiano que hacer institucional,

en mucho obedece a la ausencia de

procedimientos redactados y a su

representación (graficación); de

aquí la necesidad de agrupar- los

en forma ordenada en un solo

documento denominado "Manual de

procedimientos".

El estudio de procedimientos tiene

diferentes matices, tema que es

tratado ampliamente en otro

capítulo de la obra; sin embargo, es importante destacar que una vez que se ha

recabado, integrado y analizado la información materia del estudio, se procederá a

la graficación de los procedimientos. La representación de los procedimientos

sujetos a estudio, puede ser más o menos compleja, según sea la técnica de

diagramación y el objeto o ámbito de aplicación de los mismos

THE BOOP´s Página 24

Page 25: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS

3.3.6 DIGRAMAS DE KARNAUGH-SIMPLIFICACION

La complejidad de las compuertas lógicas digitales con que se llevan a cabo las

funciones de Boole se relacionan directamente con la complejidad de la expresión

algebraica de la cual se desprenden la función. Aunque la representación de la

tabla de verdad de una función única, puede aparecer de muchas formas

diferentes. Las funciones de Boole pueden ser simplificadas por medios

algebraicos

Sin embargo el proceso de minimización es un tanto raro ya que carece de reglas

especificas para predecir cada paso sucesivo en el proceso de manipulación. El

método del mapa presenta un procedimiento simple y directo para minimizar las

funciones de Boole. Este método puede ser tratado no solamente en la forma

pictórica de una tabla de verdad, sino como una extensión del diagrama de Venn.

El método del mapa, propuesto primero por Veitch y modificado por Karnaugh se

conoce como el “diagrama de Veitch” o el “mapa de Karnaugh”.

Un mapa de Karnaugh proporciona un método sistemático de simplificación de

expresiones booleanas y, si se aplica adecuadamente, genera las expresiones

suma de productos y producto de sumas simples posibles, conocidas como

expresiones mínimas.

Un mapa de Karnaugh es similar a una tabla de verdad, ya que muestra todos los

valores posibles de las variables de entrada y la salida resultante para cada valor.

En lugar de organizar en filas y columnas como una tabla de verdad, el mapa de

Karnaugh es una matriz de celdas en la que cada celda representa un valor

binario de las variables de entrada. Las celdas organizan de manera que la

simplificación de una determinada expresión consiste en agrupar adecuadamente

las celdas. Los mapas de karnaugh se pueden utilizar para expresiones de dos

hasta cinco variables.

El número de celdas de un mapa de Karnaugh es igual a número total de posibles

combinaciones de las variables de entrada, al igual que el número de filas de una

tabla de verdad. Para tres variables, el numero de celdas necesarias es de 23 =8.

THE BOOP´s Página 25

Page 26: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS

Mapa de Karnaugh de tres variables

Ejemplo

El mapa de Karnaugh de tres variables es una matriz de ocho celdas, como se

muestra en la figura 26. En este caso se emplea A, B, y C se emplea para

denominar a las variables, aunque podían haberse usado cualquier letra. Los

valores binarios de A y B se encuentran en lado izquierda (observe la secuencia) y

los valores C se colocan en la parte superior. El valor de una determinada celda es

el valor binario de A y B, en la parte izquierda de la misma fila superior izquierda

tiene un valor binario de 0000 y la Elda inferior derecha tiene un valor de 101.

Figura 36. Mapa de Karnaugh de tres variables que muestra los termino producto

3.3.7 DIAGRAMAS DE LLUVIA DE IDEAS

Los diagramas de lluvia de ideas constituyen un método eficaz para generar ideas y resolver problemas de forma creativa. Pueden ayudarle a desarrollar cualquier sistema de información o ideas, como nuevas estrategias empresariales, esquemas de libros, órdenes del día para reuniones o planes de viajes.

THE BOOP´s Página 26

C 0 AB

00011110

ABC ABC

ABC ABC

ABC ABC

ABC ABC

AB00011110

C 0 1

Page 27: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS

Los diagramas de lluvia de ideas muestran las relaciones entre temas en una jerarquía. Puede considerarlos como una representación gráfica de un esquema de texto.

Existen dos métodos conocidos para crear diagramas de este tipo. El primero consiste en empezar con una idea principal y generar a partir de ella temas y temas secundarios relacionados jerárquicamente. Sin embargo, durante una reunión de lluvia de ideas, en la que todo el mundo aporta ideas constantemente, las jerarquías no siempre están claras y es necesario captar las ideas rápidamente. El segundo método, por tanto, consiste en captar todas esas ideas tal y como se expresan y, posteriormente, organizarlas, revisarlas, ajustarlas y compartir los resultados.

3.4 LENGUAJE DE PROGRAMACIÓN

Para que un computador (hardware) funcione es necesario utilizar programas

(software), los cuales le indican cuál es la tarea que se tiene que hacer. Un

lenguaje de programación es el que se utiliza para escribir dichos programas.

Posteriormente estos se introducirán en la memoria del computador y éste último

ejecutará todas las operaciones que se incluyen.

THE BOOP´s Página 27

Page 28: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASLos lenguajes de programación constan de:

Un conjunto de símbolos y un conjunto de reglas válidas para componerlos, de

forma que formen un mensaje con significado para el computador.

La principal función de un lenguaje de programación es proporcionar

instrucciones al sistema de la computadora para que pueda realizar una actividad

de procesamiento.

La programación incluye la traducción de lo que quiere lograr un usuario a un

código que pueda comprender y ejecutar la computadora.

Es el modo de expresión que nos permite dar una serie de instrucciones al

ordenador en un formato lo más parecido al humano.

Hay que distinguir dos partes en el lenguaje de programación, lo que se denomina

sintaxis del lenguaje y la semántica. Por sintaxis entendemos el conjunto de las

construcciones del lenguaje que consideramos correctas en cuanto a su forma,

mientras que la semántica es ese mismo conjunto de construcciones que

consideramos correctas en cuanto a su significado.

La manera de realizar una buena sintaxis en un lenguaje de programación es

deduciendo propiedades a partir de la hipótesis, es decir, utilizando la lógica y

teniendo en cuenta que la lógica de los programas es un ampliación o desarrollo

de la lógica de predicados clásica. En lenguajes las formas lógicas más utilizadas

han sido: el cálculo lógico de Hoare, la lógica algorítmica, la lógica dinámica y la

lógica temporal.

Si el significado o semántica del programa, es una secuencia de cálculo nos

encontramos frente a la semántica operacional. Si por el contrario el significado de

un programa es el objeto matemático que esa construcción denota, estamos ante

una semántica denotacional. Por último, cuando los modelos que utilizamos para

definir el significado de un programa se basan en construcciones algebraicas,

estamos frente a la semántica algebraica. Por lo tanto estas son las tres formas

utilizadas para construir un lenguaje de programación.

El lenguaje tipo maquina fue el primero que se creó. Este está basado en la

combinación de un código binario (0 y 1). Estos programas solo podían utilizarse

THE BOOP´s Página 28

Page 29: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASen la maquina que habían sido creados, sus errores de sintaxis eran difíciles de

corregir y solo unos pocos sabían utilizarlos.

Después surgen los lenguajes simbólicos que se basan en la aplicación de una

serie de reglas mnemotécnicas para identificar los órdenes. Los símbolos

empleados salen del inglés. Estos programas no son comprendidos por la

maquina por lo que hay que traducirlos en lenguaje maquina. Surgiendo de ahí

los lenguajes ensamblados.

El lenguaje ensamblador sustituye cada orden del lenguaje maquina por un

símbolo o una palabra anglosajona, dando lugar a otro programación el mismo

número de instrucciones.

Pero en la programación con este tipo de lenguajes se vio que había una enorme

cantidad de operaciones que había que hacer de forma reiterada al confeccionar

un programa por lo que se pensó en desarrollar un lenguaje que incluyera unas

macro estructuras que englobaran a todas las operaciones reiterativas, naciendo

así los lenguajes compilados. Estos lenguajes traducen una instrucción simbólica y

pueden representar a varias órdenes en el código maquina.

Otro tipo de lenguaje que surge es el lenguaje interpretado, el cual a la hora de

ejecutar instrucciones en un programa va leyendo línea por línea y dando las

equivalencias de las instrucciones en lenguaje simbólico a instrucciones maquina.

Se puede decir que los lenguajes de programación pueden ser de tres clases:

Lenguaje de alto nivel

Lenguaje tipo maquina

Lenguaje de bajo nivel

El lenguaje de bajo nivel es también llamado ensamblador. El tipo maquina es el

binario. El lenguaje de alto nivel es el que más se asemeja al humano.

Dentro del lenguaje de alto nivel podemos encontrar varios grupos:

Para la enseñanza, BASIC y PASCAL

Científico, ALGOL, FORTRAN, APL

Gestión comercial, COBOL

THE BOOP´s Página 29

Page 30: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS 4GL o de 4° Generación, son una serie de lenguajes que se alejan cada vez

mas del lenguaje máquina para acercarse cada vez más al lenguaje natural.

Por esta razón son los más usados al crear software de bases de datos.

Entre otros existen el ADAVAS y el NATURAL

5GL, son los lenguajes utilizados en inteligencia artificial y son casi iguales

al lenguaje humano, como el LISP.

3.4.1 PROGRAMA

Definición

Se define como un conjunto de instrucciones en secuencia que, aplicado a un

conjunto de datos, y ejecutado por un ordenador, permite resolver un problema.

Los elementos a tratar por el ordenador son los datos, que serán introducidos

desde un medio externo hasta la memoria interna del ordenador, donde se

almacenan para su posterior proceso por parte del programa. Como consecuencia

de ello se obtienen resultados.

Componentes de un programa

La información que maneja el ordenador está compuesto básicamente de datos e

instrucciones. Los datos constituyen la parte de la información que procesa e

programa en función de las instrucciones especificadas. Las instrucciones indican

las acciones a realizar por el ordenador.

3.4.2 FASE DE CREACIÓN DE UN PROGRAMA

Esta fase comprende desde el planteamiento del problema hasta la codificación de

un algoritmo que lo resuelve, en un lenguaje de programación correcto.

Las etapas de esta fase generan una documentación que se engloba en un

documento denominado cuaderno de carga. Sus etapas son:

THE BOOP´s Página 30

Page 31: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS

FASE DE CONSTRUCCIÓN DEL PROGRAMA

Planteamiento del problema: También llamada definición del problema.

Aquí se determina cual es la situación de partida, el conjunto de datos de

entrada, que resultados desean obtenerse y donde deben registrarse.

Todos estos estudios se incluyen en la documentación del programa.

Análisis del problema: Se divide el problema en apartados para revisar las

condiciones de problemas.

Diseño y codificación del algoritmo: El diseño de algoritmo consiste en

formular este utilizando alguna de las herramientas previstas para ello. La

información citada se escribe en un pseucódigo o mediante un

organigrama. La codificación del programa es la traducción del algoritmo al

lenguaje de programación elegido, dando como resultado el programa

codificado.

FASE DE EDICIÓN Y PRUEBAS

La edición consiste en introducir el programa ya codificado en un fichero,

mediante un editor de textos propio del lenguaje (utilidades suministradas

generalmente con el lenguaje de programación ajeno a él El resultado se

denomina programa fuente.

En esta fase se proponen las pruebas que se llevaran a cabo durante la puesta a

punto de cada uno de los programas desarrollados.

FASE DE DOCUMENTACIÓN

A los documentos del programa ya obtenidos se añaden los formularios de datos

específicos del programa y las instrucciones de operación y grabación de datos

relativos a este.

THE BOOP´s Página 31

Page 32: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

1010101010101010100

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS

FASE DE EXPLOTACIÓN

Consiste en el normal funcionamiento y aprovechamiento del programa para

cumplir los objetivos para el que fue escrito.

3.5LENGUAJE MAQUINA

El lenguaje maquina es el lenguaje de primera generación. Es un lenguajes

natural de una computador en particular y está definido por el diseño de

hardware de dicha computadora. Por lo general los lenguajes maquinas

consisten en cadenas de números [que finalmente se

reducen a unos (1) y ceros (0) que instruyen a las

computadoras para realizar sus operaciones más

elementales una por una. Los lenguajes maquina son independientes de las

maquinas ( es decir un lenguaje maquina en particular solo se puede usar en

la computadora). Dichos lenguajes son difíciles de comprender para los

humanos.

Este era una serie de 1 (unos) y 0 (ceros) que la CPU podía interpretar y

ejecutar . El lenguaje maquina es importante por quien es el único lenguaje que

la computadora entiende. Sin embargo el lenguaje maquina es difícil de usar y

los científicos en computación desarrollaron lenguajes de programación que se

parecen más a la comunicación humana.

Lenguaje de máquina de una computadora consta de cadenas de números

binarios (ceros y unos) y es el único que "entienden" directamente los

procesadores. Todas las instrucciones preparadas en cualquier lenguaje de

máquina tienen por lo menos dos partes. La primera es el comando u operación,

que dice a la computadora cuál es la función que va a realizar. Todas las

THE BOOP´s Página 32

Page 33: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAScomputadoras tienen un código de operación para cada una de sus funciones. La

segunda parte de la instrucción es el operando, que indica a la computadora

donde hallar o almacenar los datos y otras instrucciones que se van a manipular;

el número de operandos de una instrucción varía en las distintas computadoras.

En el principio de la computación este era el lenguaje que tenía que "hablar" el

ser humano con la computadora y consistía en insertar en un tablero miles de

conexiones y alambres y encender y apagar interruptores.

Aunque en la actualidad ya no se emplea, es importante reconocer que ya no es

necesario que nos comuniquemos en este lenguaje de "unos" y "ceros", pero es el

que internamente una computadora reconoce o "habla".

El programa se escribe en lenguaje escogido por el programador y se traduce

a lenguaje maquina antes de ejecutarse. El programa escrito por el

programador se denomina programa fuente y la versión en lenguaje máquina se

denomina programa objeto.

El software de sistemas que traduce el programa fuente al programa objeto se

denomina traductor

Se denomina lenguaje máquina a la serie de datos que la parte física de la

computadora o hardware, es capaz de interpretar.

Una computadora digital o, mejor dicho, su parte física, sólo distingue datos de

tipo binario, es decir, constituidos por dos únicos valores a los que se denomina

valor 0 y valor 1 y que, físicamente, se materializan con tensiones comprendidas

entre 0 y 4.0 voltios y entre 4 y 5 voltios, respectivamente. Para representar datos

que contengan una información se utilizan una serie de unos y ceros cuyo

conjunto indica dicha información.

La información que hace que el hardware de la computadora realice una

determinada actividad de llama instrucción. Por consiguiente una instrucción es un

THE BOOP´s Página 33

Page 34: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASconjunto de unos y ceros. Las instrucciones así formadas equivalen a acciones

elementales de la máquina, por lo que al conjunto de dichas instrucciones que son

interpretadas directamente por la máquina se denomina lenguaje máquina.

El lenguaje máquina fue el primero que empleo el hombre para la programación

de las primeras computadoras. Una instrucción en lenguaje máquina puede

representarse de la siguiente forma:

011011001010010011110110.

Esta secuencia es fácilmente ejecutada por la computadora, pero es de difícil

interpretación, siendo aun más difícil la interpretación de un programa (conjunto de

instrucciones) escrito de esta forma. Esta dificultad hace que los errores sean

frecuentes y la corrección de los mismos costosa, cuando no imposible, al igual

que la verificación y modificación de los programas.

La anterior secuencia de dígitos binarios (bits) puede indicar a la computadora

que:

<<Traslade el contenido de la posición de memoria X a la posición de memoria Y.

>>

Si lo vemos escrito de esta forma, lo entenderemos fácilmente, ya que está en

nuestro lenguaje natural, pero la máquina elemental será incapaz de entender

nada. Vemos, pues, que la forma de indicar a la máquina lo que debe hacer es

totalmente diferente de la indicar a un ser humano lo mismo, por lo que deben

emplearse sistemas de traducción de una forma a otra.

Ya se ha dicho que en un principio el programador empleaba directamente el

lenguaje máquina. En este caso el traductor era el programador; pero vimos

también los problemas que esto causaba.

Con la práctica en el manejo de la máquina se cayó en la cuenta de que se podría

utilizar la propia máquina para ayudar en la traducción de estos programas. Es

THE BOOP´s Página 34

Page 35: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASdecir, que si a una máquina elemental se le dotaba de un programa, también

elemental, que tradujera un número determinado de caracteres de caracteres

alfabéticos en una secuencia de unos y ceros, se podría escribir un programa

constituido por una secuencia de grupos de caracteres alfabéticos, en la que cada

uno de los grupos indicaría una acción a realizar por el ordenador y, una vez

escrito el programa, sería la propia máquina la que pasaría los grupos de

caracteres a bits.

Las ventajas de esto son evidentes, ya que para el hombre resulta más fácil

manipular grupos de caracteres y la traducción se haría de manera automática.

Por ejemplo, se podría escribir:

TRASLADAR 11010110, 00011101.

Esto indicaría que el contenido de la posición 11010110 había que pasarlo a la

posición 00011101 si se sabe que al grupo alfabético TRASLADAR le corresponde

la secuencia de bits 11110101. La máquina traduciría la anterior instrucción como:

11110101 11010110 00011101

Al grupo alfabético se le denomina mnemotécnico, y existirá un mnemotécnico por

cada instrucción. Se le da este nombre porque sirve para recordar con mayor

facilidad el conjunto de instrucciones de una determinada máquina. De esta forma

aparecieron los lenguajes ensambladores (Assembler, en inglés). Poco a poco,

con el avance de la programación (Software), estas primeras y sencillas ayudas se

fueron haciendo más complejas, permitiendo que, además de los mnemotécnicos

correspondientes a la operación a realizar, se pudieran emplear otros para indicar,

por ejemplo, los operandos. La anterior instrucción se podría escribir de la

siguiente forma:

La programación en lenguaje maquina era demasiada lenta y tediosa para la

mayoría de los programadores. En vez de utilizar las cadenas de números que

las computadoras podían entender directamente los programadores

THE BOOP´s Página 35

Page 36: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASempezaron a utilizar abreviaturas del inglés para representar las operaciones

elementales. Estas abreviaturas fueron la base de los lenguajes ensambladores

Los lenguajes maquina se llaman de bajo nivel porque están muy cercanos al

hardware del ordenador. Es necesario conocer a fondo la arquitectura de la

máquina para la que se va a programar.

En la primera generación se utilizó fue el lenguaje máquina, que consiste en

un conjunto de instrucciones en binario, es decir, con ceros y unos, con los cuales

se indica al ordenador qué hacer. Este lenguaje es muy complicado y la

posibilidad de cometer errores es muy alta, por lo que ya no se utiliza.

El lenguaje maquina se considera un lenguaje de nivel bajo ya que solo

maneja un lenguaje binario pues no existe un programa de codificación menos

complicado.

Para solventar estas dificultades apareció el lenguaje ensamblador, que consiste

en asignar una abreviatura a cada instrucción en binario, de forma que sea más

fácil recordarla y más difícil equivocarse. Sin embargo, con este lenguaje sigue

siendo necesario conocer muy bien el hardware del ordenador.

3.6 TRADUCTOR DE LENGUAJES

Par que un lenguaje de programación sea útil debe de tener un traductor es decir

un programa, que acepta a otros programas escritos en el lenguaje en cuestión y

que, los ejecuta directamente, o los transforma en una forma adecuada para su

ejecución. Un traductor que ejecuta un programa directamente se conoce como

intérprete y un traductor que produce un programa equivalente a una forma

adecuada para su ejecución se conoce como compilador.

THE BOOP´s Página 36

Page 37: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS3.6.1 Traductores

Los procesadores de lenguajes son aquellos programas destinados a trabajar

sobre una entrada, por la forma como ha sido elaborada, pertenece a un lenguaje

particular. Los procesadores de lenguajes se clasifican como traductores o

interpretes. El traductor es un programa que recibe una entrada escrita en un

lenguaje (el lenguaje fuente) a una salida perteneciente a otro lenguaje (el

lenguaje objeto).

Un intérprete, no lleva a cabo tal transformación, en su lugar obtiene los resultados

conforme se van analizando las entradas. Los traductores son clasificados en

compiladores, ensambladores y preprocesadores.

La interpretación es un proceso que consta de un paso, en donde tanto el

programa como la entrada le son dados al intérprete y se obtiene una salida.

.Un intérprete se puede considerar como un simulador para maquina

cuyo”lenguaje de máquina” es el lenguaje que se está traduciendo.

THE BOOP´s Página 37

Page 38: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS

3.6.2 Compilador

Es cualquier programa que toma como entrada un texto escrito en un lenguaje,

llamado fuente y da como salida otro texto en un lenguaje denominado objeto.

Este programa objetivo puede ser entonces ejecutado, si esta en forma adecuada

para la ejecución directa (es decir, en lenguaje de maquina). Lo más común es

que el lenguaje objetivo sea un lenguaje ensamblador y el programa objetivo deba

ser traducido por un ensamblador en un programa objeto y posteriormente ligado

con otros programas objeto y cargado en localizaciones de memoria apropiadas

antes de que pueda ser ejecutado. Algunas veces el lenguaje objetivo es incluso,

otro lenguaje de programación, en cuyo caso deberá utilizarse un compilador para

dicho lenguaje que pueda obtener un lenguaje objeto ejecutable.

El proceso de compilación puede ejecutarse de la siguiente forma:

THE BOOP´s Página 38

Page 39: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS

También es posible tener traductores intermedios entre intérpretes y compiladores:

un traductor puede traducir un programa frente a un lenguaje intermedio y

después interpretarlo. Estos traductores podrían llamarse pseudointerpretes, ya

que ejecutan el programa sin producir un programa frente antes de que se inicie la

ejecución.

Tanto los compiladores como los intérpretes deben de llevar a cabo operaciones

similares al traducir un programa fuerte. Primero un analizador léxico, es decir un

rastreador, debe convertir la representación textual del programa como una

secuencia de caracteres en una forma más fácil de procesar, usualmente

agrupando caracteres en tokens que representan identidades básicas del

lenguaje, como palabras clave, identificadores y constantes.

El analizador sintáctico o analizador gramatical debe terminar la estructura de la

secuencia de los tokens proporcionados por el rastreador. Finalmente un

analizador semántico debe terminar lo suficiente del significado de un programa

objetivo.

Un lenguaje pudiera también requerir de un procesador, que es ejecutado antes d

la traducción para transformar un programa en alguna forma adecuada para su

traducción.

THE BOOP´s Página 39

Page 40: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASLas propiedades de un lenguaje de programación que pueden ser determinadas

antes de la ejecución se conocen como propiedades dinámicas. Esta distinción no

resulta muy útil para los intérpretes, pero sí lo es para los compiladores: un

compilador puede utilizar solo las propiedades estáticas d un lenguaje. Las

propiedades estáticas típicas de un lenguaje son el léxico y su estructura

sintáctica. En algunos lenguajes, como en C y en Ada también son estáticas

algunas propiedades semánticas importantes: un ejemplo significativo son los

tipos de datos de las variables.

Un lenguaje de programación puede ser diseñado para ser más adecuado para la

interpretación o para la compilación. Por ejemplo un lenguaje que sea más

dinámico, es decir, que tenga menos propiedades estáticas, es, más adecuado

para la interpretación y es más probable que sea interpretado. Por otra parte un

lenguaje con una poderosa estructura estática, lo más probable es que sea

compilado.

También pueden existir situaciones en las que se prefiera un intérprete en lugar d

un compilador. Los intérpretes usualmente tienen un modo interactivo, de modo

que el usuario pueda introducir directamente programas desde una terminal y

suministrar también entrada al programa y recibir salida solamente mediante el

intérprete. Por ejemplo un intérprete Scheme puede utilizarse para obtener

entrada inmediata a un procedimiento tal y como sigue:

> (gcd 8 18); ; calls gcd with the values 8 and 18

2 ; ; the interpreter prints the returnet

En contraste, en un lenguaje complicado como C, Ada, o Java, el programador

deberá escribir a mano la entrada y salida interactiva.

Una propiedad importante de un traductor de lenguajes es su respuesta a errores

contenidos en un programa fuente. Lo ideal sería que un traductor debería intentar

corregir

THE BOOP´s Página 40

Page 41: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS

Un programa C completo con una función gcd.

THE BOOP´s Página 41

Page 42: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS

3.6.3 Ensamblador

Es el programa encargado de llevar a cabo un proceso denominado de ensamble

o ensamblado, este proceso consiste en que a partir de un lenguaje máquina, este

sea utilizado en lenguaje ensamblador:

· La integración de los diversos módulos que conforman al programa

La resolución de las direcciones de memoria designadas en el área de datos para

el almacenamiento de variables, constantes y estructuras complejas.

· La identificación de las direcciones de memoria en la sección del código

correspondientes a los puntos de entrada en saltos condicionales o

incondicionales junto con los puntos de arranque de las subrutinas

· La resolución de los diversos llamados a los servicios o rutinas del sistema

operativo código dinámico y bibliotecas de tiempo de ejecución

· Las especificaciones de la cantidad de memoria destinadas para las áreas de

datos, el código, la pila, la cantidad o monto otorgados para su ejecución

· La incorporación de datos y código necesarios para la carga de un programa

para su ejecución.

Históricamente con la escasez de memoria de las primeras computadoras, se

puso de moda el uso de interpretes frente a los compiladores, pues el programa

fuente sin traducir y el interprete juntos daban una ocupación de memoria menor

que la resultante de los compiladores. Por ello los primeros ordenadores iban

siempre acompañados de un intérprete Basic (XT, Commodore, Spectrum).

La mejor información sobre los errores se daba por parte del compilador así como

una mayor velocidad de ejecución del código resultante hizo que poco a poco se

impusieran los compiladores. Hoy en día y con el problema de memoria resuelto,

se puede hablar de un gran predominio de los compiladores frente a los

THE BOOP´s Página 42

Page 43: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASintérpretes, aunque interpretes como los incluidos en los navegadores de Java son

la gran excepción.

La diferencia entre un compilador y un traductor es: En el compilador se recibe un

programa escrito en un lenguaje de alto nivel, medio o bajo y lo transforma a su

equivalente en un lenguaje ensamblador e inclusive el lenguaje máquina pero sin

ejecutar el programa. Un compilador en un traductor la forma de cómo llevará la

traducción es el objetivo central en el diseño de compilador.

Ventajas de compilador frente a un intérprete

· Se compila una vez, se ejecuta n−veces

· En bucles, la compilación genera código equivalente al bucle pero un

interpretándolo se traduce tantas veces una línea como veces se repite el bucle

El compilador tiene una visión global del programa, por lo que la información de

mensajes de errores es más detallada.

Ventajas de un intérprete frente a compilador

· Un intérprete necesita menos memoria que un compilador

· Permite una mayor interactividad con el código en tiempo de desarrollo.

Un compilador, no es programa que funciona de manera aislada sino que necesita

otro programa para conseguir su objetivo, obtener un programa ejecutable a partir

de un programa fuente en un lenguaje de alto nivel.

3.6.4 Clasificación de compiladores

El programa compilador traduce las instrucciones en un lenguaje de alto nivel a

instrucciones que la computadora pueda interpretar y ejecutar. Para cada lenguaje

de programación se requiere un compilador separado, el compilador traduce todo

el programa antes de ejecutarlo.

THE BOOP´s Página 43

Page 44: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASEn otras palabras un compilador traduce programas insertados en la memoria por

el sistema operativo para convertirlos en pulsaciones electrónicas ejecutables

(lenguaje máquina). Los compiladores pueden ser de:

· Una sola pasada: Examina el código fuente una vez, generando el código o

programa objeto.

Pasadas múltiples: Requiere pasos intermedios para producir un código en otro

lenguaje y una pasada final para producir y optimizar el código producido durante

los pasos anteriores.

· Optimización: Lee un código fuente, lo analiza y descubre errores potenciales sin

ejecutar el programa.

Compiladores incrementales: Generan un código objeto, instrucción por

instrucción, cuando el usuario teclea cada orden individual. El otro tipo de

compiladores requiere que todos los enunciados o instrucciones se compilen

conjuntamente.

· Ensamblador: Es un lenguaje fuente y posee una estructura sencilla.

Compilador cruzado: Se genera código en un lenguaje objeto para una máquina

diferente de la que se está utilizando para compilar. U compilador cruzado nos

permite programar, por ejemplo en Windows para un ambiente como Linux.

· Compiladores con montador: Ese tipo de compilador compila distintos módulos

de forma independiente y después es capaz de enlazarlos.

· Auto compilador: Compilador que está escrito en el mismo lenguaje que se va a

compilar, evidentemente no

Se puede ejecutar la primera vez. Sirve para hacer ampliaciones de lenguaje,

mejorar el código generado,

etc.

· Meta compilador: Es sinónimo de compilador de compiladores y se refiere a un

programa que recibe como entrada las especificaciones de lenguaje, para el que

desea obtener un compilador y genera como salida un compilador de ese

lenguaje.

· Descompilador: Es un programa que acepta como entrada código máquina y lo

traduce a un lenguaje de alto nivel, realizando el proceso inverso a la compilación.

THE BOOP´s Página 44

Page 45: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS

Funciones de un compilador

Agrandes rasgos un compilador que lee un programa escrito en un lenguaje, el

lenguaje fuente y lo traduce a un programa equivalente en otro lenguaje, el

lenguaje objeto. Como parte importante de este proceso de traducción, el

compilador informa al usuario de la presencia de errores en el programa fuente. A

primera vista, la diversidad de compiladores puede parecer abrumadora. Hay

miles de lenguajes fuente, desde los lenguajes tradicionales como FORTRAN o

PASCAL hasta los lenguajes especializados que han surgido en todas las áreas

de aplicación en la informática.

Un lenguaje objeto puede ser otro lenguaje de programación o el lenguaje

máquina de cualquier computadora entre un microprocesador y un

supercomputador. Se pueden construir compiladores para una gran diversidad de

lenguajes fuente y máquina utilizando las mismas técnicas básicas. Los primeros

compiladores de los años 50's, estaban relacionados con la traducción de

formulas aritméticas a código de máquina. En las 50's se considero a los

compiladores como programas notablemente difíciles de escribir. El primer

compilador FORTRAN necesito para su implantación 18 años (Backus Fortran).

Partes en las que trabaja un compilador

Conceptualmente FORTRAN diseño un compilador que trabajaba en fases. Es

decir, las fases de un compilador transforman el programa fuente de una

representación a otra, en la práctica se agrupan fases y las representaciones

intermedias entre las fases no necesitan ser construidas explícitamente.

THE BOOP´s Página 45

Page 46: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS

Análisis léxico

Es la primera fase de un compilador. Su principal función consiste en leer los

caracteres de entrada y elaborar como salida una secuencia de componentes

léxicos que utiliza el analizador sintáctico para hacer el análisis.

Aspectos del análisis léxico

Hay varias razones para dividir en fases el análisis de la compilación. El análisis

léxico y análisis sintáctico:

Un diseño sencillo es la consideración más importante, separar a estos dos tipos

de análisis a menudo permite simplificar una u otra de dichas fases.

· Se mejora la eficiencia del compilador además de permitir construir un

procesador especializado y potencialmente más eficiente para esa función. Con

algunas técnicas de manejo de buffers para la lectura de caracteres de entrada y

procesamiento de componentes léxicos se pueden mejorar significativamente el

rendimiento de un compilador.

Errores léxicos

Son pocos los errores simplemente en el nivel léxico ya que tiene una visión muy

restringida de un programa fuente. El analizador léxico debe devolver el

componente léxico de un identificador y dejar a otra fase se ocupe de los errores.

Suponga que una situación en la cual el analizador léxico no puede continuar

porque ninguno de los patrones concuerda con un prefijo de la entrada. Tal vez la

estrategia de recuperación más sencilla sea recuperación EN MODO PANICO

(este método de recuperación es donde se borra caracteres sucesivos de la

THE BOOP´s Página 46

Page 47: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASentrada hasta que el analizador léxico pueda encontrar un componente léxico bien

formado).

Administrador de entradas

Utilizar 2 buffer de entrada resulta útil cuando es necesario un pre−análisis en la

entrada para identificar los componentes léxicos después se introducen algunas

técnicas básicas para encontrar la velocidad del analizador léxico, como es el uso

de centinelas que sirven para marcar el final de buffer, hay tres métodos generales

de implantar un léxico:

Utilizar un generador de analizadores léxicos, como el compilador LEX para

producir el analizador léxico a partir de una especificación basada en expresiones

regulares, en este caso el generador proporciona rutinas para leer la entrada y

manejarla con buffers.

Escribir el analizador léxico en un lenguaje convencional de programación de

sistemas utilizando las posibilidades de entrada y salida de este lenguaje para leer

la entrada.

· Escribir el analizador léxico en lenguaje ensamblador y manejar explícitamente la

lectura de la entrada.

Parejas de buffers

Se utiliza un buffer dividido en dos mitades de n−caracteres cada una.

Texto lenguaje fuente

Traductor

Texto lenguaje objeto

Programa objeto

Compilador

Programa fuente

THE BOOP´s Página 47

Page 48: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASMensajes de error

Programa fuente

Analizador léxico

Analizador sintáctico

Análisis semántico

Generación de código intermedio

Optimización de código

Generador de código

Programa objeto

Manejo de errores

Manejo de tabla de símbolos

Analizador léxico

Analizador sintáctico

Tabla de símbolos

Componente léxico

Obtén el siguiente componente léxico

Programa fuente

Buffer = espacio en memoria

3.7 ELEMENTOS DE PROGRAMACIÓN

En los temas anteriores ya definimos un

programa como un par formado por algoritmos y

estructuras de datos. En este tema vamos a

describir los elementos que constituyen a estos

dos componentes de un programa bajo el

enfoque de los lenguajes estructurados.

Se llama “dato” a la información que procesan las

sentencias de un programa. En programación

estructurada, todos los datos que maneje nuestro

programa deben especificarse explícitamente indicando la clase de información

THE BOOP´s Página 48

Page 49: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASque va almacenar. A la especificación de los atributos de un dato en un programa,

siguiendo la sintaxis concreta de un lenguaje, se le denomina “declaración”.

Los atributos que se especifican de un dato son los siguientes; hay que

especificar que no todos los atributos son especificados por el programador si no

que algunos van implícitos en la declaración.

Señalaremos con un (*) los atributos que se

especifica formalmente el programador.

Nombre (*): Es una etiqueta formada por

caracteres alfanuméricos que identifica un

dato. La referencia al dato en el programa se

hace usualmente a través del nombre. El

nombre no es suficiente para referenciar una variable.

Espacio de memoria: Es el lugar que se le asigna en la memoria RAM para

contener al valor de la variable en el momento de la declaración. El tamaño

de este espacio viene determinado por el tipo de dato y se le llama

normalmente celda. El espacio de memoria es único y diferente para cada

dato y es la característica que lo identifica unívocamente.

Valor (*): Normalmente el valor de un dato suele asignarse en la

declaración del mismo. A este acto se le llama “Inicialización del dato”. Es

normalmente incorrecto utilizar en el programa un dato no inicializado ya

que contiene como valor algo desconocido.

Tipo (*): La naturaleza de los datos que

manejamos en un computador es

matemática, lógica o simbólica; de este

modo, hay datos numéricos, lógicos y

caracteres que tienen un significado en un

THE BOOP´s Página 49

Page 50: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASlenguaje. Los datos numéricos se caracterizan por su forma de

escribirlos .Cualquier dato tiene una representación y unas operaciones que

podemos hacer sobre ellos (sumar, restar, etc.).

Ámbito: Es la región del código de un programa sobre la cual un dato está

definido. Los datos cuyos ámbitos sea todo el código de un programa se

denominan “datos globales”. Su declaración se realiza en la cabecera del

programa. Los

datos con una

región de validez

menor se

denominan

“datos locales”.

El ámbito de una

variable local es

el código del

subprograma

(función o

procedimiento) donde está definida, y su declaración como variable está en

la cabecera del código correspondiente al subprograma. El ámbito de un

dato implementa la idea de encapsulación de los datos dentro de los

módulos.

Dirección: Todo dato de tipo simple tiene una dirección que es la dirección

del primer byte que forma la celda de memoria preparada para contener el

valor del dato. Esto es cierto al menos mientras la sentencia que se ejecuta

pertenece al conjunto de sentencias del ámbito de dicha variable.

Persistencia: Es el tiempo que una variable está presente en la memoria

respecto del tiempo de ejecución del programa. Así hay variables que sólo

existen mientras está en ejecución la función que las declaró y otras como

THE BOOP´s Página 50

Page 51: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASlas globales o las locales estáticas que existen mientas el programa está en

ejecución.

3.7.1 Tipos de Datos.

El tipo de un dato es el conjunto de valores que puede tomar durante el programa.

Si se le intenta dar un valor fuera del conjunto se producirá un error.

Existen gran variedad y cantidad de tipos de datos, así como también

clasificaciones para los tipos de datos. A continuación se tiene una de las posibles

clasificaciones:

Dinámicos

Estáticos

o El tipo cadena

o Estructurados

o Simples

Ordinales

THE BOOP´s Página 51

Page 52: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS

3.7.1.1 Tipos estáticos

Casi todos los tipos de datos son estáticos, la excepción son los punteros y no se

tratarán debido a su complejidad.

Que un tipo de datos sea estático quiere decir que el tamaño que ocupa en

memoria no puede variar durante la ejecución del programa. Es decir, una vez

declarada una variable de un tipo determinado, a ésta se le asigna un trozo de

memoria fijo, y este trozo no se podrá aumentar ni disminuir.

3.7.1.2 Tipos Dinámicos.

Dentro de esta categoría entra solamente el tipo puntero. Este tipo te permite tener

un mayor control sobre la gestión de memoria en tus programas. Con ellos puedes

manejar el tamaño de tus variables en tiempo de ejecución, o sea, cuando el

programa se está ejecutando.

3.7.1.3 Tipos simples

Los tipos simples más básicos son: entero, lógico, carácter y real. Y la mayoría de

los lenguajes de programación los soportan, no como

ocurre con los estructurados que pueden variar de un

lenguaje a otro.

El tipo integer (entero)

THE BOOP´s Página 52

Page 53: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASEl tipo de dato “entero” es de tipo simple, y dentro de

estos, es ordinal. Al declarar una variable de tipo entero,

se crea una variable numérica que puede tomar valores

positivos o negativos, y sin parte decimal.

Este tipo de variables, se pueden utilizar en

asignaciones, comparaciones, expresiones aritméticas,

etc. Algunos de los papeles más comunes que

desarrollan son:

Controlar un bucle

Usarlas como contador, incrementando su valor cuando sucede algo

Realizar operaciones enteras, es decir, sin parte decimal.

El tipo boolean (lógico)

El tipo de datos lógico (boolean) es el que permite usar variables que disponen

sólo de dos posibles valores: cierto o falso. Debido a esto,

su utilidad no es otra que variables de chequeo. Nos

sirven para mantener el estado de un objeto mediante dos

valores:

si/no

cierto/falso

funciona/no funciona

on/off

etc.

THE BOOP´s Página 53

Page 54: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS El tipo real (float)

El tipo de datos real es el que se corresponde con los

números reales. Este es un tipo importante para los

cálculos. Por ejemplo en los estadísticos, ya que se

caracterizan por tratar fundamentalmente con valores

decimales.

Por ejemplo: 3.1416

Los tipos char y string (carácter y cadena)

Con el tipo carácter puedes tener objetos que representen una letra, y con el tipo

string una cadena de caracteres tales como letras, números y signos de

puntuación.

Por ejemplo, puedes tener en una variable tu

nombre (“Diana”), que sería de tipo “string”, y

una “A” seria de tipo “char”.

3.7.1.4 Tipos estructurados

THE BOOP´s Página 54

Page 55: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS

Mientras que una variable de un tipo

simple sólo referencia a un

elemento, los estructurados se

refieren a colecciones de elementos.

Las colecciones de elementos que aparecen al hablar de tipos estructurados son

muy variadas: tenemos colecciones

ordenadas que se representan

mediante el tipo array, colecciones

sin orden mediante el tipo conjunto, e

incluso colecciones que contienen otros tipos, son los llamados registros.

3.7.1.5 Tipos ordinales

Dentro de los tipos simples, los ordinales son los más abundantes. De un tipo se

dice que es ordinal porque el conjunto

de valores que representa se puede

contar, es decir, podemos establecer

una relación uno a uno entre sus

elementos y el conjunto de los

números naturales.

Dentro de los tipos simples ordinales,

los más importantes son:

El tipo entero (integer)

El tipo lógico (boolean)

THE BOOP´s Página 55

Page 56: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS El tipo carácter (char)

3.7.2 OPERADORES LÓGICOS.

Son aquellos que sirven para operar términos numéricos. Estos operadores

podemos clasificarlos a su vez como:

UNARIOS

BINARIOS

Los operadores UNARIOS son aquellos que

trabajan con UN OPERANDO.

Pascal permite el manejo de un operador

unario llamado:

MENOS UNARIO

Este operador denota la negación del

operando, y se representa por medio del signo

menos (-) colocado antes del operando.

Por ejemplo:

Si x tiene asignado el valor 100, -x dará como resultado -100; esto es que el

resultado es el inverso aditivo del operando.

Los operadores BINARIOS, son los que combinan DOS OPERANDOS, dando

como resultado un valor numérico cuyo tipo será igual al mayor de los tipos que

tengan los operandos.

La siguiente tabla muestra los símbolos de los operadores binarios:

THE BOOP´s Página 56

Page 57: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS

Operador Operación Resultado

+ +Suma suma de a y b

- Resta Diferencia de a y b

* Multiplicación Producto de a por b

/ División Cociente de a por b

Div División entera Cociente entero de a por b

Mod Módulo Resto de a por b

Shl Desplazamiento a la izquierda

Desplazar a la izquierda b bits

Shr Desplazamiento a la derecha

Desplazar a la derecha b bits

3.8 PROGRAMACIÓN ESTRUCTURADA

INTRODUCCION

THE BOOP´s Página 57

Page 58: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASESTRUCTURAS DE CONTROL

Por lo general, las instrucciones dentro de un programa se ejecutan una a una en

el orden que está escrito. A esto se le llama ejecución secuencial.

Durante la década de los sesentas, se hizo claro que el uso indiscriminado de

transferencias de control era el origen de un gran número de dificultades que

experimentaban los grupos de desarrollo del software. El dedo de la culpa apunto

hacia la instrucción goto, que permite al programador especificar una transferencia

de control a un amplio margen de destinos posibles dentro de un programa. La

idea de “programación estructurada” se convirtió casi en un sinónimo de la

“eliminación del goto”.

Las investigaciones de Bohm y Jacopini demostraron que los programas se

pueden escribir sin instrucción goto alguna. El reto para los programadores de la

época era modificar sus estilos hacia una “programación con menos instrucciones

goto”. No fue sino hasta la década de los sesenta que los profesionales de la

programación comenzaron a tomar en serio a la programación estructurada. Los

resultados fueron impresionantes, los grupos de desarrollo de software reportaron

una reducción en los tiempos de desarrollo, la entrega más oportuna d los

sistemas y el apego más frecuente al presupuesto de los proyectos del software.

La calve de el éxito fue simplemente que los programas producidos mediante

técnicas estructuradas eran más claros, más fáciles de mantener y depurar y

tenían más probabilidades de estar libres de errores desde el principio.

El trabajo de Bohm y jacopini demostró que todos los programas se podían

escribir en términos de solo tres estructuras de control, a saber, la estructura

secuencial. La estructura de selección, y la estructura de repetición. La estructura

de secuencia se encuentra esencialmente dentro de C. La computadora ejecuta

de manera automática las instrucciones en C, en una, en el orden en que están

escritas,

La programación estructurada es una teoría de programación que consiste en

construir programas de fácil comprensión.

THE BOOP´s Página 58

Page 59: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASLa programación estructurada es especialmente útil, cuando se necesitan realizar

correcciones o modificaciones después de haber concluido un programa o

aplicación. Al haberse utilizado la programación estructurada, es mucho más

sencillo entender la codificación del programa, que se habrá hecho en diferentes

secciones.

La programación estructurada se basa en una metodóloga de desarrollo de

programas llamada refinamiento sucesivo: Se plantea una operación como un todo

y se divide en segmentos más sencillos o de menor complejidad. Una vez

terminado todos los segmentos del programa, se procede a unificar las

aplicaciones realizadas por el pool de programadores. Si se ha utilizado

adecuadamente la programación estructurada, esta integración debe ser sencilla y

no presentar problemas al integrar la misma, y de presentar algún problema, será

rápidamente detectable para su corrección.

La representación grafica de la programación estructurada se realiza a través de

diagramas de flujo o flor chart, el cual representa el programa con sus entradas,

procesos y salidas.

La programación estructurada propone segregar los procesos en estructuras lo

más simple posibles, las cuales se conocen como secuencia, selección e

interacción. Ellas están disponibles en todos los lenguajes modernos de

programación imperativa en forma de sentencias. Combinando esquemas

sencillos se pueden llegar a construir sistemas amplios y complejos pero de fácil

entendimiento.

 La programación estructurada permite la escritura de programas fáciles de leer y

modificar. En un programa estructurado el flujo lógico se gobierna por tres

estructuras de control básicas: secuenciales, repetitivas y selectivas.

3.8.1 Técnicas de Programación.

THE BOOP´s Página 59

Page 60: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASAlgunas teorías de la programación se centran en las técnicas de programación

modular y programación estructurada. El diseño de un programa entraña la

descomposición del problema en módulos o partes independientes –

programación modular –, la programación de cada módulo mediante métodos

estructurados – programación estructurada – y su unión posterior.

3.8.1.1 Programación Modular.

En la programación modular un programa se divide en módulos, cada uno de los

cuales ejecuta una única actividad o tarea, y se codifican independientemente de

otros módulos. Cada uno de estos módulos se analiza, codifican y "optimizan" por

separado. Cada programa contiene un módulo llamado programa principal

(módulo controlador) que controla todo lo que sucede. Cuando es necesario, se

transfiere el control a sus módulos de modo que éstos puedan ejecutar sus

funciones. Los módulos son independientes en el sentido en el que ningún módulo

puede tener acceso directo a cualquier otro módulo, excepto el módulo al que

llama y sus propios su módulos.

3.8.1.2 Programación Estructurada.

Se refiere a un conjunto de técnicas que han ido evolucionando. Estas técnicas

aumentan considerablemente la productividad del programa reduciendo el tiempo

requerido para escribir, verificar, depurar y mantener los programas. La

programación estructurada utiliza un número limitado de estructuras de control que

minimizan la complejidad de los problemas y que reducen los errores. Ésta

incorpora entre otros elementos: el

- diseño descendente,

- recursos abstractos

- estructuras básicas.

Recursos abstractos.

THE BOOP´s Página 60

Page 61: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASConsiste en descomponer una determinada acción compleja en términos de un

número de acciones más simples capaces de resolverla.

Diseño descendente.

Consiste en efectuar una relación entre las sucesivas etapas de estructuración.

Es decir, se descompone el problema en etapas o estructuras jerárquicas, de

modo que se puede considerar cada estructura desde dos puntos de vista: lo que

hace y cómo lo hace

3.8.2 Teorema de la programación estructurada.

Se ha demostrado que un programa propio puede ser escrito utilizando solamente

tres tipos de estructuras de control: —secuenciales, selectivas y repetitivas. Un

programa es propio si posee un sólo punto de entrada y uno de salida, si existen

caminos desde el inicio hasta el fin que se pueden seguir y que pasan por todas

las partes del programa, y si todas las instrucciones son ejecutables sin que hayan

bucles infinitos.

Estructura secuencial.

Es aquella en que una acción sigue a otra en secuencia. Las tareas se suceden de

tal modo que la salida de una es la entrada de la siguiente.

Estructura selectiva.

Se utilizan para tomar decisiones lógicas. En éstas se evalúa una condición y en

función del resultado de la misma se realiza una opción u otra. Las condiciones se

especifican usando expresiones lógicas. En pseudocódigo estas palabras son ir,

ten, ese. Las estructuras selectivas pueden ser: – simples, dobles o múltiples.

- Selectivas simples.

THE BOOP´s Página 61

Page 62: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASEjecuta una determinada acción cuando se cumple una determinada condición. La

selección ir – ten (si – entonces) evalúa la condición y si es verdadera ejecuta la

acción de lo contrario no hará nada.

- Selectiva doble.

Permite elegir entre dos opciones posibles en función del cumplimiento o no de

una determinada condición. Si la condición es verdadera, se ejecuta la acción 1, si

es falsa, se ejecuta la acción 2. La selectiva en pseudocódigo es if – ten – else.

- Selectivas múltiples.

La estructura de selección múltiple (case en pseudocódigo) evaluará una

expresión que podrá tomar n valores distintos 1, 2, 3, 4,…..n. Según sea el valor

en la condición, se realizará una de las n acciones.

Estructuras repetitivas.

Las estructuras que repiten una secuencia de instrucciones un número

determinado de veces se llaman bucles, e iteración al hecho de repetir la

ejecución de una secuencia de acciones.

Estructura mientras (while).

La estructura repetitiva mientras es aquella en que el cuerpo del bucle se repite

mientras se cumple una determinada condición. Cuando se ejecuta esta

instrucción, la primera cosa que sucede es que se evalúa la condición. Si la

expresión es verdadera, entonces se ejecuta el cuerpo del bucle. Este proceso se

repite una y otra vez mientras la condición sea verdadera.

Estructura repetir hasta (do/while).

THE BOOP´s Página 62

Page 63: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASSe ejecuta hasta que se cumpla una condición determinada que se comprueba al

final del bucle, esto permite que la iteración se ejecute al menos una vez antes de

que la condición sea evaluada.

Estructuras desde/para (for).

Se utilizan las estructuras for cuando se conocen con certeza el número de veces

que desea repetir un bucle, es decir, cuando es un número fijo de veces.

Estructura de decisión anidada.

Se tiene una estructura de decisión anidada cuando una estructura if – ten – else

contiene otra dentro de sí, y ésta a su vez contiene otra dentro de sí. Estas

estructuras contendrán varios si - entonces dentro de otros. Debido a que este tipo

de estructuras pueden ser confusas, se implementa la identación para evitar

perder el hilo de dónde comienza y dónde termina cada estructura.

Identación.

El uso de la identacion es importante debido a que, cuando se es consistente en

su utilización, facilita la lectura del programa al mostrar en una forma gráfica las

relaciones existentes entre las distintas instrucciones.

Ventajas de la programación estructurada.

Con la programación estructurada elaborar programas de computador sigue

siendo un albor que demanda esfuerzo, creatividad, habilidad y cuidado. Sin

embargo, con este nuevo estilo podemos obtener las siguientes ventajas:

1. Los programas son más fáciles de entender. Un programa estructurado

puede ser leído en secuencia, de arriba hacia abajo, sin necesidad de estar

saltando de un sitio a otro en la lógica, lo cual es típico de otros estilos de

programación. La estructura del programa es más clara puesto que las

THE BOOP´s Página 63

Page 64: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASinstrucciones están más ligadas o relacionadas entre sí, por lo que es más

fácil comprender lo que hace cada función.

2. Reducción del esfuerzo en las pruebas. El programa se puede tener listo

para producción normal en un tiempo menor del tradicional; por otro lado, el

seguimiento de las fallas (debugging) se facilita debido a la lógica más

visible, de tal forma que los errores se pueden detectar y corregir más

fácilmente.

3. Reducción de los costos de mantenimiento.

4. Programas más sencillos y más rápidos.

5. Aumento de la productividad del programador.

6. Se facilita la utilización de las otras técnicas para el mejoramiento de la

productividad en programación.

7. Los programas quedan mejor documentados internamente.

3.8.3 Visión moderna de un programa estructurado

Así, la visión moderna de un programa estructurado es un compuesto de

segmentos, los cuales puedan estar constituidos por unas pocas instrucciones o

por una página o más de código. Cada segmento tiene solamente una entrada y

una salida, asumiendo que no poseen bucles infinitos y no tienen instrucciones

que jamás se ejecuten.

Encontramos la relación entre ambas visiones en el hecho de que los segmentos

se combinan utilizándolas tres estructuras básicas de control mencionadas

anteriormente y, por tanto, el resultado es también un programa estructurado.

Cada una de estas partes englobará funciones y datos íntimamente relacionados

semántica o funcionalmente. En una correcta partición del programa deberá

resultar fácil e intuitivo comprender lo que debe hacer cada módulo.

THE BOOP´s Página 64

Page 65: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASEn una segmentación bien realizada, la comunicación entre segmentos se lleva a

cabo de una manera cuidadosamente controlada. Así, una correcta partición del

problema producirá una nula o casi nula dependencia entre los módulos,

pudiéndose entonces trabajar con cada uno de estos módulos de forma

independiente. Este hecho garantizará que los cambios que se efectúen a una

parte del programa, durante la programación original o su mantenimiento, no

afecten al resto del programa que no ha sufrido cambios.

Esta técnica de programación conlleva las siguientes ventajas:

a) El coste de resolver varios subproblemas de forma aislada es con frecuencia

menor

Que el de abordar el problema global.

b) Facilita el trabajo simultáneo en paralelo de distintos grupos de programadores.

c) Posibilita en mayor grado la reutilización del código (especialmente de alguno

de

Los módulos) en futuras aplicaciones.

Aunque no puede fijarse de antemano el número y tamaño de estos módulos,

debe intentarseun compromiso entre ambos factores. Si nos encontramos ante un

módulo con un tamaño excesivo, podremos dividir éste a su vez en partes (nuevos

módulos) más manejables, produciéndose la sucesiva división siempre desde

problemas generales a problemas cada vez menos ambiciosos y, por tanto, de

fácil desarrollo y seguimiento

. Así, esta división toma la forma de un árbol cuya raíz es el programa principal

que implementa la solución al problema que afrontamos utilizando uno o varios

módulos que realizan partes de dicha solución por sí solos o invocando a su vez

otros módulos que solución a subproblemas más específicos. A esta aproximación

se la denomina diseño descendente o top-down, como queda esquematizado.

THE BOOP´s Página 65

Page 66: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVAS

.

El carácter auto contenido de los módulos o librerías hace que pueda ocultarse el

funcionamiento interno de las funciones contenidas en un módulo, ya que para

utilizarlas basta con saber con qué nombre y argumentos se invocan y qué tipo de

valores devuelven.

Al reunirlas en un módulo, se realza la relación entre las mismas separándolas del

Resto del programa.

Esta ocultación de los detalles se denomina encapsulación y se alcanza dividiendo

el

Código del programa en dos ficheros diferenciados: un fichero (con extensión ".h")

que

Incluye la declaración de los tipos de datos y de las funciones gracias a lo cual se

sabe

Cómo acceder y utilizar cada una de las mismas y otro (con extensión ".c") que

contiene el código de cada una de las funciones declaradas en el .h.

Al compilar este último queda transformado en código objeto (al cual ya no se

puede

Acceder para su lectura o modificación) y puede distribuirse conjuntamente con el

THE BOOP´s Página 66

Page 67: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASFichero de declaración (el que acaba en .h), para su uso por parte de terceros sin

riesgo alguno de alteración de la funcionalidad original (ésta quedó encapsulada u

oculta).

Esto es así porque para hacer uso de las funciones incluidas en el módulo

únicamente

Necesitaremos conocer la información que nos proporciona el fichero de

declaración: el nombre, tipos de datos de los argumentos y valores de retorno de

las funciones. No es necesario conocer los detalles de implementación (sentencias

que se ejecutan dentro de una función).

Ejemplo práctico

1. Lenguaje maquina

2. Encapsulación dividiendo el código del programa en dos ficheros diferenciados:

un fichero (con extensión ".h") y otro (con extensión ".c")

3. Código objeto.

CONCLUSIÓN

THE BOOP´s Página 67

1010110110111010100010101010100101011010101010101010101010

1 2 3

Page 68: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASAl llevar a cabo el desarrollo de esta unidad pudimos conocer el proceso para la

creación de programas, sus fases y lo que va implicado en ellos.

Para esto se utilizaron varias herramientas que nos ayudaron a su creación y más

que nada a la administración del programa en sí, logrando con esto dividirlo en

una serie de etapas.

Vimos nacer al programa desde la idea en si de lo que quería ser, hasta su

denominación formal.

Para esto el programa tuvo que sufrir una serie de modificaciones a lo largo de su

avance y se tuvo que documentar toda la información que se llevaba a cabo en

estos.

De esto se puede deducir que; los programas tienen un lenguaje propio, mediante

el cual el programador se comunica con el sistema.

Esta comunicación se rige por lo que podríamos llamar reglas pero más que nada

son estatutos que debe contener.

Para esto se han creado las palabras para cada lenguaje, que nos permiten crear

o modificar estructuras dentro de él.

Tomando en cuenta que estas instrucciones no las entiende por completo la

maquina se han creado medios que permiten interpretar o convertir este lenguaje

a uno entendible por la computadora. Con esto los programas son ejecutados de

una manera propia, lo cual permite generar resultados entendibles y utilizables por

las computadoras. Y también por los usuarios que manejan el programa.

BIBLIOGRAFÍA

INTRODUCCIÓN A LA COMPUTACIÓN

THE BOOP´s Página 68

Page 69: INSTITUTO POLITECNICO NACIONAL · Web viewHacia 1859 el matemático y lógico irlandés George Boole desarrollo un sistema matemático para formular proposiciones lógicas con símbolos,

INSTITUTO POLITECNICO NACIONAL UNIDAD PROFESIONAL INTERDISCIPLINARIA DE INGENIERIA Y

CIENCIAS SOCIALES Y ADMINISTRATIVASR. PETER NORTON6TA EDICION MC GRAW HILL 1995, USA.

C/C++, JAVA COMO PROGRAMARDEITELPEARSON PRETINCEL HALL4ª EDICION

FUNDAMENTOS DE SISTEMAS DIGITALES PEARSON PRETICE HALL THOMAS L. FLOYD, 9 ED

AUTOMATAS PROGRAMABLESJOSEP BALCELLS Y JOSE LUIS ROMERALSERIE MUNDO ELECTRONICO

LÓGICA DIGITAL Y DISEÑO DE COMPUTADORASM. MORRIS MANOEDITORIAL. PRENTICE HALL.1994, 3ª .ED. 790 P. USA

office.microsoft.com/es-es/visio/HA101474483082.asp

www.gestiopolis.com/recursos/documentos/fulldocs/ger/diaggantaleja.htm

THE BOOP´s Página 69