Conceptos y Lenguaje Imperativo

Slides:



Advertisements
Presentaciones similares
Laboratorio Lenguaje de Programación ING2101
Advertisements

2. Manejo de memoria Manejo de memoria estática
Curso de java básico (scjp)
DATSI, FI, UPM José M. Peña Programación en C DATSI, FI, UPM José M. Peña Programación en C.
PROGRAMACIÓN EN C.
Fundamentos de la Programación Estructurada
Programación I Teoría III
Una variable en un programa es algo con un nombre, cuyo valor puede variar. La manera en que el compilador y enlazador maneja esto es asignando un bloque.
Teoría de lenguajes y compiladores
1.2 Sintaxis del lenguaje Java.
Introducción al Lenguaje C (ANSI)
UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Teoría de lenguajes y compiladores
ARREGLOS Estructuras de datos.
Estructuras de Datos Memoria y Variables. Conceptos Computador: CPU + Memoria + Dispositivos E/S La memoria se encarga de almacenar los datos y los programas.
Conceptos Básicos de Java
Material de apoyo Unidad 2 Estructura de datos
POO Java Módulo 3 Elementos de programas Identificadores
Nombre, Alcance y Asociaciones (Bindings). Agenda Definición Nombre y Bindings Binding Time Importancia del Binding Time Eventos relacionados a la Asociación.
LENGUAJE “C” Programación.
M.C. Meliza Contreras González
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SEMANA TRES ASIGNACION.
El lenguaje de programación Java
M.C. Juan Carlos Olivares Rojas
TIPOS Y ESTRUCTURAS BÁSICAS DE DATOS
Índice. Revisando conceptos acerca de la memoria.
INGENIERIA EN SISTEMAS COMPUTACIONALES
Java. Java nació el año 1991, por un par de ingenieros de la Sun Microsystems.
Resumen de Compilación Preparado por Manuel E. Bermúdez, Ph.D. Associate Professor University of Florida Traducido por Christian Torres Universidad Ricardo.
Sintaxis de C# (Declaraciones y Tipos)
Programa Vespertino de Automatización Equipos y Sistemas de Control Digital Lenguaje C Profesor: Felipe Páez Mejías D e p a r t a m e n t o d e I n g e.
Tipo de Datos Básicos.
El lenguaje de programación C - Identificadores y variables – Isidro González Caballero ( Introducción.
Programación en Lenguaje C
Informática Ingeniería en Electrónica y Automática Industrial
Resumen Fundamentos de Programación/ Programación I
Ada 2º Parte (variables, ámbitos , subrutinas , tipos abstractos de datos y excepciones)
Unidad II Introducción a la programación en C++
Programación de Sistemas

APRENDIZ: SANDRA L. CAICEDO C. ORDEN: 20194
TEORIA DE LA INFORMACION INGENIERO ANYELO QUINTERO.
Programación orientada a objetos. El método main es el comportamiento por el cual comienzan todos los programas en Java, de la misma forma en la que C,
Elementos básicos del lenguaje
INFORMATICA VII (Programación e implementación de sistemas)
1 Definición y Conversión de datos Agustín J. González ELO-329.
PROGRAMACIÓN MULTIMEDIA
Elementos básicos del lenguaje
FUNDAMENTOS DE PROGRAMACIÓN
LE, EI, Profesor Ramón Castro Liceaga UNIVERSIDAD LATINA (UNILA) TRADUCTORES Y ANALIZADOR LEXICOGRÁFICO.
CARACTERÍSTICAS Es un lenguaje de programación estructurado de propósito general. Está estrechamente asociado al sistema operativo UNIX, ya que el propio.
Teoría de lenguajes y compiladores
PRINCIPIOS DE PROGRAMACIÓN

El proceso de compilación
Fundamentos de Programación
Ing. Esp. Ricardo Cujar.  Lenguaje de programación orientado a objetos.  Desarrollado por Sun MicroSystems.  Independiente del Sistema Operativo gracias.
IV. GRAMÁTICAS DISTRIBUIDAS Y TABLAS DE SÍMBOLOS
Lenguaje de programación c
Programación de Sistemas
EL TIPO DE DATO LOGICO y constantes.
Informática Ingeniería en Electrónica y Automática Industrial
MEMORIA DINÁMICA.
1 Definición y Conversión de datos Agustín J. González ELO-329.
Cobol C Pascal Fortran 2. OBJETOS DE DATOS SmallTalk Java C++
Tema 1. Estructuras de datos Objetivo: Objetivo: El alumno resolverá problemas de almacenamiento, recuperación y ordenamiento de datos y las técnicas de.
1 Conceptos Fundamentales de Programación Introducción a la Informática Departamento de Sistemas Universidad del Cauca 2006.
LICETH CAJAS 3RO ASI 26/10/2010. Es un lenguaje de programación diseñado para crear una amplia gama de aplicaciones que se ejecutan en.NET Framework,
Programación en Java Introducción a Java. Reseña histórica Surge en 1991 por Sun Microsystems Desarrollado para electrodomésticos Se buscaba un código.
Transcripción de la presentación:

Conceptos y Lenguaje Imperativo AYUDANTÍA 1 Conceptos y Lenguaje Imperativo

Sintaxis y Semántica Sintaxis: Palabras claves y símbolos reservados que pertenecen al lenguaje (parentesis, comentarios, delimitadores). Semántica: Significado de expresiones y sentencias (puede variar de acuerdo al lenguaje).

Gramática Métodos formales de descripcion: Backus Naur Form (BNF) Extended BNF (EBNF). Ejemplo: while_stmt ::= “while” <condición> “:” <sentencias> [“else” “:” <sentencias>]

Ejemplo (EBNF)->Parse tree <switch_stmt>::= switch <identifier> {<case_stnt>}[<default_stmt>] <case_stmt>::= case <value>: {<stmts>} break; <default_stmt>::= default: {<stmts>} <identifier>::= <leter>{<leter>|<digit>} switch(T){ case 1: func1(); break; case 2: func2(); break; default: salir(); }

switch_stmt switch T default_stmt case_stmt case_stmt default: salir(); case 1: func1(); break; case 2: func2(); break;

Eliminar Ambigüedades Agrupación (), []. Precedencia. Orden sintáctico (izquierda a derecha). Anidación.

Proceso de Compilación Programa fuente (código). Análisis Léxico (Tokens léxicos). Análisis Sintáctico (Parse tree). Análisis Semántico (Código intermedio). Generación de código (Programa objeto).

Conceptos Nombres: Identificador que designa el lenguaje Variables: Representación de un objeto de memoria. - Identificador - Dirección - Contenido - Tipo de dato (determina operaciones válidas) - Tiempo de vida (cuando se crea y destruye). - Ámbito (donde se puede referenciar).

Memoria Al ejecutar un programa, el Sistema Operativo carga el código ejecutable en una zona de memoria. Zonas de memoria: Memoria Global: Aquí se almacenan el bloque de código main() y las funciones. Ej: Variables estáticas (static int x = 1024;). Stack: Se utiliza como una pila. Ej: Variables que no sean estáticas ni direcciones de memoria (int y = 512;). Heap: Se utiliza cuando es necesario y de manera aleatoria (la memoria no se asigna en un orden particular). Ej: int *x; (dirección de memoria en Stack). x = (int *)malloc(sizeof(int)); (apunta al heap). *x = 16; (guarda el valor en el heap).

Ligado y Memoria Asociación de un atributo a una entidad del lenguaje. La variable debe ser “ligada” para que pueda ser usada. Ligado Estático: Declaración de variables. Ligado Dinámico: Se realiza al momento de asignar una variable. Es importante que una variable tenga un “tiempo de vida”. Liberación Implícita: Garbage Colector (JVM). Liberación Explícita: free(...);

Ligado de Variables Variables Estáticas: Son ligadas antes de la ejecución. Ej: static float pi = 3,14; Variables Dinámicas de Stack: Son ligadas en el momento en que la ejecución alcanza el código asociado. Ej: int mil = 1000; (al darse cuenta que es int, le asigna el espacio de memoria necesario para un int). Variables Dinámicas de Heap: Son ligadas explícitamente (reservando memoria). malloc( ), free( ).

Tipos de Datos Primitivos: Enteros: signed, unsinged, char, short, int, long, long long. Punto flotante: float, double y long double. Booleano (ocupa un byte). Carácter: char. Arreglos: Secuencia de elementos que se identifican por su posición mediante un índice. Almacenados contiguos en memoria. DIR(Array[x]) = DIR(Array[0]) + x*sizeof(tipo). Arreglos Multidimensionales: DIR(Array[x][y]) = DIR(Array[0][0])+(y * MAXx + x) * sizeof(tipo). Arreglos Asociativos (Python): Arr = {key1:value1, ... , keyN:valueN} (foreach). Hashing: ARI.