Вы находитесь на странице: 1из 40

Introduccin a la Programacin

Tema 1:
Conceptos bsicos de programacin

Profesor
Lic. Hctor Lpez Snchez
Instituto de Educacin Superior Pedaggico Pblico Gamaniel Blanco Murillo
CARRERA PROFESIONAL: COMPUTACIN E INFORMTICA
V SEMESTRE -2014

Qu es la Informtica

Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Informtica (Del fr. informatique). 1. f. Conjunto de


conocimientos cientficos y tcnicas que hacen
posible el tratamiento automtico de la informacin
por medio de ordenadores.
(Extrado del Diccionario de la RAE, 2001)

Un poco de historia...

Introduccin a la Programacin
Lenguaje de Programacin V

baco 2000 a.c.


El sumador de Pascal mediados s. XVII
La calculadora de G.W. von Leibniz finales s. XVII
La mquina de diferencias de Babbage s. XIX
Concepto de programa externo
1945: Comienzo de la era de la Informtica
Modelo J. von Neumann: estructura de la
computadora tal y como la conocemos hoy;
concepto de programa interno
Coincide con el desarrollo de la electrnica

1.2

Qu es la Informtica

Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Ms sobre la Historia de la
Informtica en el MIGS
http://www.fdi.ucm.es/migs
Introduccin a la Programacin
Lenguaje de Programacin V

1.3

Qu es una computadora
Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Computadora electrnica 1. f. Mquina electrnica


digital, dotada de una memoria de gran capacidad y
de mtodos de tratamiento de la informacin, capaz
de resolver problemas matemticos y lgicos
mediante la utilizacin automtica de programas
informticos.

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
informticas para ejecutar
ciertas tareas en una
computadora.

(Extrado del Diccionario de la RAE, 2001)

Fundamentos de computadores

Introduccin a la

programacin
Introduccin a la Programacin
Lenguaje de Programacin V

1.4

Un poco de hardware
Tema 1

Dispositivo de salida

Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software

Carcasa (tipo torre)

Monitor

Descripcin de
lenguajes de
programacin

Unidad
de CD-ROM

Unidad Central
de Procesamiento

Unidad
de disquetes
Memoria principal
(ambos dentro)
y Unidad de Disco
Duro

Memori
a

Teclado
Ratn

Dispositivos de
entrada
Introduccin a la Programacin
Lenguaje de Programacin V

Memoria
secundaria

1.5

Un poco de hardware: el Modelo Von Neumann


Tema 1
Introduccin:
El Hardware

Unidad Central de Procesamiento


(CPU)
Unidad de Control

Lenguajes y
Programas

Unidad AritmticoLgica

Ingeniera del
Software

Unidad de Memoria

Descripcin de
lenguajes de
programacin

Ideas importantes:
Un programa es una cadena secuencial de instrucciones
Las instrucciones ordenan al ordenador realizar una
operacin 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
Introduccin a la Programacin
Lenguaje de Programacin V

1.6

Un poco de hardware: la Unidad de Memoria (UM)


Tema 1

Almacena las instrucciones y los datos del programas

Introduccin:
El Hardware

Selector

Lenguajes y
Programas
Ingeniera del
Software

Registro de Direccin (RD)

Descripcin de
lenguajes de
programacin

Registro de Intercambio
de Datos (RID)
UM

Introduccin a la Programacin
Lenguaje de Programacin V

...

Celdas

El almacn est formado por celdas


Identificadas unvocamente por su
direccin
Siempre contienen informacin
Se puede leer o escribir informacin en
ellas
1.7

Un poco de hardware: la Unidad Aritmtico-Lgica (UAL)


Tema 1
Introduccin:
El Hardware

Realiza las operaciones elementales aritmticas (suma,


resta, multiplicacin, divisin, etc.) y lgicas (comparaciones
de igualdad, mayor, menor, etc.)

Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Banco de Registros
Temporales (BRT)

Operador

Acumulador

Introduccin a la Programacin
Lenguaje de Programacin V

UAL

1.8

Un poco de hardware: la Unidad de Control (UC)


Tema 1
Introduccin:
El Hardware

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

Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Secuenciador
Decodificador

Contador de Programa (CP)

Registro de Instruccin
(RI)
Operacin
operandos

Direcciones de 3

UC

Introduccin a la Programacin
Lenguaje de Programacin V

1.9

Ejecucin de una instruccin


Los pasos del ciclo de instruccin segn Von Neumann

Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas

El CP indica la direccin de la celda donde est


la instruccin que se debe copiar al RI
LEER
INSTRUCCIN

Ingeniera del
Software
Descripcin de
lenguajes de
programacin

El operando del RI (que puede ser un dato o


la direccin de la celda de un dato) se copia en el BRT
(Esto se repite para todos los operandos de entrada)

DECODIFICAR
INSTRUCCIN

CAPTURAR
DATOS

REALIZAR
OPERACIN
CALCULAR
INSTRUCCIN
SIGUIENTE

ALMACENAR
RESULTADOS

La direccin de celda de la
siguiente instruccin se copia al CP
El resultado del Acumulador se copia en la direccin de la celda
del resultado, generalmente indicada en el ltimo operando de la instruccin
(Esto se repite para todos los resultados)
Introduccin a la Programacin
Lenguaje de Programacin V

Ejecucin de una instruccin (cont.)


Operacin: SUMA-CELDAS

Operando 1: X

Operando 2: Y

Operando 3: Z

SUMA-CELDAS suma el dato de la primera direccin al de la segunda y lo guarda en


la tercera

Explicacin en

PIZARRA
1.11

Qu entiende la computadora?
Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas

La computadora manipula nicamente informacin


digital:
Datos e instrucciones se codifican como
dgitos binarios (0s y 1s)

Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Por qu no se usa una representacin de otro tipo?


Problema tecnolgico (es ms fcil representar ceros y
unos)

A qu nos conduce la solucin adoptada para evitar


el problema tecnolgico?
La mquina slo puede trabajar con cadenas de ceros y
unos
Introduccin a la Programacin
Lenguaje de Programacin V

1.12

Lenguaje mquina
Tema 1
Introduccin:
El Hardware

Pasos

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

sumar b y c, y guardar el resultado en una direccin de


memoria temporal X
sumar d y e, y guardar el resultado en una direccin de
memoria temporal Y
dividir el contenido de X por el de Y y guardar el resultado en la
direccin de memoria de a

Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Ejemplo de cdigo mquina


codigoOp direccOp1 direccOp2 direccRes
Cdigo de la suma

Direcc. Temporal X

0000 00001000 00001100 00001110


0000 00011000 00011100 00011110
Direcc. Temporal Y
0101 00011110 00001110 00000100
Cdigo de la divisin

Introduccin a la Programacin
Lenguaje de Programacin V

1.13

Lenguaje mquina (cont.)


Tema 1

Inconvenientes

Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Introduccin a la Programacin
Lenguaje de Programacin V

Grandes posibilidades de error


Portabilidad: mquina-dependiente
No se puede llevar el programa a otra mquina
porque, entre otras cosas, el repertorio de
instrucciones es distinto
Tedioso
Nula capacidad de abstraccin
Es muy complicado formular una solucin a
problemas del mundo real con ese lenguaje tan
especfico

1.14

Lenguaje ensamblador
Tema 1
Introduccin:
El Hardware

Lenguaje simblico con una mnima capacidad de


abstraccin

Nombres nemotcnicos para los cdigos de operacin


Nombres simblicos para las direcciones de memoria

Lenguajes y
Programas
Ingeniera del
Software

Ejemplo de instruccin de cdigo ensamblador

Descripcin de
lenguajes de
programacin

codigoSimbOp direccSimbOp1, direccSimbOp2, direccSimbRes

Cdigos simblicos de las operaciones

SUM = La suma
DIV = La divisin
a = (b + c)/(d + e)
SUM B, C, X
SUM D, E, Y
DIV
Introduccin a la Programacin
Lenguaje de Programacin V

X, Y, A
1.15

Lenguaje ensamblador (cont.)


Tema 1

Cuestiones
Cmo entiende la mquina el lenguaje ensamblador?
Si las direcciones de memoria son simblicas en qu
direcciones de memoria se colocan los datos?

Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Cdigo fuente
(lenguaje
ensamblador)

Programa
ensamblador

Cdigo objeto
(lenguaje
mquina)

Programa ensamblador
Traduccin a cdigo binario de cdigos simblicos de
operacin
Traduccin de las direcciones simblicas a direcciones
reales de memoria

Inconveniente: sigue siendo dependiente de la


mquina
Introduccin a la Programacin
Lenguaje de Programacin V

1.16

Lenguajes de alto nivel


Tema 1
Introduccin:
El Hardware

Lenguaje que permite representar el mecanismo de


resolucin de los problemas usando instrucciones
independientemente de la computadora
Cercana conceptual al programador
Pascal, C, Java, etc. son lenguajes de alto nivel

Lenguajes y
Programas
Ingeniera del
Software

Capacidad de abstraccin
Abstraccin procedimental (poder representar
operaciones ms complejas como calcular las races de
un polinomio)
Abstraccin de datos (poder representar informacin
ms compleja como el estado de una cuenta bancaria)

Descripcin de
lenguajes de
programacin

Cmo conseguir que la computadora entienda los


programas escritos en lenguajes de alto nivel?
Intrprete
Analiza el programa fuente y lo ejecuta directamente en la mquina

Compilador
Analiza el programa fuente y lo traduce a lenguaje mquina
Ej. Turbo Pascal es un compilador de Pascal
Introduccin a la Programacin
Lenguaje de Programacin V

1.17

El sistema operativo
Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas

Programa bsico encargado de manejar el hardware y


facilitar el trabajo a los dems programas
(aplicaciones) proporcionndoles un conjunto de
servicios genricos
Asignacin de tiempos de CPU
Control y asignacin racional de los recursos de la
computadora
Ejecucin de programas
Controlar la E/S (ej., almacenar/recuperar en/de
memoria permanente)
Control de errores y proteccin (ej., monitorizar la
ejecucin de un programa)
Interfaz con el usuario
...

Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Sin sistema operativo todo sera mucho ms


complicado!
Introduccin a la Programacin
Lenguaje de Programacin V

1.18

El sistema operativo (cont.)


Tema 1

Quin ejecuta el sistema operativo?

Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Introduccin a la Programacin
Lenguaje de Programacin V

Las computadoras suelen estar preparadas para, al


arrancar, ejecutar un pequeo 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

1.19

Aplicaciones de propsito especfico


Tema 1
Introduccin:
El Hardware

Programas que permite en uso de la computadora


para la realizacin de trabajos especficos y que se
implantan sobre el sistema operativo

Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Introduccin a la Programacin
Lenguaje de Programacin V

Procesadores de texto
Hojas de clculo
Sistemas de gestin de bases de datos
Herramientas de diseo e ingeniera
Juegos
...

1.20

La programacin: resolucin de problemas


Tema 1
Introduccin:
El Hardware

Un programa es una secuencia de instrucciones con un propsito


concreto que un ordenador puede interpretar y ejecutar

Programar es resolver problemas

Conjunto de actividades implicadas en la descripcin, el


desarrollo y la implementacin eficaz de soluciones
algortmicas a problemas bien especificados

Lenguajes y
Programas
Ingeniera del
Software

Algoritmo 1. m. Conjunto ordenado y finito de operaciones que


permite hallar la solucin de un problema.

Descripcin de
lenguajes de
programacin

(Extrado del Diccionario de la RAE, 22 edicin)

Un algoritmo es, por tanto, una sistemtica que transforma


un estado inicial en un estado final
La entrada del programa: Precondiciones
Descripcin del estado inicial (datos y situacin de partida)
La salida del programa: Postcondiciones
Descripcin del estado final (datos y situacin deseada al
acabar)

Introduccin a la Programacin
Lenguaje de Programacin V

1.21

La programacin: resolucin de problemas (cont.)


Tema 1
Introduccin:
El Hardware

Utilizamos los lenguajes de programacin para


expresar los algoritmos de forma que el ordenador los
entienda

Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

De igual forma, que utilizamos la lengua castellana para


expresar nuestras ideas a otras personas

Recuerda: Programar BIEN no es slo


conocer la sintaxis de uno o varios lenguajes
de programacin

Introduccin a la Programacin
Lenguaje de Programacin V

1.22

La programacin: resolucin de problemas (cont.)


Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

El problema del montn de fichas


Supongamos que tenemos un montn de fichas, cada una de las
cuales tiene escrito el nombre de una persona junto con otros datos
personales (fecha de nacimiento, direccin, nmero de telfono).
Las fichas estn ordenadas alfabticamente por el nombre.
Creamos una nueva ficha y deseamos incorporarla al montn
existente.
Cmo dividimos el montn original en dos montones, tales que
todas las fichas del primer montn precedan a la nueva en la
ordenacin y todas las del segundo no le precedan, pudiendo estar
alguno de los montones finales vaco?

Cules son las precondiciones?


Cules son las postcondiciones?
Qu algoritmos se te ocurren?
Qu lenguaje utilizamos para describir todo lo anterior?

Explicacin en

PIZARRA
Introduccin a la Programacin
Lenguaje de Programacin V

1.23

El Ciclo de Vida del Software


Tema 1
Introduccin:
El Hardware

Todas las tareas a realizar desde que se concibe un


programa hasta que se deja de utilizar (no slo hasta que se
codifica ni hasta que se instala)

Lenguajes y
Programas

Existen distintos modelos del ciclo de vida software, aunque


nosotros estudiaremos el ms simple: Modelo en Cascada

Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Anlisis
Diseo
Implementacin
Pruebas
Mantenimiento
Introduccin a la Programacin
Lenguaje de Programacin V

1.24

Qu significa todo esto?

Casa
Quiero 3 habitaciones,
2 baos, garaje...
Planos, diseo circuito
elctrico 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...

Software
Anlisis
Diseo
Implementacin

Qu tiene que hacer


exactamente nuestro
programa?
Cmo vamos a organizar
el programa? Qu
partes tendr y cmo
funcionar?
Se construye el software

Pruebas

Ponemos a prueba nuestro


programa, incluso en
situaciones lmite

Mantenimiento

Pequeas modificaciones o
correcciones (parches),
actualizaciones, etc...

1.25

Fases en el desarrollo de una aplicacin (cont.)


Tema 1

Anlisis

Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Introduccin a la Programacin
Lenguaje de Programacin V

Actividad en la que se analizan y clarifican los diferentes


aspectos del problema que debe ser resuelto por la
aplicacin, 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 aplicacin
Funcionalidad = lo que tiene que hacerse (sin
saber todava cmo)

1.26

Fases en el desarrollo de una aplicacin (cont.)


Tema 1

Diseo

Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Introduccin a la Programacin
Lenguaje de Programacin V

Actividad en la que se decide la organizacin y la


estructura de una aplicacin que satisfaga los diferentes
requisitos establecidos en la fase de anlisis
El resultado es uno (o varios) documentos de diseo que
especifican claramente cmo construir la aplicacin
Mientras que el anlisis se ocupa de qu hay que hacer,
el diseo se ocupa de cmo hacerlo
Hay varias tcnicas de diseo, nosotros estudiaremos
una de las ms bsicas: el diseo funcional

1.27

Fases en el desarrollo de una aplicacin (cont.)


Tema 1

Implementacin

Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Introduccin a la Programacin
Lenguaje de Programacin V

Actividad en la que se construye (codifica) la aplicacin


utilizando un lenguaje de programacin concreto, y
siguiendo, las directrices marcadas por los documentos
de diseo
Si las actividades anteriores han sido realizadas
correctamente, la fase de implementacin debera ser
bastante trivial
La implementacin se encarga de concretar el diseo
teniendo en cuenta un lenguaje y herramienta de
desarrollo concreta

1.28

Fases en el desarrollo de una aplicacin (cont.)


Tema 1

Pruebas

Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Introduccin a la Programacin
Lenguaje de Programacin V

Actividad en la que se asegura que la aplicacin


construida satisface los requisitos del usuario
Se debe invertir mucho tiempo en hacer pruebas
(mucho ms que en su implementacin!)
Dos pasos diferenciados
Verificacin: Se ajusta la aplicacin construida a los
requisitos establecidos?
Validacin: Resuelve la aplicacin el problema que
realmente tena el usuario?

1.29

Fases en el desarrollo de una aplicacin (cont.)


Tema 1

Mantenimiento
Actividad en la que la aplicacin se modifica para
satisfacer cambios o ampliaciones en los requisitos del
usuario, corregir errores, etc.
Es la actividad ms costosa en el desarrollo de
software!
(Tened en cuenta que hay programas que estn muchos
aos en funcionamiento y lo usan miles de personas)
Estos costes pueden aliviarse si se hacen bien todo lo
anterior

Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

*Otras actividades

Introduccin a la Programacin
Lenguaje de Programacin V

Confeccin de los manuales de usuario


Planificacin y control del proyecto
Gestin de versiones
...

1.30

Fases en el desarrollo de una aplicacin (cont.)


Tema 1
Introduccin:
El Hardware

Este Modelo en Cascada, tan lineal, no suele


aplicarse tal cual en la vida real

Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Introduccin a la Programacin
Lenguaje de Programacin V

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 versin bsica, luego otra con
ms funcionalidad aadida, etc.)
Cada iteracin es un ciclo completo (anlisis, diseo,
pruebas, etc.), siendo el diseo ms importante en
las primeras y la implementacin ms importante en
las ltimas

1.31

Lenguajes de programacin
Tema 1
Introduccin:
El Hardware

Un lenguaje de programacin puede describirse a tres


niveles distintos:

Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Introduccin a la Programacin
Lenguaje de Programacin V

Nivel sintctico
Descripcin de la forma (= sintaxis) de las
instrucciones
Suelen utilizarse lenguajes artificiales con mucho
formalismo (= rigor matemtico y lgico)
Nivel semntico
Descripcin del significado (= semntica) de las
instrucciones
Puede utilizarse lenguaje natural (espaol, ingls,
etc.) o intentar expresarse de manera ms formal
Nivel pragmtico
Descripcin de cmo se utilizan las instrucciones
Suelen utilizarse tutoriales y ejemplos de
programas

1.32

Sintaxis de los lenguajes de programacin


Tema 1
Introduccin:
El Hardware

Conjunto de reglas que especifican y permiten


verificar la correccin formal de las sentencias de un
lenguaje

Lenguajes y
Programas
Ingeniera del
Software

Formalismos utilizados:
Notacin BNF (Backus-Naur Form)
Notacin EBNF (Extended Backus-Naur Form)
Diagramas sintcticos

Descripcin de
lenguajes de
programacin

Todos ellos pueden expresar la forma de cualquier


lenguaje de programacin, slo hay que elegir el que
nos sea cmodo
Estos formalismos se usan para escribir documentacin
tcnica que leen quienes quieren conocer con exactitud
un lenguaje

Introduccin a la Programacin
Lenguaje de Programacin V

1.33

Notacin BNF
TERMINAL

Tema 1
Introduccin:
El Hardware

Smbolo (ej. una palabra) del lenguaje a definir


(se escribe en letras maysculas)

<no terminal> Smbolo que se define en trminos de otros


smbolos (tanto terminales como no terminales)
(se escribe en letras minsculas y entre <>)

Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Regla de produccin Descripcin de un smbolo no terminal


como
equivalente a 1) una combinacin de terminales
y no terminales, o 2) al vaco ()
(Un mismo no terminal puede tener varias reglas de
produccin)
Metasmbolo
reservado
smbolo

Introduccin a la Programacin
Lenguaje de Programacin V

Smbolo propio de la notacin BNF, est


y no puede utilizarse en ningn otro
::=
Equivalencia
(lo de la izquierda equivale a lo de la
derecha; es una regla de produccin)
| Alternativa
1.34
(lo de la izquierda o lo de la derecha)

Notacin BNF (cont.)


Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Sintaxis de los nmeros enteros positivos en notacin


BNF
<numero entero> ::= <signo opcional> <secuencia dgitos>
<signo opcional> ::= + | <nada>
<secuencia dgitos> ::= <dgito> | <dgito> <secuencia
dgitos>
<dgito> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Recursivida
<nada> ::=
d
Que un smbolo aparezca dentro de su propia definicin
OJO! Pero evitando las definiciones circulares

Explicacin
Sintaxis de los nmeros reales en notacin
BNF? en

PIZARRA

Introduccin a la Programacin
Lenguaje de Programacin V

1.35

Notacin EBNF
Tema 1
Introduccin:
El Hardware

Aade metasmbolos nuevos y cambia la forma de


presentar las cosas

Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

BNF

EBNF

TERMINAL

terminal

<no terminal>

No-terminal

Metasmbolo
::= Equivalencia
|Alternativa

Metasmbolo
::=
Equivalencia
|
Alternativa
(...) Agrupacin
[...] Aparicin opcional
{...}
Aparicin 0, 1 o ms
veces

Recursividad permitida
Recursividad NO permitida (se suple con
{})

Introduccin a la Programacin
Lenguaje de Programacin V

Si algn smbolo del lenguaje coincide con


un metasmbolo, el smbolo del lenguaje
se pone entre comillas simples
1.36

Notacin EBNF (cont.)


Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas
Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Sintaxis de los nmeros enteros positivos en notacin


EBNF
Numero-entero ::= [Signo] Secuencia-dgitos
Signo ::= +
Secuencia-dgitos ::= Dgito {Dgito}
Dgito ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9

Sintaxis de los nmeros reales en notacin EBNF?

Explicacin en

PIZARRA
Introduccin a la Programacin
Lenguaje de Programacin V

1.37

Diagramas sintcticos
Tema 1
Introduccin:
El Hardware

TERMINAL

Lenguajes y
Programas

No Terminal
*En las reglas de produccin el no terminal
de la izquierda se deja sin recuadro

Ingeniera del
Software
Descripcin de
lenguajes de
programacin

Alternativa

Aparicin 0, 1 o ms veces

Introduccin a la Programacin
Lenguaje de Programacin V

Aparicin opcional

1.38

Diagramas sintcticos (cont.)


Tema 1
Introduccin:
El Hardware
Lenguajes y
Programas

Sintaxis de los nmeros enteros positivos en notacin


de diagramas sintcticos
N entero positivo
Dgito

Ingeniera del
Software

Descripcin de
lenguajes de
programacin

Dgito

Dgito

0
1

Sintaxis de los nmeros reales en notacin de


diagramas sintcticos?
Explicacin en

PIZARRA
Introduccin a la Programacin
Lenguaje de Programacin V

1.39

Crticas, dudas, sugerencias

Federico Peinado
www.federicopeinado.es

1.40