SlideShare una empresa de Scribd logo
Introducción a la Programación
Tema 1:
Conceptos básicos de programación
Ingeniería Técnica en Informática de Gestión
Departamento de Ingeniería del Software e Inteligencia Artificial
Curso 2009-2010
Profesor
Federico Peinado
Elaboración del material
Mercedes Gómez
Pablo Moreno
Manuel Ortega
Federico Peinado
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.2
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
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.3
Qué es la Informática
Más sobre la Historia de la
Informática en el MIGS
http://www.fdi.ucm.es/migs
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.4
 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.
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.5
Un poco de hardware
Memori
a
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
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.6
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
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.7
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
Selector
...
UM
Registro de Dirección (RD)
Celdas
Registro de Intercambio
de Datos (RID)
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.8
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.)
Banco de Registros
Temporales (BRT)
Operador
UALAcumulador
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.9
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
Registro de Instrucción (RI)
Decodificador
UC
Secuenciador
Contador de Programa (CP)
Operación Direcciones de 3 operandos
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión
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
REALIZAR
OPERACIÓ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)
1.11
Ejecución de una instrucción (cont.)
Operación: SUMA-CELDAS Operando 1: X Operando 2: Y Operando 3: Z
SUMA-CELDAS suma el dato de la primera dirección al de la segunda y lo guarda en la tercera
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.12
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?
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.13
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
x y
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.14
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
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.15
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
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión
 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.16
Lenguaje ensamblador (cont.)
Código fuente
(lenguaje ensamblador)
Programa ensamblador Código objeto
(lenguaje máquina)
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.17
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
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.18
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!
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.19
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
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.20
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
 ...
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.21
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)
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.22
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
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.23
 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.)
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.24
Análisis
Diseño
Implementación
Pruebas
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
1.25
Análisis
Diseño
Implementación
Pruebas
Mantenimiento
“Quiero 3 habitaciones,
2 baños, garaje...”
Planos, diseño circuito
eléctrico y de agua...
Se construye la casa
Se comprueba la solidez de la
estructura, el funcionamiento de
las instalaciones, el acabado...
Algunas reparaciones, se cierra
la terraza, se instala aire
acondicionado...
Casa
¿Qué tiene que hacer
exactamente nuestro
programa?
¿Cómo vamos a organizar
el programa? ¿Qué
partes tendrá y cómo
funcionará?
Se construye el software
Ponemos a prueba nuestro
programa, incluso en
situaciones límite
Pequeñas modificaciones o
correcciones (parches),
actualizaciones, etc...
Software
¿Qué significa todo esto?
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.26
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)
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.27
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
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.28
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
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.29
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?
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.30
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
 ...
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.31
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
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.32
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…
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.33
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
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.34
Notación BNF
 TERMINAL Símbolo (ej. una palabra) del lenguaje a definir
(se escribe en letras mayúsculas)
 <no terminal> 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)
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.35
 Sintaxis de los números enteros positivos en notación BNF
<numero entero> ::= <signo opcional> <secuencia dígitos>
<signo opcional> ::= + | <nada>
<secuencia dígitos> ::= <dígito> | <dígito> <secuencia dígitos>
<dígito> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<nada> ::=
 ¿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
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.36
Notación EBNF
 Añade metasímbolos nuevos y cambia la forma de presentar
las cosas
BNF
TERMINAL
<no 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’
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión
 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.37
Notación EBNF (cont.)
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.38
Diagramas sintácticos
TERMINAL 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
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.39
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
…
1.40
Críticas, dudas, sugerencias…
Federico Peinado
www.federicopeinado.es

Más contenido relacionado

La actualidad más candente

Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
Efrain Ruiz Fernandez
 
Introducción a la ing sistemas
Introducción a la ing sistemasIntroducción a la ing sistemas
Introducción a la ing sistemasviviana19s
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
juan1993are
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
guestda6ef91
 
Iats practicas 1
Iats practicas 1Iats practicas 1
Iats practicas 1
David Quirantes Sierra
 
Lenguaje de programacióndiapost1.
Lenguaje de programacióndiapost1.Lenguaje de programacióndiapost1.
Lenguaje de programacióndiapost1.Dominga Quispe Diaz
 
Introducción al Lenguaje de Programación
Introducción al Lenguaje de ProgramaciónIntroducción al Lenguaje de Programación
Introducción al Lenguaje de Programación
José Tomás Diarte Añazco
 
Jhinet fernanda
Jhinet fernandaJhinet fernanda
Jhinet fernanda
JHINETA
 
Slideshard deisy
Slideshard deisySlideshard deisy
Slideshard deisy
Deiizy Garciia
 
5154 Tema3 Jose Rojas
5154 Tema3 Jose Rojas5154 Tema3 Jose Rojas
5154 Tema3 Jose Rojas
Jose Rojas
 
Entrada
EntradaEntrada
Entrada
jablotol
 

La actualidad más candente (17)

Informática elemental
Informática elemental Informática elemental
Informática elemental
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Informatica tema1.
Informatica tema1.Informatica tema1.
Informatica tema1.
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Introducción a la ing sistemas
Introducción a la ing sistemasIntroducción a la ing sistemas
Introducción a la ing sistemas
 
Algoritmo
AlgoritmoAlgoritmo
Algoritmo
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
 
Iats practicas 1
Iats practicas 1Iats practicas 1
Iats practicas 1
 
Lenguaje de programacióndiapost1.
Lenguaje de programacióndiapost1.Lenguaje de programacióndiapost1.
Lenguaje de programacióndiapost1.
 
Introducción al Lenguaje de Programación
Introducción al Lenguaje de ProgramaciónIntroducción al Lenguaje de Programación
Introducción al Lenguaje de Programación
 
Jhinet fernanda
Jhinet fernandaJhinet fernanda
Jhinet fernanda
 
Slideshard deisy
Slideshard deisySlideshard deisy
Slideshard deisy
 
5154 Tema3 Jose Rojas
5154 Tema3 Jose Rojas5154 Tema3 Jose Rojas
5154 Tema3 Jose Rojas
 
Entrada
EntradaEntrada
Entrada
 
Fp01
Fp01Fp01
Fp01
 
GLOSARIO TECNICO
GLOSARIO TECNICOGLOSARIO TECNICO
GLOSARIO TECNICO
 

Destacado

Introducción a la Informática - Presentacion
Introducción a la Informática - PresentacionIntroducción a la Informática - Presentacion
Introducción a la Informática - Presentacion
UAGRM
 
Presentación introducción a la ingeniería de sistemas capitulo 1
Presentación introducción a la ingeniería de sistemas  capitulo 1Presentación introducción a la ingeniería de sistemas  capitulo 1
Presentación introducción a la ingeniería de sistemas capitulo 1
juanfer1287
 
Introducción a la ingeniería de sistemas
Introducción a la ingeniería de sistemasIntroducción a la ingeniería de sistemas
Introducción a la ingeniería de sistemas
Juan Diego Roa
 
Introducción a la Ingeniería de Sistemas II 2013
Introducción a la Ingeniería de Sistemas II 2013Introducción a la Ingeniería de Sistemas II 2013
Introduccion a la ingenieria de sistemas clase i
Introduccion a la ingenieria de sistemas clase iIntroduccion a la ingenieria de sistemas clase i
Introduccion a la ingenieria de sistemas clase iJesus Arrieta
 
IntroduccióN Ingenieria De Sistemas
IntroduccióN Ingenieria De SistemasIntroduccióN Ingenieria De Sistemas
IntroduccióN Ingenieria De Sistemaspiedaducc
 
Cómo Elaborar el Trabajo Práctico
Cómo Elaborar el Trabajo PrácticoCómo Elaborar el Trabajo Práctico
Cómo Elaborar el Trabajo Práctico
Zamantha Gonzalez Universidad Nacional Abierta
 
327 introducción a la ingenieria de sistemas (1er libro)
327   introducción a la ingenieria de sistemas (1er libro)327   introducción a la ingenieria de sistemas (1er libro)
327 introducción a la ingenieria de sistemas (1er libro)
rbrosabelen
 
Ingeniería de sistemas unidad 1 Ingeniería Industrial
Ingeniería de sistemas unidad 1 Ingeniería Industrial Ingeniería de sistemas unidad 1 Ingeniería Industrial
Ingeniería de sistemas unidad 1 Ingeniería Industrial Ismael Martinez
 

Destacado (9)

Introducción a la Informática - Presentacion
Introducción a la Informática - PresentacionIntroducción a la Informática - Presentacion
Introducción a la Informática - Presentacion
 
Presentación introducción a la ingeniería de sistemas capitulo 1
Presentación introducción a la ingeniería de sistemas  capitulo 1Presentación introducción a la ingeniería de sistemas  capitulo 1
Presentación introducción a la ingeniería de sistemas capitulo 1
 
Introducción a la ingeniería de sistemas
Introducción a la ingeniería de sistemasIntroducción a la ingeniería de sistemas
Introducción a la ingeniería de sistemas
 
Introducción a la Ingeniería de Sistemas II 2013
Introducción a la Ingeniería de Sistemas II 2013Introducción a la Ingeniería de Sistemas II 2013
Introducción a la Ingeniería de Sistemas II 2013
 
Introduccion a la ingenieria de sistemas clase i
Introduccion a la ingenieria de sistemas clase iIntroduccion a la ingenieria de sistemas clase i
Introduccion a la ingenieria de sistemas clase i
 
IntroduccióN Ingenieria De Sistemas
IntroduccióN Ingenieria De SistemasIntroduccióN Ingenieria De Sistemas
IntroduccióN Ingenieria De Sistemas
 
Cómo Elaborar el Trabajo Práctico
Cómo Elaborar el Trabajo PrácticoCómo Elaborar el Trabajo Práctico
Cómo Elaborar el Trabajo Práctico
 
327 introducción a la ingenieria de sistemas (1er libro)
327   introducción a la ingenieria de sistemas (1er libro)327   introducción a la ingenieria de sistemas (1er libro)
327 introducción a la ingenieria de sistemas (1er libro)
 
Ingeniería de sistemas unidad 1 Ingeniería Industrial
Ingeniería de sistemas unidad 1 Ingeniería Industrial Ingeniería de sistemas unidad 1 Ingeniería Industrial
Ingeniería de sistemas unidad 1 Ingeniería Industrial
 

Similar a Presentación Informática

Tema1
Tema1Tema1
Tema1
Ber GL
 
Tema1.ppt
Tema1.pptTema1.ppt
Tema1.ppt
Mario Catire
 
Tema1
Tema1Tema1
Conferencia1 - Programacion de Computadores
Conferencia1 - Programacion de ComputadoresConferencia1 - Programacion de Computadores
Conferencia1 - Programacion de ComputadoresEdward Alexander Rojas
 
Introduccion_a_la_programacion.pdf
Introduccion_a_la_programacion.pdfIntroduccion_a_la_programacion.pdf
Introduccion_a_la_programacion.pdf
Neftaly Niño Villarreal
 
Mi Lenguaje de Programacion
Mi Lenguaje de ProgramacionMi Lenguaje de Programacion
Mi Lenguaje de Programacionmel_15
 
Fase3 t1-introduccion- a-la- programacion new
Fase3 t1-introduccion- a-la- programacion newFase3 t1-introduccion- a-la- programacion new
Fase3 t1-introduccion- a-la- programacion newINGJOINER
 
introduccion computadoras
introduccion computadorasintroduccion computadoras
introduccion computadoras
PiCeGo
 
Presentacion_Programacion.pptx
Presentacion_Programacion.pptxPresentacion_Programacion.pptx
Presentacion_Programacion.pptx
MaudilioMorales
 
ARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIA
ARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIAARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIA
ARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIA
Isaias Castro
 
fundamentos de la programación, Introducción a la ciencia de la computación y...
fundamentos de la programación, Introducción a la ciencia de la computación y...fundamentos de la programación, Introducción a la ciencia de la computación y...
fundamentos de la programación, Introducción a la ciencia de la computación y...
19025409
 
Lab algoritmos 1
Lab algoritmos 1Lab algoritmos 1
Lab algoritmos 1
junior zamora
 
02- Clase 1 - UD2 - Lenguajes.pdf
02- Clase 1 - UD2 -  Lenguajes.pdf02- Clase 1 - UD2 -  Lenguajes.pdf
02- Clase 1 - UD2 - Lenguajes.pdf
NancyHerrera88
 
Introducccion programacion
Introducccion programacionIntroducccion programacion
Introducccion programacionAnaisMar22
 
Universidad De Los Andes
Universidad De Los AndesUniversidad De Los Andes
Universidad De Los Andesbarrios
 
Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...
Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...
Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...
Carlos M. Sandoval
 
Clase 1- Enfoque multinivel 1 2020 odc.pdf
Clase 1- Enfoque multinivel 1 2020 odc.pdfClase 1- Enfoque multinivel 1 2020 odc.pdf
Clase 1- Enfoque multinivel 1 2020 odc.pdf
doboha3789
 

Similar a Presentación Informática (20)

Tema1
Tema1Tema1
Tema1
 
Tema1.ppt
Tema1.pptTema1.ppt
Tema1.ppt
 
Tema1
Tema1Tema1
Tema1
 
Conferencia1
Conferencia1Conferencia1
Conferencia1
 
Conferencia1 - Programacion de Computadores
Conferencia1 - Programacion de ComputadoresConferencia1 - Programacion de Computadores
Conferencia1 - Programacion de Computadores
 
Introduccion_a_la_programacion.pdf
Introduccion_a_la_programacion.pdfIntroduccion_a_la_programacion.pdf
Introduccion_a_la_programacion.pdf
 
Mi Lenguaje de Programacion
Mi Lenguaje de ProgramacionMi Lenguaje de Programacion
Mi Lenguaje de Programacion
 
Fase3 t1-introduccion- a-la- programacion new
Fase3 t1-introduccion- a-la- programacion newFase3 t1-introduccion- a-la- programacion new
Fase3 t1-introduccion- a-la- programacion new
 
introduccion computadoras
introduccion computadorasintroduccion computadoras
introduccion computadoras
 
Presentacion_Programacion.pptx
Presentacion_Programacion.pptxPresentacion_Programacion.pptx
Presentacion_Programacion.pptx
 
Introducción a la programación
Introducción a la programaciónIntroducción a la programación
Introducción a la programación
 
ARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIA
ARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIAARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIA
ARQUITECTURA INTERNA DE UNA MÁQUINA RUDIMENTARIA
 
fundamentos de la programación, Introducción a la ciencia de la computación y...
fundamentos de la programación, Introducción a la ciencia de la computación y...fundamentos de la programación, Introducción a la ciencia de la computación y...
fundamentos de la programación, Introducción a la ciencia de la computación y...
 
Miguillen recursos
Miguillen recursosMiguillen recursos
Miguillen recursos
 
Lab algoritmos 1
Lab algoritmos 1Lab algoritmos 1
Lab algoritmos 1
 
02- Clase 1 - UD2 - Lenguajes.pdf
02- Clase 1 - UD2 -  Lenguajes.pdf02- Clase 1 - UD2 -  Lenguajes.pdf
02- Clase 1 - UD2 - Lenguajes.pdf
 
Introducccion programacion
Introducccion programacionIntroducccion programacion
Introducccion programacion
 
Universidad De Los Andes
Universidad De Los AndesUniversidad De Los Andes
Universidad De Los Andes
 
Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...
Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...
Unidad 1 Conceptos básicos y metodología para la solución de problemas por me...
 
Clase 1- Enfoque multinivel 1 2020 odc.pdf
Clase 1- Enfoque multinivel 1 2020 odc.pdfClase 1- Enfoque multinivel 1 2020 odc.pdf
Clase 1- Enfoque multinivel 1 2020 odc.pdf
 

Último

c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
Martín Ramírez
 
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Monseespinoza6
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
CESAR MIJAEL ESPINOZA SALAZAR
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
BetzabePecheSalcedo1
 
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptxCLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
LilianaRivera778668
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
YasneidyGonzalez
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
DivinoNioJess885
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
rosannatasaycoyactay
 
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCIONCAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
MasielPMP
 
evalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia leeevalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia lee
MaribelGaitanRamosRa
 
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docxSESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
QuispeJimenezDyuy
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
TatianaVanessaAltami
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
20minutos
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
Demetrio Ccesa Rayme
 
T3-Instrumento de evaluacion_Planificación Analìtica_Actividad con IA.pdf
T3-Instrumento de evaluacion_Planificación Analìtica_Actividad con IA.pdfT3-Instrumento de evaluacion_Planificación Analìtica_Actividad con IA.pdf
T3-Instrumento de evaluacion_Planificación Analìtica_Actividad con IA.pdf
eliecerespinosa
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
pablomarin116
 
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdfTexto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
ClaudiaAlcondeViadez
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Demetrio Ccesa Rayme
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
El Fortí
 
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdfHABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
DIANADIAZSILVA1
 

Último (20)

c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptxc3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
c3.hu3.p3.p2.Superioridad e inferioridad en la sociedad.pptx
 
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
Productos contestatos de la Séptima sesión ordinaria de CTE y TIFC para Docen...
 
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNETPRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
PRESENTACION DE LA SEMANA NUMERO 8 EN APLICACIONES DE INTERNET
 
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIACONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
CONCLUSIONES-DESCRIPTIVAS NIVEL PRIMARIA
 
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptxCLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
CLASE N.1 ANÁLISIS ADMINISTRATIVO EMPRESARIAL presentación.pptx
 
Fase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría AnalíticaFase 3; Estudio de la Geometría Analítica
Fase 3; Estudio de la Geometría Analítica
 
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIALCUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
CUENTO EL TIGRILLO DESOBEDIENTE PARA INICIAL
 
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
3° UNIDAD 3 CUIDAMOS EL AMBIENTE RECICLANDO EN FAMILIA 933623393 PROF YESSENI...
 
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCIONCAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
CAPACIDADES SOCIOMOTRICES LENGUAJE, INTROYECCIÓN, INTROSPECCION
 
evalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia leeevalaución de reforzamiento de cuarto de secundaria de la competencia lee
evalaución de reforzamiento de cuarto de secundaria de la competencia lee
 
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docxSESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
SESION ORDENAMOS NÚMEROS EN FORMA ASCENDENTE Y DESCENDENTE 20 DE MAYO.docx
 
Mapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativaMapa_Conceptual de los fundamentos de la evaluación educativa
Mapa_Conceptual de los fundamentos de la evaluación educativa
 
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
Horarios y fechas de la PAU 2024 en la Comunidad Valenciana.
 
Educar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdfEducar por Competencias GS2 Ccesa007.pdf
Educar por Competencias GS2 Ccesa007.pdf
 
T3-Instrumento de evaluacion_Planificación Analìtica_Actividad con IA.pdf
T3-Instrumento de evaluacion_Planificación Analìtica_Actividad con IA.pdfT3-Instrumento de evaluacion_Planificación Analìtica_Actividad con IA.pdf
T3-Instrumento de evaluacion_Planificación Analìtica_Actividad con IA.pdf
 
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.Friedrich Nietzsche. Presentación de 2 de Bachillerato.
Friedrich Nietzsche. Presentación de 2 de Bachillerato.
 
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdfTexto_de_Aprendizaje-1ro_secundaria-2024.pdf
Texto_de_Aprendizaje-1ro_secundaria-2024.pdf
 
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdfAsistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
Asistencia Tecnica Cultura Escolar Inclusiva Ccesa007.pdf
 
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdfFORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
FORTI-JUNIO 2024. CIENCIA, EDUCACION, CULTURA,pdf
 
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdfHABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
HABILIDADES MOTRICES BASICAS Y ESPECIFICAS.pdf
 

Presentación Informática

  • 1. Introducción a la Programación Tema 1: Conceptos básicos de programación Ingeniería Técnica en Informática de Gestión Departamento de Ingeniería del Software e Inteligencia Artificial Curso 2009-2010 Profesor Federico Peinado Elaboración del material Mercedes Gómez Pablo Moreno Manuel Ortega Federico Peinado
  • 2. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.2 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
  • 3. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.3 Qué es la Informática Más sobre la Historia de la Informática en el MIGS http://www.fdi.ucm.es/migs
  • 4. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.4  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.
  • 5. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.5 Un poco de hardware Memori a 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
  • 6. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.6 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
  • 7. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.7 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 Selector ... UM Registro de Dirección (RD) Celdas Registro de Intercambio de Datos (RID)
  • 8. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.8 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.) Banco de Registros Temporales (BRT) Operador UALAcumulador
  • 9. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.9 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 Registro de Instrucción (RI) Decodificador UC Secuenciador Contador de Programa (CP) Operación Direcciones de 3 operandos
  • 10. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 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 REALIZAR OPERACIÓ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)
  • 11. 1.11 Ejecución de una instrucción (cont.) Operación: SUMA-CELDAS Operando 1: X Operando 2: Y Operando 3: Z SUMA-CELDAS suma el dato de la primera dirección al de la segunda y lo guarda en la tercera
  • 12. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.12 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?
  • 13. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.13 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 x y
  • 14. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.14 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
  • 15. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.15 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
  • 16. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión  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.16 Lenguaje ensamblador (cont.) Código fuente (lenguaje ensamblador) Programa ensamblador Código objeto (lenguaje máquina)
  • 17. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.17 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
  • 18. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.18 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!
  • 19. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.19 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
  • 20. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.20 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  ...
  • 21. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.21 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)
  • 22. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.22 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
  • 23. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.23  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.)
  • 24. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.24 Análisis Diseño Implementación Pruebas 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
  • 25. 1.25 Análisis Diseño Implementación Pruebas Mantenimiento “Quiero 3 habitaciones, 2 baños, garaje...” Planos, diseño circuito eléctrico y de agua... Se construye la casa Se comprueba la solidez de la estructura, el funcionamiento de las instalaciones, el acabado... Algunas reparaciones, se cierra la terraza, se instala aire acondicionado... Casa ¿Qué tiene que hacer exactamente nuestro programa? ¿Cómo vamos a organizar el programa? ¿Qué partes tendrá y cómo funcionará? Se construye el software Ponemos a prueba nuestro programa, incluso en situaciones límite Pequeñas modificaciones o correcciones (parches), actualizaciones, etc... Software ¿Qué significa todo esto?
  • 26. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.26 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)
  • 27. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.27 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
  • 28. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.28 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
  • 29. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.29 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?
  • 30. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.30 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  ...
  • 31. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.31 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
  • 32. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.32 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…
  • 33. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.33 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
  • 34. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.34 Notación BNF  TERMINAL Símbolo (ej. una palabra) del lenguaje a definir (se escribe en letras mayúsculas)  <no terminal> 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)
  • 35. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.35  Sintaxis de los números enteros positivos en notación BNF <numero entero> ::= <signo opcional> <secuencia dígitos> <signo opcional> ::= + | <nada> <secuencia dígitos> ::= <dígito> | <dígito> <secuencia dígitos> <dígito> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 <nada> ::=  ¿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
  • 36. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.36 Notación EBNF  Añade metasímbolos nuevos y cambia la forma de presentar las cosas BNF TERMINAL <no 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’
  • 37. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión  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.37 Notación EBNF (cont.)
  • 38. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.38 Diagramas sintácticos TERMINAL 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
  • 39. Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.39 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 …
  • 40. 1.40 Críticas, dudas, sugerencias… Federico Peinado www.federicopeinado.es