Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Conceptos básicos de programación




Enviado por Pablo Turmero



    Monografias.com

    1.0
    Qué es la Informática
    Informática (Del fr. informatique). 1. f. Conjunto de conocimientos científicos y técnicas que hacen posible el tratamiento automático de la información por medio de ordenadores.
    (Extraído del Diccionario de la RAE, 2001)
    Un poco de historia
    Ábaco – 2000 a.c.
    El sumador de Pascal – mediados s. XVII
    La calculadora de G.W. von Leibniz – finales s. XVII
    La máquina de diferencias de Babbage – s. XIX
    Concepto de programa externo
    1945: Comienzo de la era de la Informática
    Modelo J. von Neumann: estructura de la computadora tal y como la conocemos hoy; concepto de programa interno
    Coincide con el desarrollo de la electrónica

    Monografias.com

    1.1
    Qué es la Informática
    Más sobre la Historia de la Informática en el MIGShttp://www.fdi.ucm.es/migs

    Monografias.com

    1.2
    Computadora electrónica 1. f. Máquina electrónica digital, dotada de una memoria de gran capacidad y de métodos de tratamiento de la información, capaz de resolver problemas matemáticos y lógicos mediante la utilización automática de programas informáticos.

    (Extraído del Diccionario de la RAE, 2001)

    Fundamentos de computadores Introducción a la programación

    Qué es una computadora
    Hardware (Voz ingl.).1. m. Inform. Conjunto de los componentes que integran la parte material de una computadora.
    Software (Voz ingl.).1. m. Conjunto de programas, instrucciones y reglas informáticas para ejecutar ciertas tareas en una computadora.

    Monografias.com

    1.3
    Un poco de hardware
    Memoria
    Dispositivo de salida
    Dispositivos de entrada
    Memoria secundaria
    Ratón
    Teclado
    Unidad Central
    de Procesamiento

    Carcasa (tipo torre)
    Unidad
    de disquetes
    Unidad
    de CD-ROM
    Memoria principal
    y Unidad de Disco Duro
    (ambos dentro)
    Monitor

    Monografias.com

    1.4
    Un poco de hardware: el Modelo Von Neumann
    Unidad de Control
    Unidad Aritmético-Lógica
    Unidad Central de Procesamiento (CPU)
    Unidad de Memoria
    Ideas importantes:
    Un programa es una cadena secuencial de instrucciones
    Las instrucciones ordenan al ordenador realizar una operación sobre unos datos
    Las instrucciones se ejecutan una tras otra, aunque puede haber bifurcaciones condicionales (usar un dato para decidir entre dos instrucciones diferentes por donde continuar)
    El computador procesa tanto instrucciones como sus datos
    Las instrucciones y los datos se almacenan juntos en memoria

    Monografias.com

    1.5
    Un poco de hardware: la Unidad de Memoria (UM)
    Almacena las instrucciones y los datos del programas
    El almacén está formado por celdas
    Identificadas unívocamente por su dirección
    Siempre contienen información
    Se puede leer o escribir información en ellas
    (Gp:) Selector
    (Gp:)

    (Gp:) UM
    (Gp:) Registro de Dirección (RD)
    (Gp:) Celdas
    (Gp:) Registro de Intercambiode Datos (RID)

    Monografias.com

    1.6
    Un poco de hardware: la Unidad Aritmético-Lógica (UAL)
    Realiza las operaciones elementales aritméticas (suma, resta, multiplicación, división, etc.) y lógicas (comparaciones de igualdad, mayor, menor, etc.)
    (Gp:)

    (Gp:) Banco de Registros Temporales (BRT)
    (Gp:) Operador
    (Gp:) UAL
    (Gp:) Acumulador

    Monografias.com

    1.7
    Un poco de hardware: la Unidad de Control (UC)
    Obtiene y almacena los datos en la UM, obtiene e identifica las instrucciones del programa de la UM y manda ejecutar las operaciones a la UAL

    (Gp:) Registro de Instrucción (RI)
    (Gp:) Decodificador
    (Gp:) UC
    (Gp:) Secuenciador
    (Gp:) Contador de Programa (CP)
    (Gp:) Operación Direcciones de 3 operandos

    Monografias.com

    Ejecución de una instrucción
    Los pasos del ciclo de instrucción según Von Neumann
    LEER
    INSTRUCCIÓN
    DECODIFICAR
    INSTRUCCIÓN
    CAPTURAR
    DATOS
    REALIZAROPERACIÓN
    ALMACENAR
    RESULTADOS
    CALCULAR
    INSTRUCCIÓN
    SIGUIENTE
    El CP indica la dirección de la celda donde está la instrucción que se debe copiar al RI
    El operando del RI (que puede ser un dato o la dirección de la celda de un dato) se copia en el BRT
    (Esto se repite para todos los operandos de entrada)
    La dirección de celda de la siguiente instrucción se copia al CP
    El resultado del Acumulador se copia en la dirección de la celda del resultado, generalmente indicada en el último operando de la instrucción(Esto se repite para todos los resultados)

    Monografias.com

    Ejecución de una instrucción (cont.)
    Operación: SUMA-CELDAS Operando 1: X Operando 2: Y Operando 3: ZSUMA-CELDAS suma el dato de la primera dirección al de la segunda y lo guarda en la tercera

    Monografias.com

    1.10

    La computadora manipula únicamente información digital:Datos e instrucciones se codifican como dígitos binarios (0’s y 1’s)

    ¿Por qué no se usa una representación de otro tipo?
    Problema tecnológico (es más fácil representar ceros y unos)
    ¿A qué nos conduce la solución adoptada para evitar el problema tecnológico?
    La máquina sólo puede trabajar con cadenas de ceros y unos

    ¿Qué entiende la computadora?

    Monografias.com

    1.11
    a = (b + c)/(d + e)
    Pasos
    sumar b y c, y guardar el resultado en una dirección de memoria temporal X
    sumar d y e, y guardar el resultado en una dirección de memoria temporal Y
    dividir el contenido de X por el de Y y guardar el resultado en la dirección de memoria de a
    Ejemplo de código máquina
    codigoOp direccOp1 direccOp2 direccRes

    0000 00001000 00001100 00001110
    0000 00011000 00011100 00011110
    0101 00011110 00001110 00000100

    Código de la división
    Direcc. Temporal X
    Direcc. Temporal Y
    Código de la suma
    Lenguaje máquina
    (Gp:) x

    (Gp:) y

    Monografias.com

    1.12
    Lenguaje máquina (cont.)
    Inconvenientes
    Grandes posibilidades de error
    Portabilidad: máquina-dependiente
    No se puede llevar el programa a otra máquina porque, entre otras cosas, el repertorio de instrucciones es distinto
    Tedioso
    Nula capacidad de abstracción
    Es muy complicado formular una solución a problemas del mundo real con ese lenguaje tan específico

    Monografias.com

    1.13
    Lenguaje ensamblador
    Lenguaje simbólico con una mínima capacidad de abstracción
    Nombres nemotécnicos para los códigos de operación
    Nombres simbólicos para las direcciones de memoria

    Ejemplo de instrucción de código ensamblador

    codigoSimbOp direccSimbOp1, direccSimbOp2, direccSimbRes

    Códigos simbólicos de las operaciones
    SUM = La suma
    DIV = La división

    a = (b + c)/(d + e)

    SUM B, C, X
    SUM D, E, Y
    DIV X, Y, A

    Monografias.com

    Cuestiones
    ¿Cómo entiende la máquina el lenguaje ensamblador?
    Si las direcciones de memoria son simbólicas ¿en qué direcciones de memoria se colocan los datos?

    Programa ensamblador
    Traducción a código binario de códigos simbólicos de operación
    Traducción de las direcciones simbólicas a direcciones reales de memoria
    Inconveniente: sigue siendo dependiente de la máquina

    1.14
    Lenguaje ensamblador (cont.)
    Código fuente(lenguaje ensamblador)
    Programa ensamblador
    Código objeto(lenguaje máquina)

    Monografias.com

    1.15
    Lenguajes de alto nivel
    Lenguaje que permite representar el mecanismo de resolución de los problemas usando instrucciones independientemente de la computadora
    Cercanía conceptual al programador
    Pascal, C, Java, etc. son lenguajes de alto nivel
    Capacidad de abstracción
    Abstracción procedimental (poder representar operaciones más complejas como calcular las raíces de un polinomio)
    Abstracción de datos (poder representar información más compleja como el estado de una cuenta bancaria)

    ¿Cómo conseguir que la computadora “entienda” los programas escritos en lenguajes de alto nivel?
    Intérprete
    Analiza el programa fuente y lo ejecuta directamente en la máquina
    Compilador
    Analiza el programa fuente y lo traduce a lenguaje máquina
    Ej. Turbo Pascal es un compilador de Pascal

    Monografias.com

    1.16
    El sistema operativo
    Programa básico encargado de manejar el hardware y facilitar el trabajo a los demás programas (aplicaciones) proporcionándoles un conjunto de servicios genéricos
    Asignación de tiempos de CPU
    Control y asignación racional de los recursos de la computadora
    Ejecución de programas
    Controlar la E/S (ej., almacenar/recuperar en/de memoria permanente)
    Control de errores y protección (ej., monitorizar la ejecución de un programa)
    Interfaz con el usuario

    ¡Sin sistema operativo todo sería mucho más complicado!

    Monografias.com

    1.17
    El sistema operativo (cont.)
    ¿Quién ejecuta el sistema operativo?
    Las computadoras suelen estar preparadas para, al arrancar, ejecutar un pequeño programa que, a su vez, se encarga de ejecutar el sistema operativo
    En el caso de los PCs normales, se almacena en memoria un programa denominado BIOS (Basic Input/Output System), capaz de localizar en memoria secundaria el programa “cargador” del sistema operativo

    Monografias.com

    1.18
    Aplicaciones de propósito específico
    Programas que permite en uso de la computadora para la realización de trabajos específicos y que se implantan sobre el sistema operativo
    Procesadores de texto
    Hojas de cálculo
    Sistemas de gestión de bases de datos
    Herramientas de diseño e ingeniería
    Juegos

    Monografias.com

    1.19
    La programación: resolución de problemas
    Un programa es una secuencia de instrucciones con un propósito concreto que un ordenador puede interpretar y ejecutar
    Programar es resolver problemas
    Conjunto de actividades implicadas en la descripción, el desarrollo y la implementación eficaz de soluciones algorítmicas a problemas bien especificados

    Algoritmo 1. m. Conjunto ordenado y finito de operaciones que permite hallar la solución de un problema.
    (Extraído del Diccionario de la RAE, 22ª edición)

    Un algoritmo es, por tanto, una sistemática que transforma un estado inicial en un estado final
    La entrada del programa: Precondiciones
    Descripción del estado inicial (datos y situación de partida)
    La salida del programa: Postcondiciones
    Descripción del estado final (datos y situación deseada al acabar)

    Monografias.com

    1.20
    La programación: resolución de problemas (cont.)
    Utilizamos los lenguajes de programación para expresar los algoritmos de forma que el ordenador los entienda
    De igual forma, que utilizamos la lengua castellana para expresar nuestras ideas a otras personas
    Recuerda: Programar BIEN no es sólo conocer la sintaxis de uno o varios lenguajes de programación

    Monografias.com

    1.21
    El problema del montón de fichas
    Supongamos que tenemos un montón de fichas, cada una de las cuales tiene escrito el nombre de una persona junto con otros datos personales (fecha de nacimiento, dirección, número de teléfono). Las fichas están ordenadas alfabéticamente por el nombre.
    Creamos una nueva ficha y deseamos incorporarla al montón existente.
    ¿Cómo dividimos el montón original en dos montones, tales que todas las fichas del primer montón precedan a la nueva en la ordenación y todas las del segundo no le precedan, pudiendo estar alguno de los montones finales vacío?

    ¿Cuáles son las precondiciones?
    ¿Cuáles son las postcondiciones?
    ¿Qué algoritmos se te ocurren?
    ¿Qué lenguaje utilizamos para describir todo lo anterior?

    La programación: resolución de problemas (cont.)

    Monografias.com

    1.22
    (Gp:) Análisis
    (Gp:) Diseño
    (Gp:) Implementación
    (Gp:) Pruebas
    (Gp:) Mantenimiento

    El Ciclo de Vida del Software
    Todas las tareas a realizar desde que se concibe un programa hasta que se deja de utilizar (no sólo “hasta que se codifica” ni “hasta que se instala”)
    Existen distintos modelos del ciclo de vida software, aunque nosotros estudiaremos el más simple: Modelo en Cascada

    Monografias.com

    (Gp:) Análisis
    (Gp:) Diseño
    (Gp:) Implementación
    (Gp:) Pruebas
    (Gp:) Mantenimiento

    (Gp:) “Quiero 3 habitaciones, 2 baños, garaje…”
    (Gp:) Planos, diseño circuito eléctrico y de agua
    (Gp:) Se construye la casa
    (Gp:) Se comprueba la solidez de la estructura, el funcionamiento de las instalaciones, el acabado…
    (Gp:) Algunas reparaciones, se cierra la terraza, se instala aire acondicionado
    (Gp:) Casa

    (Gp:) ¿Qué tiene que hacer exactamente nuestro programa?
    (Gp:) ¿Cómo vamos a organizar el programa? ¿Qué partes tendrá y cómo funcionará?
    (Gp:) Se construye el software
    (Gp:) Ponemos a prueba nuestro programa, incluso en situaciones límite
    (Gp:) Pequeñas modificaciones o correcciones (parches), actualizaciones, etc…
    (Gp:) Software

    ¿Qué significa todo esto?

    Monografias.com

    1.24
    Fases en el desarrollo de una aplicación (cont.)
    Análisis
    Actividad en la que se analizan y clarifican los diferentes aspectos del problema que debe ser resuelto por la aplicación, con el fin de establecer claramente qué debe ser construido
    El resultado es, normalmente, un documento de requisitos software que especifica claramente las funcionalidades de la aplicación
    Funcionalidad = lo que tiene que hacerse (sin saber todavía cómo)

    Monografias.com

    1.25
    Fases en el desarrollo de una aplicación (cont.)
    Diseño
    Actividad en la que se decide la organización y la estructura de una aplicación que satisfaga los diferentes requisitos establecidos en la fase de análisis
    El resultado es uno (o varios) documentos de diseño que especifican claramente cómo construir la aplicación
    Mientras que el análisis se ocupa de qué hay que hacer, el diseño se ocupa de cómo hacerlo
    Hay varias técnicas de diseño, nosotros estudiaremos una de las más básicas: el diseño funcional

    Monografias.com

    1.26
    Fases en el desarrollo de una aplicación (cont.)
    Implementación
    Actividad en la que se construye (codifica) la aplicación utilizando un lenguaje de programación concreto, y siguiendo, las directrices marcadas por los documentos de diseño
    Si las actividades anteriores han sido realizadas correctamente, la fase de implementación debería ser bastante trivial
    La implementación se encarga de concretar el diseño teniendo en cuenta un lenguaje y herramienta de desarrollo concreta

    Monografias.com

    1.27
    Fases en el desarrollo de una aplicación (cont.)
    Pruebas
    Actividad en la que se asegura que la aplicación construida satisface los requisitos del usuario
    Se debe invertir mucho tiempo en hacer pruebas (¡mucho más que en su implementación!)
    Dos pasos diferenciados
    Verificación: ¿Se ajusta la aplicación construida a los requisitos establecidos?
    Validación: ¿Resuelve la aplicación el problema que realmente tenía el usuario?

    Monografias.com

    1.28
    Fases en el desarrollo de una aplicación (cont.)
    Mantenimiento
    Actividad en la que la aplicación se modifica para satisfacer cambios o ampliaciones en los requisitos del usuario, corregir errores, etc.
    ¡Es la actividad más costosa en el desarrollo de software!(Tened en cuenta que hay programas que están muchos años en funcionamiento y lo usan miles de personas)
    Estos costes pueden aliviarse si se hacen bien todo lo anterior

    *Otras actividades
    Confección de los manuales de usuario
    Planificación y control del proyecto
    Gestión de versiones

    Monografias.com

    1.29
    Fases en el desarrollo de una aplicación (cont.)
    Este Modelo en Cascada, tan lineal, no suele aplicarse “tal cual” en la vida real
    Conviene hacer pruebas desde las primeras fases de desarrollo, por ejemplo para detectar y corregir errores prematuros, etc.
    Los programas suelen construirse en varias iteraciones (sacando primero una versión básica, luego otra con más funcionalidad añadida, etc.)
    Cada iteración es un ciclo completo (análisis, diseño, pruebas, etc.), siendo el diseño más importante en las primeras y la implementación más importante en las últimas

    Monografias.com

    1.30
    Lenguajes de programación
    Un lenguaje de programación puede describirse a tres niveles distintos:
    Nivel sintáctico
    Descripción de la forma (= sintaxis) de las instrucciones
    Suelen utilizarse lenguajes artificiales con mucho “formalismo” (= rigor matemático y lógico)
    Nivel semántico
    Descripción del significado (= semántica) de las instrucciones
    Puede utilizarse lenguaje natural (español, inglés, etc.) o intentar expresarse de manera más formal
    Nivel pragmático
    Descripción de cómo se utilizan las instrucciones
    Suelen utilizarse tutoriales y ejemplos de programas…

    Monografias.com

    1.31
    Sintaxis de los lenguajes de programación
    Conjunto de reglas que especifican y permiten verificar la corrección formal de las sentencias de un lenguaje

    Formalismos utilizados:
    Notación BNF (Backus-Naur Form)
    Notación EBNF (Extended Backus-Naur Form)
    Diagramas sintácticos
    Todos ellos pueden expresar la forma de cualquier lenguaje de programación, sólo hay que elegir el que nos sea cómodo
    Estos formalismos se usan para escribir documentación técnica que leen quienes quieren conocer con exactitud un lenguaje

    Monografias.com

    1.32
    Notación BNF
    TERMINAL Símbolo (ej. una palabra) del lenguaje a definir (se escribe en letras mayúsculas)

    Símbolo que se define en términos de otros símbolos (tanto terminales como no terminales) (se escribe en letras minúsculas y entre )

    Regla de producción Descripción de un símbolo no terminal como equivalente a 1) una combinación de terminales y no terminales, o 2) al vacío (Ø)
    (Un mismo no terminal puede tener varias reglas de producción)

    Metasímbolo Símbolo propio de la notación BNF, está reservado y no puede utilizarse en ningún otro símbolo ::= Equivalencia
    (lo de la izquierda equivale a lo de la derecha; es una regla de producción)
    | Alternativa
    (lo de la izquierda o lo de la derecha)

    Monografias.com

    1.33

    Sintaxis de los números enteros positivos en notación BNF
    ::=
    ::= + |
    ::= |
    ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
    ::=

    ¿Sintaxis de los números reales en notación BNF?
    Notación BNF (cont.)
    Recursividad
    Que un símbolo aparezca dentro de su propia definición¡OJO! Pero evitando las definiciones circulares

    Monografias.com

    1.34
    Notación EBNF
    Añade metasímbolos nuevos y cambia la forma de presentar las cosas
    BNF
    TERMINAL

    Metasímbolo ::= Equivalencia | Alternativa

    Recursividad permitida
    EBNF
    “terminal”
    No-terminal
    Metasímbolo ::= Equivalencia| Alternativa(…) Agrupación[…] Aparición opcional{…} Aparición 0, 1 o más veces
    Recursividad NO permitida (se suple con {…})
    Si algún símbolo del lenguaje coincide con un metasímbolo, el símbolo del lenguaje se pone entre ‘comillas simples’

    Monografias.com

    Sintaxis de los números enteros positivos en notación EBNF

    Numero-entero ::= [Signo] Secuencia-dígitos
    Signo ::= “+”
    Secuencia-dígitos ::= Dígito {Dígito}
    Dígito ::= “0” | “1” | “2” | “3” | “4” | “5” | “6” | “7” | “8” | “9”

    ¿Sintaxis de los números reales en notación EBNF?
    1.35
    Notación EBNF (cont.)

    Monografias.com

    1.36
    Diagramas sintácticos
    (Gp:) TERMINAL

    (Gp:) No Terminal

    Alternativa
    Aparición 0, 1 o más veces
    Aparición opcional
    *En las reglas de producción el no terminal de la izquierda se deja sin recuadro

    Monografias.com

    1.37
    Diagramas sintácticos (cont.)
    Sintaxis de los números enteros positivos en notación de diagramas sintácticos

    ¿Sintaxis de los números reales en notación de diagramas sintácticos?

    +
    Dígito
    Dígito
    1
    0
    9
    Nº entero positivo
    Dígito

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter