Arquitectura de Computadoras Conceptos básicos de programación 1. Introducción: Programación es el conjunto de actividades implicadas en la descripción, el desarrollo y la implementación eficaz de soluciones algorítmicas (resuelven problemas) a problemas (entidades manejadas por la especificación) bien especificados (sin ambigüedades ni contradicciones). Supongamos un fichero ordenado alfabéticamente. Si quisiéramos introducir una nueva ficha: Apellidos/Nombre Edad Domicilio Teléfono E-Mail Nueva problema Precondiciones de un problema: Es el conjunto de características y relaciones existentes entre los datos de entrada. Datos Montón fichas Fichas individuales Ficha X de Características Compuesto de subentidades. La entidad montón es físicamente divisible. Está ordenado alfabéticamente. Compuesta por subentidades. Es físicamente indivisible. No hay un orden espacial entre las subentidades. Tiene las mismas características que las individuales. Postcondiciones de un problema: Es el conjunto de características y relaciones existentes entre los datos de salida. Datos Dos submontones Características Uno contiene las fichas que preceden a X. El otro contiene las fichas restantes. Los submontones permanecen ordenados. Para encajar la ficha X en su debida posición utilizamos un algoritmo. Un algoritmo es una sistemática o conjunto de pasos que transforma los datos de entrada
cumpliendo las precondiciones en datos de salida cumpliendo las postcondiciones. Así, un programa se puede también definir como la codificación o implementación en ese lenguaje de programa. 2. Métodos de resolución de problemas: Notación: (P, Q) Problema {P} Datos de entrada {Q} Datos de salida {P} S {Q} Solución Estrategia de divide y vencerás: Consiste en dividir el problema en problemas más sencillos que sepamos su solución. (P, Q) (P, R) Λ (R, Q) {P} S 1 {R} {R} S 2 {Q} Por composición secuencial: {P} S {Q} = S 1 ; S 2 Estrategia de análisis por casos: (P, Q) {P} S {Q} (P y B, Q) {P y B} S 1 {Q} {P y no B) {P y no B} S 2 {Q} Si los datos de (P, Q) cumplen la precondición B, entonces, S = S 1. Si los datos no cumplen B, entonces, S = S 2. Estrategia de resolución por analogía: (P, Q) (P, Q ) {P} S {Q} {P } S {Q } S es una transformación de S. 3. Sintaxis y semántica de lenguajes de programación: Sintaxis es un conjunto de reglas formales que especifican y permiten verificar la correcta composición de programas. Notaciones: Hay tres tipos de notaciones: BNF: Utilizamos terminales, no terminales, reglas de producción y metasímbolos. 1. Terminales: Es cualquier símbolo que utiliza con entidad propia. Corresponden a las palabras reservadas del lenguaje. Se representan con mayúsculas.
2. No terminales: Son los símbolos que se definen en términos de otros mediante las reglas de producción. Se representan en minúsculas de esta forma: <no terminal>. 3. Reglas de producción: Son reglas que permiten definir un no terminal. <no terminal> ::= lista de terminales y no terminales. 4. Metasímbolos: Son los símbolos de la notación: Igual ::= y alternativa. Ejemplo de reglas BNF para la sintaxis de enteros: <Número entero> ::= <signo opcional> <secuencia dígitos> <signo opcional> ::= + - <nada> <nada> ::= <secuencia dígitos> ::= <dígito> <dígito><secuencia dígito> <dígito> ::= 0 1 3 4 5 6 7 8 9 Ejemplo de sintaxis de la sentencia WHILE-IO: <Sentencia WHILE> ::= WHILE <expresión> IO <sentencia> EBNF: Es similar al BNF con algunos cambios: 1. Desaparece la recursión. 2. Los terminales van entre comillas. 3. Los no terminales van capitalizados. 4. Se añaden nuevos metasímbolos: {X} Lo que hay entre las llaves puede aparecer 0, 1, 2, 3,... veces. [X] Lo que hay entre corchetes puede aparecer o no. (X) Los paréntesis sirven para hacer agrupaciones. Ejemplo de reglas EBNF para la sintaxis de enteros: Número entero ::= [ + - ] {} ::= 0 1 3 4 5 6 7 8 9 Ejemplo de sintaxis de la sentencia IF-THEN-ELSE: Sentencia IF-THEN-ELSE ::= IF Expresión THEN sentencia [ ELSE sentencia ] Ejemplo de sintaxis de expresiones con números enteros: Expresión de números enteros ::= Término { [ + - ] Término } Término ::= Factor { [ * div ] Factor} Factor ::= ( Expresión ) Variable Constante Constante ::= 0 1 3 4 5 6 7 8 9 Diagramas sintácticos: La sintaxis se representa mediante dibujos. Terminales: Terminales
No terminales: No terminales X X Y: Y {}: []: Ejemplo: Identificador ::= Letra { Letra } Letra Letra Ejemplo: Sentencia IF-THEN-ELSE ::= IF Expresión THEN Sentencia [ ELSE Sentencia ] IF Expresión THEN Sentencia ELSE Sentencia
http://www.loseskakeados.com Conceptos básicos de programación.