SlideShare una empresa de Scribd logo
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
Introducción:
El Hardware
Lenguajes y
Programas

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

Ingeniería del
Software
Descripción de
lenguajes de
programación

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

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
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

 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.


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.

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

Fundamentos de computadores
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión

Introducción a la programación

1.3
Un poco de hardware
Dispositivo de salida

Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software

Carcasa (tipo torre)

Monitor

Descripción de
lenguajes de
programación

Unidad
de CD-ROM

Unidad Central
de Procesamiento

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

Memori
a

Teclado
Ratón

Dispositivos de
entrada
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión

Memoria
secundaria

1.4
Un poco de hardware: el Modelo Von Neumann
Tema 1

Unidad Central de Procesamiento (CPU)

Introducción:
El Hardware
Lenguajes y
Programas

Unidad de Control

Unidad Aritmético-Lógica

Ingeniería del
Software

Unidad de Memoria

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

Selector

Lenguajes y
Programas

Registro de Dirección (RD)

Ingeniería del
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
Introducción:
El Hardware

 Realiza las operaciones elementales aritméticas (suma,
resta, multiplicación, división, etc.) y lógicas (comparaciones
de igualdad, mayor, menor, etc.)

Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

Banco de Registros
Temporales (BRT)

Operador

Acumulador

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

UAL

1.7
Un poco de hardware: la Unidad de Control (UC)
Tema 1
Introducción:
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
Ingeniería del
Software

Secuenciador

Descripción de
lenguajes de
programación

Decodificador

Contador de Programa (CP)

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
 Los pasos del ciclo de instrucción según Von Neumann

Tema 1
Introducción:
El Hardware
Lenguajes y
Programas

El CP indica la dirección de la celda donde está
la instrucción que se debe copiar al RI

Ingeniería del
Software

LEER
INSTRUCCIÓN

Descripción de
lenguajes de
programación

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)

DECODIFICAR
INSTRUCCIÓN

CAPTURAR
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
dígitos binarios (0’s y 1’s)

Ingeniería del
Software
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
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

 Pasos

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

 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
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
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

 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

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

1.13
Lenguaje ensamblador
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

 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

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

X, Y, A

1.14
Lenguaje ensamblador (cont.)
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas

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

Ingeniería del
Software
Descripción de
lenguajes de
programación

Código fuente
(lenguaje ensamblador)

Programa ensamblador

Código objeto
(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
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

 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
Introducción a la Programación
Ingeniería Técnica en Informática de Gestión

1.16
El sistema operativo
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

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

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

1.17
El sistema operativo (cont.)
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

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

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
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

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

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
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

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

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
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

 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

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
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

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

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
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería 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

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

“Quiero 3 habitaciones,
2 baños, garaje...”

Análisis

Planos, diseño circuito
eléctrico y de agua...

Diseño

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

¿Qué tiene que hacer
exactamente nuestro
programa?
¿Cómo vamos a organizar
el programa? ¿Qué partes
tendrá y cómo funcionará?

Implementación

Se construye el software

Pruebas

Ponemos a prueba nuestro
programa, incluso en
situaciones límite

Mantenimiento

Pequeñas modificaciones o
correcciones (parches),
actualizaciones, etc...

1.24
Fases en el desarrollo de una aplicación (cont.)
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

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

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
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

 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

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
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

 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

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
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

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

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
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

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

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
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

 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

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

1.30
Lenguajes de programación
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
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…

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
Introducción:
El Hardware

 Conjunto de reglas que especifican y permiten verificar la
corrección formal de las sentencias de un lenguaje

Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

 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

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

 <no terminal>

Símbolo que se define en términos de otros
símbolos (tanto terminales como no terminales)

Introducción:
El Hardware
Lenguajes y
Programas

(se escribe en letras minúsculas y entre <>)

Ingeniería del
Software
Descripción de
lenguajes de
programación

(se escribe en letras mayúsculas)

 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

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

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)

1.33
Notación BNF (cont.)
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

 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> ::=
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
Introducción:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programación

 Añade metasímbolos nuevos y cambia la forma de presentar
las cosas
BNF

EBNF

TERMINAL

“terminal”

<no terminal>

No-terminal

Metasímbolo
::= Equivalencia
|
Alternativa

Metasímbolo
::=
|
(...)
[...]
{...}

Recursividad permitida

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‟
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:
El Hardware
Lenguajes y
Programas
Ingeniería del
Software
Descripción de
lenguajes de
programació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?

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

TERMINAL

Lenguajes y
Programas

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

Ingeniería del
Software
Descripción de
lenguajes de
programación

Alternativa

Aparición 0, 1 o más veces

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

Aparición opcional

1.37
Diagramas sintácticos (cont.)
Tema 1
Introducción:
El Hardware
Lenguajes y
Programas

 Sintaxis de los números enteros positivos en notación de
diagramas sintácticos
Nº entero positivo
Dígito

Ingeniería del
Software

Dígito

+

Descripción de
lenguajes de
programación

Dígito

0
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

Más contenido relacionado

La actualidad más candente

Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
juan1993are
 
Lab algoritmos 1
Lab algoritmos 1Lab algoritmos 1
Lab algoritmos 1
junior zamora
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
guestda6ef91
 
5154 Tema3 Jose Rojas
5154 Tema3 Jose Rojas5154 Tema3 Jose Rojas
5154 Tema3 Jose Rojas
Jose Rojas
 
Lenguaje de programacióndiapost1.
Lenguaje de programacióndiapost1.Lenguaje de programacióndiapost1.
Lenguaje de programacióndiapost1.Dominga Quispe Diaz
 
Consulta conceptos basicos del computador
Consulta conceptos basicos del computadorConsulta conceptos basicos del computador
Consulta conceptos basicos del computadorAndre Leal
 
Introducción a la ing sistemas
Introducción a la ing sistemasIntroducción a la ing sistemas
Introducción a la ing sistemasviviana19s
 
Jhinet fernanda
Jhinet fernandaJhinet fernanda
Jhinet fernanda
JHINETA
 
informatica basica
informatica basicainformatica basica
informatica basica
WILHUM Duacib
 
Slideshard deisy
Slideshard deisySlideshard deisy
Slideshard deisy
Deiizy Garciia
 
Iats practicas 1
Iats practicas 1Iats practicas 1
Iats practicas 1
David Quirantes Sierra
 
Entrada
EntradaEntrada
Entrada
jablotol
 

La actualidad más candente (17)

Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Lenguaje ensamblador
Lenguaje ensambladorLenguaje ensamblador
Lenguaje ensamblador
 
Informática elemental
Informática elemental Informática elemental
Informática elemental
 
PIPPIN
PIPPINPIPPIN
PIPPIN
 
Lab algoritmos 1
Lab algoritmos 1Lab algoritmos 1
Lab algoritmos 1
 
Ensamblador
EnsambladorEnsamblador
Ensamblador
 
5154 Tema3 Jose Rojas
5154 Tema3 Jose Rojas5154 Tema3 Jose Rojas
5154 Tema3 Jose Rojas
 
Lenguaje de programacióndiapost1.
Lenguaje de programacióndiapost1.Lenguaje de programacióndiapost1.
Lenguaje de programacióndiapost1.
 
Consulta conceptos basicos del computador
Consulta conceptos basicos del computadorConsulta conceptos basicos del computador
Consulta conceptos basicos del computador
 
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
 
Informatica tema1.
Informatica tema1.Informatica tema1.
Informatica tema1.
 
Jhinet fernanda
Jhinet fernandaJhinet fernanda
Jhinet fernanda
 
informatica basica
informatica basicainformatica basica
informatica basica
 
Slideshard deisy
Slideshard deisySlideshard deisy
Slideshard deisy
 
Iats practicas 1
Iats practicas 1Iats practicas 1
Iats practicas 1
 
Entrada
EntradaEntrada
Entrada
 

Similar a Conceptos basicos de programacion

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
 
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
 
introduccion computadoras
introduccion computadorasintroduccion computadoras
introduccion computadoras
PiCeGo
 
Presentacion_Programacion.pptx
Presentacion_Programacion.pptxPresentacion_Programacion.pptx
Presentacion_Programacion.pptx
MaudilioMorales
 
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
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
DANTE ELVIS CACHI ALANOCA
 
Universidad De Los Andes
Universidad De Los AndesUniversidad De Los Andes
Universidad De Los Andesbarrios
 
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
 
02- Clase 1 - UD2 - Lenguajes.pdf
02- Clase 1 - UD2 -  Lenguajes.pdf02- Clase 1 - UD2 -  Lenguajes.pdf
02- Clase 1 - UD2 - Lenguajes.pdf
NancyHerrera88
 
IntroduccióN Al Xp 1
IntroduccióN Al Xp 1IntroduccióN Al Xp 1
IntroduccióN Al Xp 1
david ripoll navarro
 
Introducccion programacion
Introducccion programacionIntroducccion programacion
Introducccion programacionAnaisMar22
 

Similar a Conceptos basicos de programacion (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
 
Fp01
Fp01Fp01
Fp01
 
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
 
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
 
introduccion computadoras
introduccion computadorasintroduccion computadoras
introduccion computadoras
 
Introducción a la programación
Introducción a la programaciónIntroducción a la programación
Introducción a la programación
 
Presentacion_Programacion.pptx
Presentacion_Programacion.pptxPresentacion_Programacion.pptx
Presentacion_Programacion.pptx
 
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
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Miguillen recursos
Miguillen recursosMiguillen recursos
Miguillen recursos
 
Universidad De Los Andes
Universidad De Los AndesUniversidad De Los Andes
Universidad De Los Andes
 
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...
 
02- Clase 1 - UD2 - Lenguajes.pdf
02- Clase 1 - UD2 -  Lenguajes.pdf02- Clase 1 - UD2 -  Lenguajes.pdf
02- Clase 1 - UD2 - Lenguajes.pdf
 
IntroduccióN Al Xp 1
IntroduccióN Al Xp 1IntroduccióN Al Xp 1
IntroduccióN Al Xp 1
 
Introducccion programacion
Introducccion programacionIntroducccion programacion
Introducccion programacion
 

Más de Barbara brice?

Microorganismos de montaña
Microorganismos de montañaMicroorganismos de montaña
Microorganismos de montaña
Barbara brice?
 
El final de la vida. Trabajo Final del Nivel Intermedio del Experto de Fotogr...
El final de la vida. Trabajo Final del Nivel Intermedio del Experto de Fotogr...El final de la vida. Trabajo Final del Nivel Intermedio del Experto de Fotogr...
El final de la vida. Trabajo Final del Nivel Intermedio del Experto de Fotogr...
Barbara brice?
 
PROYECTO FINAL. Módulo Teoría del Diseño Gráfico II. Autor Yenisey Almeida
PROYECTO FINAL. Módulo Teoría del Diseño Gráfico II. Autor Yenisey Almeida PROYECTO FINAL. Módulo Teoría del Diseño Gráfico II. Autor Yenisey Almeida
PROYECTO FINAL. Módulo Teoría del Diseño Gráfico II. Autor Yenisey Almeida
Barbara brice?
 
Trabajo Final de Photoshop. Joel Montenegro
Trabajo Final de Photoshop. Joel MontenegroTrabajo Final de Photoshop. Joel Montenegro
Trabajo Final de Photoshop. Joel Montenegro
Barbara brice?
 
Consultoria
ConsultoriaConsultoria
Consultoria
Barbara brice?
 
Planeacion de Marketing
Planeacion de MarketingPlaneacion de Marketing
Planeacion de Marketing
Barbara brice?
 
Planeaciondemarketing
PlaneaciondemarketingPlaneaciondemarketing
Planeaciondemarketing
Barbara brice?
 
Flip card-03
Flip card-03Flip card-03
Flip card-03
Barbara brice?
 
Vision estrategica del posicionamiento
Vision estrategica del posicionamientoVision estrategica del posicionamiento
Vision estrategica del posicionamiento
Barbara brice?
 
Estrategia de Precio. Marketing Mix
Estrategia de Precio. Marketing MixEstrategia de Precio. Marketing Mix
Estrategia de Precio. Marketing Mix
Barbara brice?
 
Fases de la Auditoría en Sistemas
Fases de la Auditoría en SistemasFases de la Auditoría en Sistemas
Fases de la Auditoría en Sistemas
Barbara brice?
 
Introducción al Desarrollo de Software
Introducción al Desarrollo de SoftwareIntroducción al Desarrollo de Software
Introducción al Desarrollo de Software
Barbara brice?
 
Componentes internos y externos de una laptop
Componentes internos y externos de una laptopComponentes internos y externos de una laptop
Componentes internos y externos de una laptop
Barbara brice?
 
Gestion en memoria
Gestion en memoriaGestion en memoria
Gestion en memoria
Barbara brice?
 
Algoritmosplanificacin
AlgoritmosplanificacinAlgoritmosplanificacin
AlgoritmosplanificacinBarbara brice?
 
Microprocesador
MicroprocesadorMicroprocesador
Microprocesador
Barbara brice?
 
Algoritmosplanificacin
AlgoritmosplanificacinAlgoritmosplanificacin
AlgoritmosplanificacinBarbara brice?
 
Propuesta de macrodiseño
Propuesta de macrodiseñoPropuesta de macrodiseño
Propuesta de macrodiseño
Barbara brice?
 

Más de Barbara brice? (20)

Microorganismos de montaña
Microorganismos de montañaMicroorganismos de montaña
Microorganismos de montaña
 
El final de la vida. Trabajo Final del Nivel Intermedio del Experto de Fotogr...
El final de la vida. Trabajo Final del Nivel Intermedio del Experto de Fotogr...El final de la vida. Trabajo Final del Nivel Intermedio del Experto de Fotogr...
El final de la vida. Trabajo Final del Nivel Intermedio del Experto de Fotogr...
 
PROYECTO FINAL. Módulo Teoría del Diseño Gráfico II. Autor Yenisey Almeida
PROYECTO FINAL. Módulo Teoría del Diseño Gráfico II. Autor Yenisey Almeida PROYECTO FINAL. Módulo Teoría del Diseño Gráfico II. Autor Yenisey Almeida
PROYECTO FINAL. Módulo Teoría del Diseño Gráfico II. Autor Yenisey Almeida
 
Trabajo Final de Photoshop. Joel Montenegro
Trabajo Final de Photoshop. Joel MontenegroTrabajo Final de Photoshop. Joel Montenegro
Trabajo Final de Photoshop. Joel Montenegro
 
Consultoria
ConsultoriaConsultoria
Consultoria
 
Planeacion de Marketing
Planeacion de MarketingPlaneacion de Marketing
Planeacion de Marketing
 
Planeaciondemarketing
PlaneaciondemarketingPlaneaciondemarketing
Planeaciondemarketing
 
Flip card-03
Flip card-03Flip card-03
Flip card-03
 
Vision estrategica del posicionamiento
Vision estrategica del posicionamientoVision estrategica del posicionamiento
Vision estrategica del posicionamiento
 
Estrategia de Precio. Marketing Mix
Estrategia de Precio. Marketing MixEstrategia de Precio. Marketing Mix
Estrategia de Precio. Marketing Mix
 
Fases de la Auditoría en Sistemas
Fases de la Auditoría en SistemasFases de la Auditoría en Sistemas
Fases de la Auditoría en Sistemas
 
Introducción al Desarrollo de Software
Introducción al Desarrollo de SoftwareIntroducción al Desarrollo de Software
Introducción al Desarrollo de Software
 
Componentes internos y externos de una laptop
Componentes internos y externos de una laptopComponentes internos y externos de una laptop
Componentes internos y externos de una laptop
 
El microprocesador
El microprocesadorEl microprocesador
El microprocesador
 
Gestion en memoria
Gestion en memoriaGestion en memoria
Gestion en memoria
 
Algoritmosplanificacin
AlgoritmosplanificacinAlgoritmosplanificacin
Algoritmosplanificacin
 
Microprocesador
MicroprocesadorMicroprocesador
Microprocesador
 
Algoritmosplanificacin
AlgoritmosplanificacinAlgoritmosplanificacin
Algoritmosplanificacin
 
Propuesta de macrodiseño
Propuesta de macrodiseñoPropuesta de macrodiseño
Propuesta de macrodiseño
 
Plantilla power point
Plantilla power pointPlantilla power point
Plantilla power point
 

Último

La sábana santa un encuentro con laPasión del señor
La sábana santa un encuentro con laPasión del señorLa sábana santa un encuentro con laPasión del señor
La sábana santa un encuentro con laPasión del señor
xkqtb4p6gr
 
Portafolio final comunicación y expresión ll - ivan alarcon .pptx
Portafolio final comunicación y expresión ll - ivan alarcon .pptxPortafolio final comunicación y expresión ll - ivan alarcon .pptx
Portafolio final comunicación y expresión ll - ivan alarcon .pptx
ivandavidalarconcata
 
5.2 MODULO DE FOTOGRAFIA Medico Legal.pdf
5.2 MODULO DE FOTOGRAFIA Medico Legal.pdf5.2 MODULO DE FOTOGRAFIA Medico Legal.pdf
5.2 MODULO DE FOTOGRAFIA Medico Legal.pdf
ntraverso1
 
diagrama de flujo de hackeo de almeida edgar.pptx
diagrama de flujo de hackeo de almeida edgar.pptxdiagrama de flujo de hackeo de almeida edgar.pptx
diagrama de flujo de hackeo de almeida edgar.pptx
gabriel guaicara
 
39. OLIMPIA, LOS JUEGOS OLÌMPICOS EN LA ANTIGUA GRECIA
39. OLIMPIA, LOS JUEGOS OLÌMPICOS EN LA ANTIGUA GRECIA39. OLIMPIA, LOS JUEGOS OLÌMPICOS EN LA ANTIGUA GRECIA
39. OLIMPIA, LOS JUEGOS OLÌMPICOS EN LA ANTIGUA GRECIA
Universidad de Ciencias Aplicadas y Ambientales U.D.C.A
 
imagenes cultura paracas para exposicion
imagenes cultura paracas para exposicionimagenes cultura paracas para exposicion
imagenes cultura paracas para exposicion
SedeBelisario
 
El sistema solar y sus planetas.PRESENTACION
El sistema solar y sus planetas.PRESENTACIONEl sistema solar y sus planetas.PRESENTACION
El sistema solar y sus planetas.PRESENTACION
rarespruna1
 
Slideshare matematico.pptx..............
Slideshare matematico.pptx..............Slideshare matematico.pptx..............
Slideshare matematico.pptx..............
RicaurteLasso
 
INFOGRAFIA DE LAS OPERACIONES BASICAS EN UNA OBRA
INFOGRAFIA DE LAS OPERACIONES BASICAS EN UNA OBRAINFOGRAFIA DE LAS OPERACIONES BASICAS EN UNA OBRA
INFOGRAFIA DE LAS OPERACIONES BASICAS EN UNA OBRA
andrea Varela
 
D Agostino Antonio Teoria Musical Moderna.pdf
D Agostino Antonio Teoria Musical Moderna.pdfD Agostino Antonio Teoria Musical Moderna.pdf
D Agostino Antonio Teoria Musical Moderna.pdf
gersonroman5
 
Tanatologia y Tanatopraxia Instituto CEF
Tanatologia y Tanatopraxia Instituto CEFTanatologia y Tanatopraxia Instituto CEF
Tanatologia y Tanatopraxia Instituto CEF
ntraverso1
 
Bitácora de historia: barroco y neoclásico
Bitácora de historia: barroco y neoclásicoBitácora de historia: barroco y neoclásico
Bitácora de historia: barroco y neoclásico
al050121044
 
Zona_Sur_ODONTOLOGIA pdf 2024 mayo kin jk
Zona_Sur_ODONTOLOGIA pdf 2024 mayo kin jkZona_Sur_ODONTOLOGIA pdf 2024 mayo kin jk
Zona_Sur_ODONTOLOGIA pdf 2024 mayo kin jk
MonicaCatan
 
Folleto tríptico informativo datos sida vih sencillo rosa rojo blanco.pdf
Folleto tríptico informativo datos sida vih sencillo rosa rojo blanco.pdfFolleto tríptico informativo datos sida vih sencillo rosa rojo blanco.pdf
Folleto tríptico informativo datos sida vih sencillo rosa rojo blanco.pdf
loypa08
 
FICHASNUMEROSDEPAGINASDEUNO A CINCO AÑOS
FICHASNUMEROSDEPAGINASDEUNO A CINCO AÑOSFICHASNUMEROSDEPAGINASDEUNO A CINCO AÑOS
FICHASNUMEROSDEPAGINASDEUNO A CINCO AÑOS
ClaudiaCastro129845
 
Actividad de Educación Física Unidad2 Tarea1
Actividad de Educación Física Unidad2 Tarea1Actividad de Educación Física Unidad2 Tarea1
Actividad de Educación Física Unidad2 Tarea1
MarwinSuarez
 
ESTUDIOS SOCIALES LIBRO DE OCTAVO DESDE LA UNIDAD TRES
ESTUDIOS SOCIALES LIBRO DE OCTAVO DESDE LA UNIDAD TRESESTUDIOS SOCIALES LIBRO DE OCTAVO DESDE LA UNIDAD TRES
ESTUDIOS SOCIALES LIBRO DE OCTAVO DESDE LA UNIDAD TRES
elizabethaldaz60
 
Artistic Experience - Una idea innovadora
Artistic Experience - Una idea innovadoraArtistic Experience - Una idea innovadora
Artistic Experience - Una idea innovadora
martinez012tm
 
CUADERNO GRUPAL wbigxvmdhishlsgksmhdhkdkhskgskgsglzkgKgsgkzkhpotx
CUADERNO GRUPAL wbigxvmdhishlsgksmhdhkdkhskgskgsglzkgKgsgkzkhpotxCUADERNO GRUPAL wbigxvmdhishlsgksmhdhkdkhskgskgsglzkgKgsgkzkhpotx
CUADERNO GRUPAL wbigxvmdhishlsgksmhdhkdkhskgskgsglzkgKgsgkzkhpotx
nicolaspea55
 
9. GEOGRAFÍA FÍSICA DEL PERÚFFFFFFFF.pdf
9. GEOGRAFÍA FÍSICA DEL PERÚFFFFFFFF.pdf9. GEOGRAFÍA FÍSICA DEL PERÚFFFFFFFF.pdf
9. GEOGRAFÍA FÍSICA DEL PERÚFFFFFFFF.pdf
DayanaVsquezReyes
 

Último (20)

La sábana santa un encuentro con laPasión del señor
La sábana santa un encuentro con laPasión del señorLa sábana santa un encuentro con laPasión del señor
La sábana santa un encuentro con laPasión del señor
 
Portafolio final comunicación y expresión ll - ivan alarcon .pptx
Portafolio final comunicación y expresión ll - ivan alarcon .pptxPortafolio final comunicación y expresión ll - ivan alarcon .pptx
Portafolio final comunicación y expresión ll - ivan alarcon .pptx
 
5.2 MODULO DE FOTOGRAFIA Medico Legal.pdf
5.2 MODULO DE FOTOGRAFIA Medico Legal.pdf5.2 MODULO DE FOTOGRAFIA Medico Legal.pdf
5.2 MODULO DE FOTOGRAFIA Medico Legal.pdf
 
diagrama de flujo de hackeo de almeida edgar.pptx
diagrama de flujo de hackeo de almeida edgar.pptxdiagrama de flujo de hackeo de almeida edgar.pptx
diagrama de flujo de hackeo de almeida edgar.pptx
 
39. OLIMPIA, LOS JUEGOS OLÌMPICOS EN LA ANTIGUA GRECIA
39. OLIMPIA, LOS JUEGOS OLÌMPICOS EN LA ANTIGUA GRECIA39. OLIMPIA, LOS JUEGOS OLÌMPICOS EN LA ANTIGUA GRECIA
39. OLIMPIA, LOS JUEGOS OLÌMPICOS EN LA ANTIGUA GRECIA
 
imagenes cultura paracas para exposicion
imagenes cultura paracas para exposicionimagenes cultura paracas para exposicion
imagenes cultura paracas para exposicion
 
El sistema solar y sus planetas.PRESENTACION
El sistema solar y sus planetas.PRESENTACIONEl sistema solar y sus planetas.PRESENTACION
El sistema solar y sus planetas.PRESENTACION
 
Slideshare matematico.pptx..............
Slideshare matematico.pptx..............Slideshare matematico.pptx..............
Slideshare matematico.pptx..............
 
INFOGRAFIA DE LAS OPERACIONES BASICAS EN UNA OBRA
INFOGRAFIA DE LAS OPERACIONES BASICAS EN UNA OBRAINFOGRAFIA DE LAS OPERACIONES BASICAS EN UNA OBRA
INFOGRAFIA DE LAS OPERACIONES BASICAS EN UNA OBRA
 
D Agostino Antonio Teoria Musical Moderna.pdf
D Agostino Antonio Teoria Musical Moderna.pdfD Agostino Antonio Teoria Musical Moderna.pdf
D Agostino Antonio Teoria Musical Moderna.pdf
 
Tanatologia y Tanatopraxia Instituto CEF
Tanatologia y Tanatopraxia Instituto CEFTanatologia y Tanatopraxia Instituto CEF
Tanatologia y Tanatopraxia Instituto CEF
 
Bitácora de historia: barroco y neoclásico
Bitácora de historia: barroco y neoclásicoBitácora de historia: barroco y neoclásico
Bitácora de historia: barroco y neoclásico
 
Zona_Sur_ODONTOLOGIA pdf 2024 mayo kin jk
Zona_Sur_ODONTOLOGIA pdf 2024 mayo kin jkZona_Sur_ODONTOLOGIA pdf 2024 mayo kin jk
Zona_Sur_ODONTOLOGIA pdf 2024 mayo kin jk
 
Folleto tríptico informativo datos sida vih sencillo rosa rojo blanco.pdf
Folleto tríptico informativo datos sida vih sencillo rosa rojo blanco.pdfFolleto tríptico informativo datos sida vih sencillo rosa rojo blanco.pdf
Folleto tríptico informativo datos sida vih sencillo rosa rojo blanco.pdf
 
FICHASNUMEROSDEPAGINASDEUNO A CINCO AÑOS
FICHASNUMEROSDEPAGINASDEUNO A CINCO AÑOSFICHASNUMEROSDEPAGINASDEUNO A CINCO AÑOS
FICHASNUMEROSDEPAGINASDEUNO A CINCO AÑOS
 
Actividad de Educación Física Unidad2 Tarea1
Actividad de Educación Física Unidad2 Tarea1Actividad de Educación Física Unidad2 Tarea1
Actividad de Educación Física Unidad2 Tarea1
 
ESTUDIOS SOCIALES LIBRO DE OCTAVO DESDE LA UNIDAD TRES
ESTUDIOS SOCIALES LIBRO DE OCTAVO DESDE LA UNIDAD TRESESTUDIOS SOCIALES LIBRO DE OCTAVO DESDE LA UNIDAD TRES
ESTUDIOS SOCIALES LIBRO DE OCTAVO DESDE LA UNIDAD TRES
 
Artistic Experience - Una idea innovadora
Artistic Experience - Una idea innovadoraArtistic Experience - Una idea innovadora
Artistic Experience - Una idea innovadora
 
CUADERNO GRUPAL wbigxvmdhishlsgksmhdhkdkhskgskgsglzkgKgsgkzkhpotx
CUADERNO GRUPAL wbigxvmdhishlsgksmhdhkdkhskgskgsglzkgKgsgkzkhpotxCUADERNO GRUPAL wbigxvmdhishlsgksmhdhkdkhskgskgsglzkgKgsgkzkhpotx
CUADERNO GRUPAL wbigxvmdhishlsgksmhdhkdkhskgskgsglzkgKgsgkzkhpotx
 
9. GEOGRAFÍA FÍSICA DEL PERÚFFFFFFFF.pdf
9. GEOGRAFÍA FÍSICA DEL PERÚFFFFFFFF.pdf9. GEOGRAFÍA FÍSICA DEL PERÚFFFFFFFF.pdf
9. GEOGRAFÍA FÍSICA DEL PERÚFFFFFFFF.pdf
 

Conceptos basicos de programacion

  • 1. 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
  • 2. Qué es la Informática Tema 1 Introducción: El Hardware Lenguajes y Programas  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) Ingeniería del Software Descripción de lenguajes de programación  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     Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.1
  • 3. 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
  • 4. Qué es una computadora Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación  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.  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. (Extraído del Diccionario de la RAE, 2001) Fundamentos de computadores Introducción a la Programación Ingeniería Técnica en Informática de Gestión Introducción a la programación 1.3
  • 5. Un poco de hardware Dispositivo de salida Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Carcasa (tipo torre) Monitor Descripción de lenguajes de programación Unidad de CD-ROM Unidad Central de Procesamiento Unidad de disquetes Memoria principal (ambos dentro) y Unidad de Disco Duro Memori a Teclado Ratón Dispositivos de entrada Introducción a la Programación Ingeniería Técnica en Informática de Gestión Memoria secundaria 1.4
  • 6. Un poco de hardware: el Modelo Von Neumann Tema 1 Unidad Central de Procesamiento (CPU) Introducción: El Hardware Lenguajes y Programas Unidad de Control Unidad Aritmético-Lógica Ingeniería del Software Unidad de Memoria Descripción de 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
  • 7. Un poco de hardware: la Unidad de Memoria (UM) Tema 1  Almacena las instrucciones y los datos del programas Introducción: El Hardware Selector Lenguajes y Programas Registro de Dirección (RD) Ingeniería del 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
  • 8. Un poco de hardware: la Unidad Aritmético-Lógica (UAL) Tema 1 Introducción: El Hardware  Realiza las operaciones elementales aritméticas (suma, resta, multiplicación, división, etc.) y lógicas (comparaciones de igualdad, mayor, menor, etc.) Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación Banco de Registros Temporales (BRT) Operador Acumulador Introducción a la Programación Ingeniería Técnica en Informática de Gestión UAL 1.7
  • 9. Un poco de hardware: la Unidad de Control (UC) Tema 1 Introducción: 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 Ingeniería del Software Secuenciador Descripción de lenguajes de programación Decodificador Contador de Programa (CP) 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
  • 10. Ejecución de una instrucción  Los pasos del ciclo de instrucción según Von Neumann Tema 1 Introducción: El Hardware Lenguajes y Programas El CP indica la dirección de la celda donde está la instrucción que se debe copiar al RI Ingeniería del Software LEER INSTRUCCIÓN Descripción de lenguajes de programación 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) DECODIFICAR INSTRUCCIÓN CAPTURAR 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
  • 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 1.10
  • 12. ¿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 dígitos binarios (0’s y 1’s) Ingeniería del Software 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
  • 13. Lenguaje máquina Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación  Pasos a = (b + c)/(d + e) y x  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 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
  • 14. Lenguaje máquina (cont.) Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación  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 Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.13
  • 15. Lenguaje ensamblador Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación  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 Introducción a la Programación Ingeniería Técnica en Informática de Gestión X, Y, A 1.14
  • 16. Lenguaje ensamblador (cont.) Tema 1 Introducción: El Hardware Lenguajes y Programas  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? Ingeniería del Software Descripción de lenguajes de programación Código fuente (lenguaje ensamblador) Programa ensamblador Código objeto (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
  • 17. Lenguajes de alto nivel Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación  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 Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.16
  • 18. El sistema operativo Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación  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! Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.17
  • 19. El sistema operativo (cont.) Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación  ¿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 Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.18
  • 20. Aplicaciones de propósito específico Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación  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 ... Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.19
  • 21. La programación: resolución de problemas Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación  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) Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.20
  • 22. 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  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 Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.21
  • 23. 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  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? Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.22
  • 24. El Ciclo de Vida del Software Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería 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 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
  • 25. ¿Qué significa todo esto? Casa Software “Quiero 3 habitaciones, 2 baños, garaje...” Análisis Planos, diseño circuito eléctrico y de agua... Diseño 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... ¿Qué tiene que hacer exactamente nuestro programa? ¿Cómo vamos a organizar el programa? ¿Qué partes tendrá y cómo funcionará? Implementación Se construye el software Pruebas Ponemos a prueba nuestro programa, incluso en situaciones límite Mantenimiento Pequeñas modificaciones o correcciones (parches), actualizaciones, etc... 1.24
  • 26. Fases en el desarrollo de una aplicación (cont.) Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación  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) Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.25
  • 27. Fases en el desarrollo de una aplicación (cont.) Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación  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 Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.26
  • 28. Fases en el desarrollo de una aplicación (cont.) Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación  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 Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.27
  • 29. Fases en el desarrollo de una aplicación (cont.) Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación  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? Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.28
  • 30. Fases en el desarrollo de una aplicación (cont.) Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación  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 ... Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.29
  • 31. Fases en el desarrollo de una aplicación (cont.) Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación  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 Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.30
  • 32. Lenguajes de programación Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de 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… Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.31
  • 33. Sintaxis de los lenguajes de programación Tema 1 Introducción: El Hardware  Conjunto de reglas que especifican y permiten verificar la corrección formal de las sentencias de un lenguaje Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación  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 Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.32
  • 34. Notación BNF Tema 1  TERMINAL Símbolo (ej. una palabra) del lenguaje a definir  <no terminal> Símbolo que se define en términos de otros símbolos (tanto terminales como no terminales) Introducción: El Hardware Lenguajes y Programas (se escribe en letras minúsculas y entre <>) Ingeniería del Software Descripción de lenguajes de programación (se escribe en letras mayúsculas)  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 Introducción a la Programación Ingeniería Técnica en Informática de Gestión 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) 1.33
  • 35. Notación BNF (cont.) Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación  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> ::= 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
  • 36. Notación EBNF Tema 1 Introducción: El Hardware Lenguajes y Programas Ingeniería del Software Descripción de lenguajes de programación  Añade metasímbolos nuevos y cambia la forma de presentar las cosas BNF EBNF TERMINAL “terminal” <no terminal> No-terminal Metasímbolo ::= Equivalencia | Alternativa Metasímbolo ::= | (...) [...] {...} Recursividad permitida 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‟ Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.35
  • 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  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? Introducción a la Programación Ingeniería Técnica en Informática de Gestión 1.36
  • 38. Diagramas sintácticos Tema 1 Introducción: El Hardware TERMINAL Lenguajes y Programas No Terminal *En las reglas de producción el no terminal de la izquierda se deja sin recuadro Ingeniería del Software Descripción de lenguajes de programación Alternativa Aparición 0, 1 o más veces Introducción a la Programación Ingeniería Técnica en Informática de Gestión Aparición opcional 1.37
  • 39. Diagramas sintácticos (cont.) Tema 1 Introducción: El Hardware Lenguajes y Programas  Sintaxis de los números enteros positivos en notación de diagramas sintácticos Nº entero positivo Dígito Ingeniería del Software Dígito + Descripción de lenguajes de programación Dígito 0 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
  • 40. Críticas, dudas, sugerencias… Federico Peinado www.federicopeinado.es 1.39