32
Programación 1 Tema 2 Lenguaje de programación y ejecución de un programa

Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Programación 1

Tema 2

Lenguaje de programación yejecución de un programa

Page 2: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Índice

Lenguaje de programación Símbolos Sintaxis Semántica

Computador Ejecución de un programa Sistema operativo, entorno de programación

2

Page 3: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Expresión de un algoritmo Lenguaje natural Notación algorítmica Notación gráfica

Diagramas de flujo Lenguaje de programación

Ada, Pascal, Módula-2, C C++, Java Lisp, Prolog Fortran, Cobol

3

Page 4: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Elementos de un programa Símbolos

Palabras clave y directivas Identificadores Operadores Separadores Constantes

Sintaxis Semántica

4

Page 5: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Ejemplo de programa#include <iostream>

/** Pre: ---* Post: Escribe por pantalla el mensaje* “Bienvenidos a la Universidad”*/

int main() {// primera instrucciónstd::cout << "Bienvenidos a la Universidad" << std::endl;

// segunda instrucciónreturn 0;

}

5

Page 6: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Comentarios#include <iostream>

/** Pre: ---* Post: Escribe por pantalla el mensaje* “Bienvenidos a la Universidad”*/

int main() {// primera instrucciónstd::cout << "Bienvenidos a la Universidad" << std::endl;

// segunda instrucciónreturn 0;

}

6

Page 7: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Símbolos#include <iostream>

int main() {std::cout

<< "Bienvenidos a la Universidad"<< std::endl;

return 0; }

7

Page 8: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Palabras clave y directivas#include <iostream>

int main() {std::cout

<< "Bienvenidos a la Universidad"<< std::endl;

return 0; }

8

Page 9: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Palabras clave en C++alignas const for private throwalignof constexpr friend protected trueand const_cast goto public tryand_eq continue if register typedefasm decltype inline reinterpret_cast typeidauto default int return typenamebitand delete long short unionbitor do mutable signed unsignedbool double namespace sizeof usingbreak dynamic_cast new static virtualcase else noexcept static_assert voidcatch enum not static_cast volatilechar explicit not_eq struct wchar_tchar16_t export nullptr switch whilechar32_t extern operator template xorclass false or this xor_eqcompl float or_eq thread_local

9

Page 10: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Directivas en C++

# #if #elif #pragma#define #ifdef #endif#undef #ifndef #line#include #else #error

10

Page 11: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Símbolos#include <iostream>

int main() {std::cout

<< "Bienvenidos a la Universidad"<< std::endl;

return 0; }

11

Page 12: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Identificadores#include <iostream>

int main() {std::cout

<< "Bienvenidos a la Universidad"<< std::endl;

return 0; }

12

Page 13: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Identificadores en C++<identificador> ::=

( <letra> | _ ) { <letra> | <dígito> | _ }<letra> ::= <mayúscula> | <minúscula><mayúscula> ::= A | B | C | D | E | F | G | H

| I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

<minúscula> ::= a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z

<dígito> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

13

Page 14: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Símbolos#include <iostream>

int main() {std::cout

<< "Bienvenidos a la Universidad"<< std::endl;

return 0; }

14

Page 15: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Operadores#include <iostream>

int main() {std::cout

<< "Bienvenidos a la Universidad"<< std::endl;

return 0; }

15

Page 16: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Operadores en C++

< <= > >= == != + - * / % ++ -- && || ! = += -= *= /= %= () [] * & (tipo) sizeof

::

16

Page 17: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Separadores y finalizadores#include·<iostream>⏎⏎int·main()·{⏎→ std::cout⏎→ → → → <<·"Bienvenidos a la Universidad"⏎→ → → → <<·std::endl;⏎→ return·0;⏎}⏎

17

Page 18: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Separadores y finalizadores en C++ Separadores

Blancos (espacios, tabuladores, fin de línea) Coma (,)

Finalizadores Punto y coma (;)

Delimitadores Paréntesis: () Corchetes: [] Llaves: {}

18

Page 19: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Constantes#include <iostream>

int main() {std::cout

<< "Bienvenidos a la Universidad"<< std::endl;

return 0; }

19

Page 20: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Elementos de un programa Símbolos

Palabras clave Identificadores Operadores Separadores Constantes

Sintaxis Semántica

20

Page 21: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Notación de Backus-Naur

Notación BNF (Backus-Naur form) Definición de reglas sintácticas para definir

lenguajes Descripción de la organización de estructuras de

datos secuenciales

21

Page 22: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Notación de Backus-Naur Metasímbolos utilizados:

Definición de una regla<nombre_regla> ::= expresión

Sustitución de la expresión<nombre_regla>

Literal“Prog1f”

Alternativaexpresión1 | expresión2

Agrupación sin repetición( expresión )

Agrupación con repetición (cero, una o más veces){ expresión }

Agrupación con opcionalidad (cero o una veces)[ expresión ]

22

Page 23: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Notación Backus-Naur::= Definición de regla sintáctica< > Delimitadores de nombre de regla sintáctica“ ” Carácter o secuencia de caracteres literal

(en ocasiones, los omitiremos)

| Separador de alternativas( ) Agrupador sin repetición{ } Agrupador con repetición

(0, 1 o más veces)[ ] Agrupador opcional (0 o 1 vez)

23

Page 24: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Identificadores<identificador> ::=

( <letra> | _ ){ <letra> | <dígito> | _ }<letra> ::= <mayúscula> | <minúscula><mayúscula> ::= A | B | C | D | E | F | G | H

| I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z

<minúscula> ::= a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z

<dígito> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

24

Page 25: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Sintaxis. Ejemplo<instrucciónCondicional> ::=“if” “(” <condición> “)” (<instrucción> | <bloque>)[“else” (<instrucción> | <bloque>)]

<bloque> ::= “{” {<instrucción>} “}”<condición> ::= ...<instrucción> ::= ...

25

Page 26: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Semántica. Ejemplo

if (x >= 0) { cout << x << endl;

}else {cout << -x << endl;

}

26

Page 27: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Índice

Lenguaje de programación Símbolos Sintaxis Semántica

Computador Ejecución de un programa Sistema operativo, entorno de programación

27

Page 28: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Computador

Memoria Datos e instrucciones

Unidad central de proceso (CPU) Ejecuta acciones

Periféricos Entrada Salida

1

28

Page 29: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Computador

CPU

Memoria

datosALU

instrucciones

Periféricosentrada Periféricos

salida

PeriféricosEntrada/salida

29

Page 30: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Ejecución de un programa

Ejecución interpretada Un intérprete (en memoria del computador) analiza y ejecuta cada

instrucción del programa fuente

Ejecución con compilación previa Un compilador genera un programa ejecutable que se carga en

memoria y se ejecuta

Programafuente

?

30

Page 31: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Sistema operativo.Entorno de programación

Sistema operativo Conjunto de programas

Facilitan la utilización del sistemaControlan el funcionamiento de la máquina

Entorno de programación Facilita el trabajo de desarrollo de programas

utilizando un lenguaje determinado

31

Page 32: Programación 1 Tema 2 - miguel-latre.github.io · Palabras clave en C++. alignas const for private throw. alignof constexpr friend protected true. and const_cast goto public try

Resumen

Lenguaje de programación Símbolos Sintaxis Semántica

Computador Ejecución de un programa Sistema operativo, entorno de programación

32