Está en la página 1de 40

Introducción a la Programación

Tema 1:
Conceptos básicos de programación

Profesor
Federico Peinado

Elaboración del material


Mercedes Gómez
Pablo Moreno
Manuel Ortega
Federico Peinado

Ingeniería Técnica en Informática de Gestión


Departamento de Ingeniería del Software e Inteligencia Artificial
Curso 2009-2010
Qué es la Informática

Tema 1  Informática (Del fr. informatique). 1. f. Conjunto de


Introducción: conocimientos científicos y técnicas que hacen posible el
tratamiento automático de la información por medio de
El Hardware

Lenguajes y
Programas ordenadores.
Ingeniería del
(Extraído del Diccionario de la RAE, 2001)
Software

Descripción de  Un poco de historia...


lenguajes de
programación  Á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

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.1
Qué es la Informática

Tema 1

Introducción:
El Hardware

Lenguajes y
Programas

Ingeniería del
Software

Descripción de
lenguajes de
programación

Más sobre la Historia de la


Informática en el MIGS
http://www.fdi.ucm.es/migs

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.2
Qué es una computadora

Tema 1  Computadora electrónica 1. f. Máquina electrónica digital,


Introducción: dotada de una memoria de gran capacidad y de métodos de
tratamiento de la información, capaz de resolver problemas
El Hardware

Lenguajes y
Programas matemáticos y lógicos mediante la utilización automática de
Ingeniería del
programas informáticos.
Software

Descripción de
lenguajes de
programación
 Hardware (Voz ingl.).1. m.  Software (Voz ingl.).1. m.
Inform. Conjunto de los Conjunto de programas,
componentes que integran la instrucciones y reglas
parte material de una informáticas para ejecutar
computadora. ciertas tareas en una
computadora.
(Extraído del Diccionario de la RAE, 2001)

Fundamentos de computadores Introducción a la programación

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.3
Un poco de hardware

Tema 1
Dispositivo de salida
Introducción:
El Hardware

Lenguajes y
Programas

Ingeniería del
Software Monitor Carcasa (tipo torre)

Descripción de
lenguajes de
programación Unidad
de CD-ROM

Unidad
Unidad Central de disquetes
de Procesamiento Memoria principal
Memori
a (ambos dentro)
y Unidad de Disco
Duro

Teclado

Ratón

Memoria
Dispositivos de secundaria
entrada
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.4
Un poco de hardware: el Modelo Von Neumann

Tema 1 Unidad Central de Procesamiento (CPU)


Introducción:
El Hardware

Lenguajes y Unidad de Control Unidad Aritmético-Lógica


Programas

Ingeniería del
Software

Descripción de Unidad de Memoria


lenguajes de
programación

 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
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.5
Un poco de hardware: la Unidad de Memoria (UM)

Tema 1  Almacena las instrucciones y los datos del programas


Introducción:
El Hardware

Lenguajes y
Selector
Programas

Ingeniería del Registro de Dirección (RD)


Software

Descripción de
lenguajes de
programación

Registro de Intercambio ...


de Datos (RID)

UM Celdas

 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

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.6
Un poco de hardware: la Unidad Aritmético-Lógica (UAL)

Tema 1  Realiza las operaciones elementales aritméticas (suma,


Introducción: resta, multiplicación, división, etc.) y lógicas (comparaciones
El Hardware
de igualdad, mayor, menor, etc.)
Lenguajes y
Programas

Ingeniería del
Software Banco de Registros
Descripción de Temporales (BRT)
lenguajes de
programación

Operador

Acumulador UAL

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 Control (UC)

Tema 1  Obtiene y almacena los datos en la UM, obtiene e identifica


Introducción: las instrucciones del programa de la UM y manda ejecutar las
operaciones a la UAL
El Hardware

Lenguajes y
Programas

Ingeniería del
Software

Descripción de Secuenciador
lenguajes de
programación Contador de Programa (CP)
Decodificador

Registro de Instrucción (RI)

Operación Direcciones de 3 operandos

UC

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.8
Ejecución de una instrucción

Tema 1  Los pasos del ciclo de instrucción según Von Neumann


Introducción:
El Hardware
El CP indica la dirección de la celda donde está
la instrucción que se debe copiar al RI
Lenguajes y
Programas
El operando del RI (que puede ser un dato o
LEER
la dirección de la celda de un dato) se copia en el BRT
Ingeniería del INSTRUCCIÓN
Software (Esto se repite para todos los operandos de entrada)
Descripción de
lenguajes de
programación DECODIFICAR CAPTURAR
INSTRUCCIÓN DATOS

REALIZAR
OPERACIÓN
CALCULAR
INSTRUCCIÓN
SIGUIENTE ALMACENAR
RESULTADOS
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)
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión
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

1.10
¿Qué entiende la computadora?

Tema 1

Introducción:
El Hardware La computadora manipula únicamente información digital:
Lenguajes y
Programas
Datos e instrucciones se codifican como
Ingeniería del
Software dígitos binarios (0’s y 1’s)
Descripción de
lenguajes de
programación

 ¿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

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.11
Lenguaje máquina

Tema 1 a = (b + c)/(d + e)
Introducción: x y
El Hardware
 Pasos
Lenguajes y  sumar b y c, y guardar el resultado en una dirección de memoria
Programas
temporal X
Ingeniería del  sumar d y e, y guardar el resultado en una dirección de memoria
Software temporal Y
Descripción de  dividir el contenido de X por el de Y y guardar el resultado en la
lenguajes de
programación dirección de memoria de a

 Ejemplo de código máquina


 codigoOp direccOp1 direccOp2 direccRes
Código de la suma Direcc. Temporal X

0000 00001000 00001100 00001110


0000 00011000 00011100 00011110
0101 00011110 00001110 00000100
Direcc. Temporal Y
Código de la división

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.12
Lenguaje máquina (cont.)

Tema 1  Inconvenientes
Introducción:
El Hardware
 Grandes posibilidades de error
 Portabilidad: máquina-dependiente
Lenguajes y
Programas  No se puede llevar el programa a otra máquina porque,
Ingeniería del entre otras cosas, el repertorio de instrucciones es distinto
Software
 Tedioso
Descripción de
lenguajes de
programación
 Nula capacidad de abstracción
 Es muy complicado formular una solución a problemas del
mundo real con ese lenguaje tan específico

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.13
Lenguaje ensamblador

 Lenguaje simbólico con una mínima capacidad de abstracción


Tema 1
 Nombres nemotécnicos para los códigos de operación
 Nombres simbólicos para las direcciones de memoria
Introducción:
El Hardware

Lenguajes y
Programas
 Ejemplo de instrucción de código ensamblador
Ingeniería del
Software
codigoSimbOp direccSimbOp1, direccSimbOp2, direccSimbRes
Descripción de
lenguajes de
programación
 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

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.14
Lenguaje ensamblador (cont.)

Tema 1  Cuestiones
Introducción:
El Hardware
 ¿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?
Lenguajes y
Programas

Ingeniería del
Software

Descripción de
lenguajes de
Código fuente Programa ensamblador Código objeto
programación (lenguaje ensamblador) (lenguaje máquina)

 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

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.15
Lenguajes de alto nivel

Tema 1
 Lenguaje que permite representar el mecanismo de
Introducción:
resolución de los problemas usando instrucciones
El Hardware
independientemente de la computadora
Lenguajes y  Cercanía conceptual al programador
Programas
 Pascal, C, Java, etc. son lenguajes de alto nivel
Ingeniería del

 Capacidad de abstracción
Software

 Abstracción procedimental (poder representar operaciones más


Descripción de
lenguajes de
programación
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

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.16
El sistema operativo

Tema 1  Programa básico encargado de manejar el hardware y


Introducción: facilitar el trabajo a los demás programas (aplicaciones)
proporcionándoles un conjunto de servicios genéricos
El Hardware

Asignación de tiempos de CPU


Lenguajes y
Programas 
Ingeniería del  Control y asignación racional de los recursos de la computadora
Software
 Ejecución de programas
Descripción de
lenguajes de
programación
 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!

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.17
El sistema operativo (cont.)

Tema 1  ¿Quién ejecuta el sistema operativo?


Introducción:
El Hardware
 Las computadoras suelen estar preparadas para, al arrancar,
ejecutar un pequeño programa que, a su vez, se encarga de
Lenguajes y
Programas
ejecutar el sistema operativo
Ingeniería del
 En el caso de los PCs normales, se almacena en memoria un
Software programa denominado BIOS (Basic Input/Output System),
Descripción de capaz de localizar en memoria secundaria el programa
“cargador” del sistema operativo
lenguajes de
programación

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.18
Aplicaciones de propósito específico

Tema 1  Programas que permite en uso de la computadora para la


Introducción: realización de trabajos específicos y que se implantan sobre
el sistema operativo
El Hardware

Procesadores de texto
Lenguajes y
Programas 
Ingeniería del  Hojas de cálculo
Software
 Sistemas de gestión de bases de datos
Descripción de
lenguajes de
programación
 Herramientas de diseño e ingeniería
 Juegos
 ...

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.19
La programación: resolución de problemas

 Un programa es una secuencia de instrucciones con un propósito


Tema 1
concreto que un ordenador puede interpretar y ejecutar
Introducción:
El Hardware
 Programar es resolver problemas
Lenguajes y  Conjunto de actividades implicadas en la descripción, el desarrollo y la
Programas
implementación eficaz de soluciones algorítmicas a problemas bien
especificados
Ingeniería del
Software

Descripción de
Algoritmo 1. m. Conjunto ordenado y finito de operaciones que permite
lenguajes de hallar la solución de un problema.
programación
(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)

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.20
La programación: resolución de problemas (cont.)

Tema 1  Utilizamos los lenguajes de programación para expresar los


Introducción: algoritmos de forma que el ordenador los entienda
El Hardware
 De igual forma, que utilizamos la lengua castellana para
Lenguajes y
Programas expresar nuestras ideas a otras personas

 Recuerda: Programar BIEN no es sólo conocer la


Ingeniería del
Software

Descripción de
lenguajes de sintaxis de uno o varios lenguajes de programación
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 (cont.)

Tema 1
 El problema del montón de fichas
Introducción:
El Hardware
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
Lenguajes y nacimiento, dirección, número de teléfono). Las fichas están ordenadas
Programas
alfabéticamente por el nombre.
Ingeniería del
Software Creamos una nueva ficha y deseamos incorporarla al montón existente.
Descripción de ¿Cómo dividimos el montón original en dos montones, tales que todas las
lenguajes de
programación 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?

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.22
El Ciclo de Vida del Software

Tema 1  Todas las tareas a realizar desde que se concibe un


Introducción: programa hasta que se deja de utilizar (no sólo “hasta que se
El Hardware
codifica” ni “hasta que se instala”)
Lenguajes y
Programas  Existen distintos modelos del ciclo de vida software, aunque
Ingeniería del
nosotros estudiaremos el más simple: Modelo en Cascada
Software

Descripción de
lenguajes de
programación

Análisis

Diseño

Implementación

Pruebas

Mantenimiento
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.23
¿Qué significa todo esto?

Casa Software
¿Qué tiene que hacer
“Quiero 3 habitaciones, Análisis exactamente nuestro
2 baños, garaje...” programa?
¿Cómo vamos a organizar
Planos, diseño circuito
eléctrico y de agua...
Diseño el programa? ¿Qué partes
tendrá y cómo funcionará?

Se construye la casa Se construye el software


Implementación

Se comprueba la solidez de la Ponemos a prueba nuestro


estructura, el funcionamiento de programa, incluso en
las instalaciones, el acabado...
Pruebas situaciones límite

Algunas reparaciones, se cierra Pequeñas modificaciones o


la terraza, se instala aire Mantenimiento correcciones (parches),
acondicionado... actualizaciones, etc...

1.24
Fases en el desarrollo de una aplicación (cont.)

Tema 1  Análisis
Introducción:
El Hardware
 Actividad en la que se analizan y clarifican los diferentes
aspectos del problema que debe ser resuelto por la aplicación,
Lenguajes y
Programas
con el fin de establecer claramente qué debe ser construido
Ingeniería del
 El resultado es, normalmente, un documento de requisitos
Software software que especifica claramente las funcionalidades de la
Descripción de aplicación
lenguajes de
programación
 Funcionalidad = lo que tiene que hacerse (sin saber
todavía cómo)

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.25
Fases en el desarrollo de una aplicación (cont.)

Tema 1  Diseño
Introducción:
El Hardware
 Actividad en la que se decide la organización y la estructura de
una aplicación que satisfaga los diferentes requisitos
Lenguajes y
Programas
establecidos en la fase de análisis
Ingeniería del
 El resultado es uno (o varios) documentos de diseño que
Software especifican claramente cómo construir la aplicación
Descripción de
lenguajes de
 Mientras que el análisis se ocupa de qué hay que hacer, el
programación
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

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.)

Tema 1  Implementación
Introducción:
El Hardware
 Actividad en la que se construye (codifica) la aplicación
utilizando un lenguaje de programación concreto, y siguiendo,
Lenguajes y
Programas
las directrices marcadas por los documentos de diseño
Ingeniería del
 Si las actividades anteriores han sido realizadas correctamente,
Software la fase de implementación debería ser bastante trivial
Descripción de
lenguajes de
 La implementación se encarga de concretar el diseño teniendo
programación
en cuenta un lenguaje y herramienta de desarrollo concreta

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.)

Tema 1  Pruebas
Introducción:
El Hardware
 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
Lenguajes y
Programas

Ingeniería del
que en su implementación!)
Software
 Dos pasos diferenciados
 Verificación: ¿Se ajusta la aplicación construida a los
Descripción de
lenguajes de

requisitos establecidos?
programación

 Validación: ¿Resuelve la aplicación el problema que


realmente tenía el usuario?

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.)

Tema 1  Mantenimiento
Introducción:
El Hardware
 Actividad en la que la aplicación se modifica para satisfacer
cambios o ampliaciones en los requisitos del usuario, corregir
Lenguajes y
Programas
errores, etc.
Ingeniería del
 ¡Es la actividad más costosa en el desarrollo de software!
Software (Tened en cuenta que hay programas que están muchos años
Descripción de en funcionamiento y lo usan miles de personas)
lenguajes de
programación
 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
 ...

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.)

Tema 1  Este Modelo en Cascada, tan lineal, no suele aplicarse “tal


Introducción: cual” en la vida real
El Hardware
 Conviene hacer pruebas desde las primeras fases de desarrollo,
Lenguajes y
Programas por ejemplo para detectar y corregir errores prematuros, etc.
Ingeniería del
 Los programas suelen construirse en varias iteraciones
Software
(sacando primero una versión básica, luego otra con más
Descripción de
lenguajes de
funcionalidad añadida, etc.)
programación
 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

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.30
Lenguajes de programación

Tema 1  Un lenguaje de programación puede describirse a tres niveles


Introducción: distintos:
El Hardware
 Nivel sintáctico
Lenguajes y
Programas  Descripción de la forma (= sintaxis) de las instrucciones
Ingeniería del  Suelen utilizarse lenguajes artificiales con mucho
“formalismo” (= rigor matemático y lógico)
Software

Descripción de
lenguajes de  Nivel semántico
programación
 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…

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.31
Sintaxis de los lenguajes de programación

Tema 1  Conjunto de reglas que especifican y permiten verificar la


Introducción: corrección formal de las sentencias de un lenguaje
El Hardware

Lenguajes y
Programas

Ingeniería del  Formalismos utilizados:


Software
 Notación BNF (Backus-Naur Form)
Descripción de
lenguajes de
programación
 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

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.32
Notación BNF

Tema 1
 TERMINAL Símbolo (ej. una palabra) del lenguaje a definir
(se escribe en letras mayúsculas)
Introducción:
El Hardware

Lenguajes y  <no terminal> Símbolo que se define en términos de otros


Programas
símbolos (tanto terminales como no terminales)
Ingeniería del (se escribe en letras minúsculas y entre <>)
Software

Descripción de
lenguajes de  Regla de producción Descripción de un símbolo no terminal como
programación
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)

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.33
Notación BNF (cont.)

Tema 1

Introducción:  Sintaxis de los números enteros positivos en notación BNF


El Hardware
<numero entero> ::= <signo opcional> <secuencia dígitos>
Lenguajes y
Programas <signo opcional> ::= + | <nada>
<secuencia dígitos> ::= <dígito> | <dígito> <secuencia dígitos>
Ingeniería del
Software <dígito> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Descripción de <nada> ::=
lenguajes de
programación

Recursividad
Que un símbolo aparezca dentro de su propia definición
¡OJO! Pero evitando las definiciones circulares

 ¿Sintaxis de los números reales en notación BNF?

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.34
Notación EBNF

Tema 1  Añade metasímbolos nuevos y cambia la forma de presentar


Introducción: las cosas
El Hardware

Lenguajes y
Programas
BNF EBNF

Ingeniería del TERMINAL “terminal”


Software

Descripción de <no terminal> No-terminal


lenguajes de
programación
Metasímbolo Metasímbolo
::= Equivalencia ::= Equivalencia
| Alternativa | Alternativa
(...) Agrupación
[...] Aparición opcional
{...} Aparición 0, 1 o más veces

Recursividad permitida 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’

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.35
Notación EBNF (cont.)

Tema 1

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


El Hardware

Numero-entero ::= [Signo] Secuencia-dígitos


Lenguajes y
Programas

Ingeniería del Signo ::= “+”


Secuencia-dígitos ::= Dígito {Dígito}
Software

Dígito ::= “0” | “1” | “2” | “3” | “4” | “5” | “6” | “7” | “8” | “9”
Descripción de
lenguajes de
programación

 ¿Sintaxis de los números reales en notación EBNF?

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.36
Diagramas sintácticos

Tema 1

Introducción:
El Hardware

Lenguajes y
Programas
TERMINAL No Terminal
Ingeniería del *En las reglas de producción el no terminal
Software de la izquierda se deja sin recuadro
Descripción de
lenguajes de
programación

Alternativa

Aparición 0, 1 o más veces Aparición opcional

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.37
Diagramas sintácticos (cont.)

Tema 1  Sintaxis de los números enteros positivos en notación de


Introducción: diagramas sintácticos
El Hardware

Lenguajes y
Programas
Nº entero positivo
Dígito
Ingeniería del
Software Dígito
+
Descripción de
lenguajes de
programación

0
Dígito
1

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

Introducción a la Programación
Ingeniería Técnica en Informática de Gestión 1.38
Críticas, dudas, sugerencias…

Federico Peinado
www.federicopeinado.es

1.39

También podría gustarte