3.1 El lenguaje de especificación IDL
|
|
- José Antonio Camacho Jiménez
- hace 7 años
- Vistas:
Transcripción
1 3.1 El lenguaje de especificación IDL
2 El lenguaje de especificación IDL Permite especificar interfaces remotas en un lenguaje neutral El compilador (preprocesador) de IDL genera código para el lenguaje(s) destino(s) (para poder invocar las operaciones e implementar las interfaces) Mappings estandarizados para un buen número de lenguajes (C, C++, Java, COBOL, Smalltalk, Ada, etc.) Cada vez se van añadiendo más... Actualmente IDL es un lenguaje relativamente extenso Veremos lo esencial...
3 Ficheros fuente IDL Reglas léxicas (1) Deben tener la extensión.idl Son preprocesados por el preprocesador de C++ Se puede usar #define, #include, #ifdef, #ifndef, #endif, etc. Comentarios // Esto es un comentario de una línea. /* Esto es un comentario de varias líneas. */ Palabras reservadas Casi todas en minúsculas Algunas excepciones: TRUE, FALSE y Object
4 Reglas léxicas (y 2) Identificadores Deben comenzar con un carácter alfabético seguido por cualquier número de caracteres alfabéticos, dígitos o _ (subrayado) No se distingue entre mayúsculas y minúsculas, pero deben utilizarse consistentemente Si definimos el identificador MAX, a partir de ese momento siempre debemos utilizar MAX y no Max, max, etc. Objetivo: permitir mappings de IDL tanto a lenguajes que distinguen entre mayúsculas y minúsculas en identificadores (ej.: C++, Java) como a otros que no (ej.: Ada) Es importante evitar nombres de identificadores que sean palabras reservadas en algún de lenguaje de implementación (ej.: package, self)
5 Tipos predefinidos (1) Numéricos Tipo short long long long unsigned short unsigned long unsigned long long float double long double Rango IEEE Precisión simple IEEE Precisión doble IEEE Precisión extendida Tamaño >= 16 bits >= 32 bits >= 64 bits >= 16 bits >= 32 bits >= 64 bits >= 32 bits >= 64 bits >= 79 bits
6 Tipos predefinidos (2) Numéricos (cont) El mapping de IDL a un lenguaje de implementación debe preservar el tamaño, pero no necesita mantener el rango Por qué los tamaños pueden ser mayores? Ej.: algunas arquitecturas (CPUs) no disponen de caracteres de 8 bits o enteros de 16 bits, y se mapean a tipos con tamaños mayores Por qué algunos mappings no mantienen los rangos Ej.: Java no tiene enteros sin signo, y por tanto, mapea los tipos IDL long y unsigned long al tipo Java int long long, unsigned long long, long double se añadieron en CORBA 2.1, por lo que los ORBs antiguos no los soportarán
7 Tipos predefinidos (3) Caracteres char: 8 bits wchar: tamaño dependiente de la implementación Codificación: dependiente de la implementación en ambos casos, pero el ORB se preocupará de realizar la conversión (si puede) cuando cliente y servidor utilizan distintos sistemas de codificación Cadenas de caracteres string y wstring. No pueden contener carácter 0 Ejemplos string<10> // string acotado (10 char como máximo) string // string no acotado wstring<10> // wstring acotado (10 wchar como máximo) wstring // wstring no acotado string<x> y wstring<x> son tipos propios (distintos de string y wstring) wchar y wstring se añadieron en CORBA 2.1, por lo que los ORBs antiguos no los soportarán
8 octet 8 bits Tipos predefinidos (y 4) No se realiza ninguna conversión entre cliente y servidor Utilidad: transferir datos binarios boolean any Proporciona los valores TRUE y FALSE En un tipo contenedor : un valor de tipo any puede contener un valor de cualquier tipo (predefinido o definido por el usuario) Es seguro (type-safe) y permite instrospección Utilidad: cuando en una operación no se conoce el tipo de uno de sus parámetros en tiempo de compilación (ej.: servicio de eventos)
9 typedef Permiten crear un nuevo nombre para un tipo typedef short Year; typedef short Temperature; typdef Temperature Temp; // Mal estilo! Permiten realizar especificaciones más claras Se deben evitar alias innecesarios (ej.: la tercera definición) Es confuso Puede causar problemas en los mappings que utilicen reglas estrictas de equivalencia de tipos
10 Enumeraciones Ejemplo enum Color {red, green, blue, yellow, white A diferencia de C, Color es un tipo y el nombre del tipo es obligatorio typedef enum {red, green, blue} Color; // Error! Los valores de un tipo deben ser únicos dentro de su ámbito enum InteriorColor {red, green, blue enum ExteriorColor {blue, yellow, white // Error! A diferencia de C++, no se les puede dar valores enum Color {red=0, green=8, blue=16 // Error!
11 Estructuras Ejemplo struct Date { short year; short month; // 1-12 short day; // 1-31 A diferencia de C, Date es un tipo y el nombre del tipo es obligatorio typedef struct { short year; short month; // 1-12 short day; // 1-31 } Date; // Error!
12 Vectores Se pueden definir vectores de una o varias dimensiones typedef Date DateVector[10]; // Tipo DateVector typedef string StringMatrix[10][20]; // Tipo StringMatrix Se debe usar typedef A diferencia de otros lenguajes, no soporta vectores abiertos ( open arrays ) typedef string StringMatrix[][20]; // Error! Hay que tener cuidado cuando se pasan índices de arrays en invocaciones remotas Es preciso definir una convención
13 Secuencias Las secuencias son vectores de longitud variable typedef sequence<color> Colors; // Secuencia no acotada typedef sequence<date, 10> Dates10; // Secuencia Se debe usar typedef // acotada (10 fechas como máximo) Cuándo usar secuencias y cuándo usar vectores? Una lista de cosas con número fijo de elementos => vector Una lista de cosas con número variable de elementos => secuencia Cadenas de caracteres de tamaño fijo => vector de char Vectores dispersos ( sparse arrays ) => secuencias Estructuras de datos recursivas => secuencias
14 Tipos de datos recursivos IDL no tiene punteros, pero permite definir estructuras recursivas struct Node { long value; sequence<node, 2> children; // Un árbol binario Restricciones Sólo para struct La recursividad se expresa con una secuencia anónima del tipo incompleto (recursivo) No se permite recursividad mutua
15 Constantes y literales Se pueden definir de cualquier tipo predefinido (excepto any) o de un enumerado const short MAX_TEMP = 35; const short MIN_TEMP = -10; const short AVG_TEMP = (MAX_TEMP+MIN_TEMP)/2; const float PI = ; const double MAXIMUM = 1E10; const char FIRST_LOWER_CASE_LETTER = a ; const char NULL = \0 ; const string LAST_WORDS = My God, it s full of stars! ; const octet MSB_MASK = 0x10; // Hexadecimal (tb. en enteros) const octet MSB_MASK2 = 0100; // Octal (tb. en enteros) const Color FAVORITE_COLOR = blue; Las expresiones pueden utilizar +, -, *, /, % (con enteros y reales, excepto %), &, ^, <<, >>, ~ (con enteros)
16 Interfaces (1) Ejemplo interface Thermostat { typedef short Temperature; typedef string Location; exception InvalidTemperature { Temperature selectedtemperature; Temperature minimumpermitedtemperature; Temperature maximumpermitedtemperature; Tempeature gettemperature(); void settemperature(in Temperature value) raises(invalidtemperature); Location getlocation();
17 Interfaces (y 2) Un interfaz es un tipo interface Controller { typedef sequence<thermostat> ThermostatList; ThermostatList findallthermostats(); Thermostat findthermostatbylocation( in Thermoter::Location loc); Los objetos remotos se pasan por referencia En el anterior ejemplo, el cliente obtiene una referencia a un proxy del objeto remoto. Los objetos remotos no se mueven!!! Existe la referencia especial nil Utilidad: indicar opcionalidad (pasar nil en un parámetro que admita un objeto remoto) o indicar no encontrado (findthermostatbylocation)
18 Operaciones (1) Pueden devolver excepciones No se pueden sobrecargar Atributos direccionales in: el valor del parámetro se lo envía el cliente al servidor out: el valor del parámetro se lo envía el servidor al cliente inout: el valor del parámetro se lo envía el cliente al servidor, quien posiblemente lo modifica, y se lo envía otra vez al cliente (machacando el valor anterior) Estilo Si una operación acepta uno o más parámetros in y devuelve un solo resultado => el resultado se debería devolver como valor de retorno Si una operación tiene varios valores de retorno con la misma importancia => usar out para los correspondientes parámetros y void como tipo de retorno
19 Estilo Operaciones (y 2) Si una operación retorna varios valores, pero uno de ellos tiene más importancia => devolver este último como valor de retorno y el resto como out boolean getnext(out ValueType value); Usar los parámetros inout con precaución Se asume que el llamador no quiere conservar el valor Eficientes cuando se pasan valores grandes Ejemplo invertmatrix (inout Matrix amatrix);
20 Excepciones definidas por el usuario (1) Ejemplo exception InvalidTemperature { Temperature selectedtemperature; Temperature minimumpermitedtemperature; Temperature maximumpermitedtemperature; Pueden no tener campos No admiten herencia Complicaría algunos mappings No se pueden usar como campos de tipos definidos por el usuario Si una operación puede levantar varias excepciones, se separan por comas en la cláusula raises void foo() raises(exception1, Exception2);
21 Excepciones definidas por el usuario (2) Mal estilo interface DataBase { typedef sequence<row> RowList; typedef string Query; exception NoRow { Query failedquery; RowList lookup(in Query q) raises(norow); Puede ser normal que no exista ningún registro que cumpla la query El campo failedquery no aporta nada Por qué falló la query? no había filas que cumplieran la condición?, no era sintácticamente correcta?, falló la base de datos?
22 Excepciones definidas por el usuario (y 3) Buen estilo interface DataBase { typedef sequence<row> RowList; typedef string Query; exception SyntaxError { unsigned short position; exception DataBaseInternalError { string explanation; RowList lookup(in Query q) raises(syntaxerror, DataBaseInternalError);
23 Excepciones del sistema CORBA define un buen número de excepciones del sistema Cualquier operación puede levantar una excepción del sistema Nunca debe levantarlas el programador Todas las excepciones tienen la siguiente definición enum completion_status { COMPLETED_YES, COMPLETED_NO, COMPLETED_MAYBE exception <SystemExceptionName> { unsigned long minor; completion_status completed; Ej.: COMM_FAILURE, NO_MEMORY, INTERNAL, OBJ_ADAPTER, INV_OBJREF, etc.
24 Ejemplo interface Thermostat { Atributos typedef short TemperatureType; typedef string LocationType; attribute TemperatureType temperature; readonly attribute LocationType location; Los atributos no son el estado del objeto que implemente el interfaz Sólo definen operaciones para leer y escribir valores Los atributos readonly sólo definen operaciones de lectura Inconveniente: no pueden tener cláusula raises Consejo: no usuarlos
25 Declaraciones incompletas Ejemplo interface Husband; interface Wife { Husband getspouse(); interface Husband { Wife getspouse();
26 Herencia (1) Se permite herencia de interfaz interface Thermometer { typedef short Temperature; typedef string Location; Temperature gettemperature(); Location getlocation(); interface Thermostat : Thermometer { void settemperature(in Temperature t);.. y en consecuencia se soporta el polimorfismo interface Controller { Thermometer findbylocation(in Location l); void add(in Thermometer t);
27 Herencia (y 2) Todos los interfaces derivan implícitamente de Object En un parámetro de tipo Object se puede pasar una referencia a un objeto remoto de cualquier tipo La sintaxis de IDL no permite que un interfaz derive explícitamente de Object Un interfaz que deriva de otro no puede volver a declarar (redefinir) una operación del padre No tiene sentido en herencia de interfaz Se permite herencia múltiple interface AmphibiousVehicle : LandVehile, WaterVehicle { //... No se puede heredar un mismo atributo u operación de más de un interfaz base
28 Módulos Similares a los namespaces de C++ module es { module udc { module fbellas { module corbaws { module clock { module idl { struct TimeOfDay { //... interface Clock { TimeOfDay gettimeofday(); Evitan conflictos de nombres Se pueden cerrar y volver a abrir
29 Tipos anónimos (1) Con CORBA 2.4, los tipos anónimos se consideran desaprobados Complican mappings Se consideran desaprobados ( deprecated ) En consecuencia, no se deben usar Una mala definición... struct Order { long identifier; string<100> description; // deprecated! Una buena definición... typedef string<100> OrderDescription; struct Order { long identifier; OrderDescription description;
30 Tipos anónimos (y 2) Hasta CORBA 2.3 (inclusive) no queda más remedio que usar secuencias anónimas para los tipos recursivos CORBA 2.4 añade declaraciones incompletas para struct Ya no es preciso usar tipos anónimos en ningún caso typedef struct Node; typedef sequence<node, 2> ChildSequence; struct Node { long value; ChildSequence children;
31 Identificadores de repositorio (1) El compilador de IDL genera un identificador de repositorio por cada identificador Con el identificador se puede acceder a su definición (introspección) por medio del Repositorio de Interfaces El identificador debe ser único! Existen tres tipos de formatos de identificadores IDL DCE UUID (Universally Unique IDentifier) LOCAL El formato IDL es el formato que utiliza el compilador de IDL por defecto y es el usado normalmente
32 Identificadores de repositorio (y 2) Ejemplo module TCS { // IDL:TCS:1.0 typedef short Temperature; // IDL:TCS/Temperature:1.0 interface Thermometer { // IDL:TCS/Thermometer:1.0 Temperature gettemperature(); // IDL:TCS/Thermometer/getTemperature:1.0 Y qué ocurre si alguien más ha elegido el nombre TCS para un módulo? #pragma prefix es.udc module TCS { // IDL:TCS:1.0 typedef short Temperature; // IDL:es.udc/TCS/Temperature:1.0 interface Thermometer { // IDL:es.udc/TCS/Thermometer:1.0 Temperature gettemperature(); // IDL:es.udc/TCS/Thermometer/getTemperature:1.0 Otra posibilidad es usar nombres de módulos del estilo es.udc...
33 Ámbito (1) Crean ámbito (scope) módulos, interfaces, estructuras, excepciones y listas de parámetros Dentro de un ámbito los nombres de identificadores deben ser únicos Ejemplo module M1 { typdef short T1; interface I1 { typedef long T2; //... module M2 { interface I2 { void foo(in M1::T1 par1, in M1::I1::T2 par2);
34 Ámbito (y 2) Error típico interface Thermostat { typedef short Temperature; exception InvalidTemperature { //... void settemperature(in Temperature temperature) // Error! raises(invalidtemperature)
3.2 Mapping de IDL a Java
3.2 Mapping de IDL a Java Tipos predefinidos (1) Tipo IDL short long long long unsigned short unsigned long unsigned long long float double long double Tipo Java short int long short int long float double
Más detallesOMG - IDL Interface Definition Language
OMG - IDL Interface Definition Language Joan Vila DISCA / UPV Departament d Informàtica de Sistemes i Computadors Universitat Politècnica de València Especificación de interfaces OMG IDL Su objetivo es
Más detallesOMG IDL (Interface Definition Language)
OMG IDL (Interface Definition Language) Sistemas Distribuidos: Programación con CORBA Juan Pavón Mestras Dep. Sistemas Informáticos y Programación Universidad Complutense Madrid Facultad de Informática,
Más detallesSintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno
1.1. Gramática Léxica 1.1.1. Elementos Léxicos Sintaxis de C Ing. Jose Maria Sola Dr. Oscar Ricardo Bruno ->
Más detallesElementos de un programa en C
Elementos de un programa en C Un programa en C consta de uno o más archivos. Un archivo es traducido en diferentes fases. La primera fase es el preprocesado, que realiza la inclusión de archivos y la sustitución
Más detallesOMG - CORBA. Object Management Group. Common Object Request Broker (CORBA) http://www.omg.org. http://www.corba.org
OMG - CORBA Object Management Group http://www.omg.org Common Object Request Broker (CORBA) http://www.corba.org OMG - CORBA Objetivo OMG proveer un marco de arquitectura común n para aplicaciones orientadas
Más detallesSistemas de Información
Sistemas de Información Tecnologías de objetos distribuidos: CORBA: El lenguaje IDL (Invocación estática) Agradecimientos: Jesus Villamor Lugo, Simon Pickin de IT/UCIIIM, Juan Pavón UCM, Fernándo Bellas
Más detallesabril de 2017 Desarrollo de aplicaciones en Java Tipos de datos primitivos Tipos de datos Elementos de aplicaciones simples
Desarrollo de aplicaciones en Java Generación de código fuente Compilación Ejecución Elementos de aplicaciones simples EII147-01-02 Introducción a las tecnologías de información Escuela de Ingeniería Industrial
Más detallesLos tipos de datos primitivos
Los tipos de datos primitivos El lenguaje de programación Java es de tipo estático, lo que significa que todas las variables debe ser declarado antes de que puedan ser utilizados visto. Se trata de la
Más detallesLección 2 Introducción al lenguaje C
Lección Introducción al lenguaje C Decimal Binario Hexadecimal A B C D E F Octal Equivalencia entre decimal, binario, hexadecimal y octal. Código ASCII (American Standard Code for Information Interchange)
Más detallesEstructuras de Datos Declaraciones Tipos de Datos
Departamento de Informática Universidad Técnica Federico Santa María Estructuras de Datos Declaraciones Tipos de Datos Temas: 2-3-4 IWI-131, paralelo 01 Profesor: Teddy Alfaro O. Lenguaje de Programación
Más detallesUnidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones
Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice
Más detallesTEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS
TEMA 2. EL LENGUAJE C. ELEMENTOS BÁSICOS Una vez que ya sabes crear tus propios programas, vamos a analizar los fundamentos del lenguaje de programación C. Este capítulo incluye además los siguientes temas:
Más detallesDesde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial.
Tipos de Datos Desde los programas más simples escritos en un lenguaje de programación suelen realizar tres tareas en forma secuencial. Entrada de datos Procesamientos de datos Salida de resultados Los
Más detallesCurso de Java Introducción a la Programación II
Curso de Java Introducción a la Programación II Jaime Fernández Martín Curso INEM 02830. Programación en Java Marzo 2010 Índice 1 Tipos Java 2 Decalaración de variables 3 Operadores aritméticos Índice
Más detallesVARIABLES TIPOS FUNDAMENTALES
VARIABLES Una variable es un espacio reservado en el ordenador para contener valores que pueden cambiar durante la ejecución de un programa. Los tipos determinan cómo se manipulará la información contenida
Más detallesComprender las diferencias entre tipos de datos primitivos similares, y aprender a elegir el tipo más conveniente en cada caso.
Elementos básicos de programación en Java Objetivos del tema Conocer la estructura básica de un programa Java. Comprender los conceptos de tipo, valor y variable. Comprender las diferencias entre tipos
Más detallesTipos de Datos en C. Palabras reservadas en C
Tipos de Datos en C Tipo Tamaño de bits Rango char 8-128 a 127 unsigned char 8 0 a 255 signed char 8-128 a 127 int 16 32768 a 32767 unsigned int 16 0 a 65535 signed int 16 Igual que int short int 16 Igual
Más detallesLaboratorio de Arquitectura de Redes. Datos en lenguaje C
Laboratorio de Arquitectura de Redes Datos en lenguaje C Datos en lenguaje C Introducción Tipos de datos básicos y modificadores Tipos de datos enteros Tipos de datos reales Tamaño y rango de los datos
Más detallesCentro Asociado Palma de Mallorca. Antonio Rivero Cuesta
Centro Asociado Palma de Mallorca Antonio Rivero Cuesta La Sintaxis de Java I... 5 Tipos de datos... 6 Tipos de datos simples... 7 Operadores... 11 Operadores Aritméticos... 12 Operadores relacionales...
Más detallesCarlos Montenegro. Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas
2 - Introducción al lenguaje Java, identificadores y comentarios. Carlos Montenegro Programación Orientada a Objetos Proyecto Curricular de Ingeniería de Sistemas 1. Introducción: Java tiene como todos
Más detallesPrincipios de Computadoras II
Departamento de Ingeniería Electrónica y Computadoras Operadores y Expresiones rcoppo@uns.edu.ar Primer programa en Java 2 Comentarios en Java Comentario tradicional (multi-línea) Comentario de línea Comentario
Más detallesVariables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.
Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1
Más detallesVariables. Una variable no es más que un nombre simbólico que identifica una dirección de memoria: vs.
Variables Una variable no es más que un nombre simbólico que identifica una dirección de memoria: Suma el contenido de la posición 3001 y la 3002 y lo almacenas en la posición 3003 vs. total = cantidad1
Más detallesEstructura de datos y Programación
Estructura de datos y Programación Tema: Conceptos Básicos- Estructuras de control - Arreglos Ing. Analia Méndez Ing. Raquel Zarco Año: 2012 ELEMENTOS DE UN PROGRAMA EN JAVA El programa Java consta de
Más detallesQué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.
APUNTES DE JAVA Agenda Bienvenida Conociendo Java La Maquina Virtual Descargar e instalar el compilador El entorno de trabajo El paradigma de la programación orientada a objetos Qué es Java? Un lenguaje
Más detallesLenguaje C Elementos de un Programa. Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006
Lenguaje C Elementos de un Programa Ing. Hugo Fdo. Velasco Peña Universidad Nacional 2006 Objetivos Conocer los elementos que conforman un programa en C 1. Elementos léxicos de un Programa Cuando el programa
Más detallesProgramación en C. Algoritmo y Estructura de Datos. Ing. M. Laura López. Programación en C
Algoritmo y Estructura de Datos Ing. M. Laura López 1 Estructura de un programa en C 2 Estructura de un programa en C #include Archivos de cabecera # define Definición de constantes Declaraciones Globales
Más detallesProgramación 1 Tema 3. Información, datos, operaciones y expresiones
Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información
Más detallesConstrucciones del Lenguaje Java
Construcciones del Lenguaje Java Autor: Juan Alberto López Cavallotti Versión de Java: 5 / 6 Comentarios Comentario de Línea Comentario Multilínea //Esto es un comentario. /* Esto comenta varias lineas.
Más detallesVARIABLES, CONSTANTES Y EXPRESIONES ASIGNACIÓN. TIPOS ELEMENTALES. PRECEDENCIA DE LOS ESTRUCTURAS DE CONTROL. CONDICIONAL E
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora
Más detallesJava. Introducción a la Programación Orientada a Objetos
Java Java es un lenguaje de programación presentado en 1995 enfocado a: soportar los fundamentos de la programación orientada a objetos. generar código independiente de la arquitectura de la computadora
Más detallesIntroducción al lenguaje C
Introducción al lenguaje C Ampliación de Informática Belarmino Pulido Junquera Índice 1. Presentación del lenguaje C 2. Estructura de un programa en C 3. Tipos de datos escalares 4. Operadores básicos
Más detallesElementos léxicos del lenguaje de programación C
Elementos léxicos del lenguaje de programación C Elementos léxicos de los lenguajes de programación (tokens) Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices
Más detallesImplementación de clientes con CORBA y Java
Implementación de clientes con CORBA y Java Sistemas Distribuidos: Programación con CORBA Juan Pavón Mestras Dep. Sistemas Informáticos y Programación Universidad Complutense Madrid Facultad de Informática,
Más detallesInformática PRÀCTICA 9 Curs Práctica Nº 9: Rango y precisión de representación de números en el ordenador.
Departamento de Práctica Nº 9: Rango y precisión de representación de números en el ordenador. Uso de punteros Objetivos de la práctica: - Entender la representación de números (enteros y reales) en el
Más detallesTema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN
Tema 1 INTRODUCCIÓN A LOS LENGUAJES DE PROGRAMACIÓN - Introducción - Sintaxis - Semántica básica - Tipos de datos - Expresiones y enunciados - Procedimientos y ambientes - Tipos abstractos de datos y módulos
Más detallesDatos y tipos de datos
Datos y tipos de datos Dato Representación formal de hechos, conceptos o instrucciones adecuada para su comunicación, interpretación y procesamiento por seres humanos o medios automáticos. Tipo de dato
Más detallesTEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL.
Tema 2. TEMA 2. LENGUAJE C. CONCEPTOS BÁSICOS Y PROGRAMACIÓN ELEMENTAL. PARTE : VARIABLES, OPERADORES Y CONSTANTES.. INTRODUCCIÓN AL LENGUAJE C 2. PROGRAMAS BÁSICOS EN LENGUAJE C 3. DATOS EN LENGUAJE C
Más detallesTema 6: Memoria dinámica
: Programación 2 Curso 2013-2014 Índice 1 2 3 El tamaño es fijo y se conoce al implementar el programa Declaración de variables int i=0; char c; float vf[3]={1.0, 2.0, 3.0}; i c vf[0] vf[1] vf[2] 0 1.0
Más detallesProgramación Orientada a Objetos
Unidad III Programación Orientada a Objetos en Java Programación Orientada a Objetos Programación I - 0416202 Contenido Esta lección abarca los siguientes temas con respecto a Java: Qué es Java? Breve
Más detallesDescripción de un Programa
Unidad 2 Descripción de un Programa 1 El Lenguaje C (1) El lenguaje C fue creado en 1972 por Ken L. Thompson y Dennis M. Ritchie en los Laboratorios Bell. Es evolución de un lenguaje más antiguo: B (a
Más detallesInformática Lección 5. Arreglos (vectores) Curso Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas.
Fundamentos de Informática Lección 5. Arreglos (vectores) Curso 2010-2011 Pedro Álvarez y José Ángel Bañares 2/11/2010. Dpto. Informática e Ingeniería de Sistemas. Índice de contenidos Arreglos: Concepto
Más detallesINTRODUCCIóN A LA PROGRAMACIóN APUNTES DE JAVA APUNTES DE JAVA
APUNTES DE JAVA FUNCIONAMIENTO DE UN PROGRAMA Assembler Ensamblador Ejecuta Programador Programa fuente BASIC Interprete Ejecuta C, C++, Pascal Compilador Compila Ejecuta Programa fuente Programa Objeto
Más detallesTema 2. El lenguaje JAVA
Tema 2. El lenguaje JAVA Nomenclatura habitual Variables Tipos de variables Tipos primitivos Referencias Arrays Operadores Operadores de Java Precedencia de operadores Sentencias de control Sentencias
Más detallesTEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA
TEMA 5. Otras arquitecturas distribuidas II. Objetos distribuidos y CORBA II. Objetos distribuidos y CORBA 1. Objetos Distribuidos 2. CORBA 1. Características 2. Modelo de trabajo 3. ORB 4. Arquitectura
Más detalles1.1 Tipos de Datos Primitivos. 1.2 Tipos de datos estructurados. 1.3 Definición de estructura de datos
1.1 Tipos de Datos Primitivos 1.2 Tipos de datos estructurados 1.2.1 Arreglos unidimensionales, bidimensionales y cadenas de caracteres 1.2.2 Registros o Estructuras (unión y estructura) 1.3 Definición
Más detallesAnálisis semántico. Análisis semántico. Índice (I)
Análisis semántico Índice (I) Marina de la Cruz Alfonso Ortega Objetivo del análisis semántico Decisiones para la construcción de un analizador semántico Análisis semántico con Bison Nivel de indirección
Más detallesTipos de Datos Simples Contenido del Tema
T E M A 3 Tipos de Datos Simples Contenido del Tema 3.1. Concepto de Tipo 3.1.1. Elementos básicos: atributos y operaciones 3.1.2. Tipos. Concepto y necesidad 3.1.3. Operadores básicos 3.2. Tipos de Datos
Más detallesIntroducción a C++ Índice
Introducción a C++ 1. 2. 3. 4. 5. 6. Índice 1. Diferencias entre C y C++. 2. Diferencias entre C++ y Java. 3. Ejemplos. 4. Funciones. 5. Memoria dinámica 6. Librería de funciones. 1 1. Diferencias entre
Más detallesREPRESENTACIÓN DE DATOS
REPRESENTACIÓN DE DATOS Tipos de datos primitivos Tipos de Datos Estructurados TIPOS DE DATOS SIMPLES O PRIMITIVOS Dato Longitud Rango 2 TIPOS DE DATOS SIMPLES O PRIMITIVOS Surgen de la necesidad de tener
Más detallesUnidad Didáctica 1. Introducción a la Programación Orientada a Objetos (POO) Conceptos de clase, objeto e interfaz. Atributos y métodos
Unidad Didáctica 1 Introducción a la Programación Orientada a Objetos (POO) Conceptos de clase, objeto e interfaz. Atributos y métodos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos
Más detallesUnidad IV. Este tipo de codificación nos es permitido gracias a la sobrecarga, la cual se aplica a métodos y constructores.
Unidad IV Métodos. 4.1 Definición de un método. El polimorfismo, en programación orientada a objetos, se refiere a la posibilidad de acceder a un variado rango de funciones distintas a través del mismo
Más detallesConversión entre Tipos
Conversión entre Tipos La conversión entre tipos permite comparar y copiar valores entre diferentes tipos. En esta lección describiremos como convertir un tipo dado en otro. Conversión en VB y Existen
Más detallesTema 2. El lenguaje de programación Java (Parte 1)
Programación en Java Tema 2. El lenguaje de programación Java (Parte 1) Luis Rodríguez Baena Facultad de Informática Elementos del lenguaje (I) El juego de caracteres. No utiliza ASCII, sino Unicode de
Más detallesProgramación Básica Estructuras de Datos y Funciones en C
Arturo Vega González a.vega@ugto.mx Division de Ciencias e Ingenierías Universidad de Guanajuato Campus León Sesión 8 Universidad de Guanajuato, DCI, Campus León 1 / 33 Contenido 1 Estructuras de Datos
Más detallesElementos léxicos del lenguaje de programación Java
Elementos léxicos del lenguaje de programación Java Elementos léxicos del lenguaje de programación Java Palabras reservadas Identificadores Literales Operadores Delimitadores Comentarios Apéndices Operadores
Más detallesIntroducción a Java. Introducción a Java. Programación I
Introducción a Java Introducción a Java Programación I Como Funciona Tipos de Datos TIPO TAMAÑO RANGO byte 8 bits Valores numéricos de 128 a 127 short 16 bits Valores numéricos de 32.768 a 32.767 int 32
Más detalles3.3 Conceptos Básicos del Lenguaje Java
3.3 Conceptos Básicos del Lenguaje Java Conjunto de Caracteres Java utiliza Unicode, un conjunto de caracteres de 16 bits Java permite leer ASCII de 7-bit o Latin-1, conviertiéndolo a Unicode Son pocos
Más detallesTipos Recursivos de Datos
1/1 Tipos Recursivos de Datos Josefina Sierra Santibáñez 27 de noviembre de 2016 2/1 Introducción La recursividad no sólo se puede aplicar a la definición de procedimientos (i.e. funciones o acciones),
Más detallesProgramación estructurada (Introducción a lenguaje C)
Programación estructurada (Introducción a lenguaje C) M. en C. Sergio Luis Pérez Pérez UAM CUAJIMALPA, MÉXICO, D. F. Trimestre 15-I Sergio Luis Pérez (UAM CUAJIMALPA) Curso de programación estructurada
Más detallesIntroducción a Java. Dr. (c) Noé Alejandro Castro Sánchez
Introducción a Java Dr. (c) Noé Alejandro Castro Sánchez Programas Java Applets Pueden correr en navegadores Web Agregan funcionalidad a páginas Web Se llega a restringir su funcionalidad (e. g., no pueden:
Más detallesTema 05: Elementos de un programa en C
Tema 05: Elementos de un programa en C M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com edfrancom@ipn.mx @edfrancom edgardoadrianfrancom Estructuras de datos (Prof. Edgardo A. Franco) 1
Más detalles! Qué es la POO?! Un paradigma de programación. ! No hay paradigmas mejores ni peores! Todos tienen sus ventajas e inconvenientes
Introducción Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual smuelas@fi.upm.es! Qué es la POO?! Un paradigma de programación! Un paradigma es una forma de afrontar
Más detallesÍndice INTRODUCCIÓN...11 CAPÍTULO 1. SELECCIÓN DE ARQUITECTURAS Y HERRAMIENTAS DE PROGRAMACIÓN...13
Índice INTRODUCCIÓN...11 CAPÍTULO 1. SELECCIÓN DE ARQUITECTURAS Y HERRAMIENTAS DE PROGRAMACIÓN...13 1.1 Evolución Y CARACTERísticas de LOS navegadores Web...14 1.2 ARQUITECTURA de ejecución...17 1.3 Lenguajes
Más detallesIntroducción a Java 10/02/2011. Tokens. Juan Manuel Fernández Peña Curso Rev Tokens. Tokens
Introducción a Java Juan Manuel Fernández Peña Curso 2005. Rev 2011 Comentarios: //comentario /* comentario fin de comentario */ /** comentario para javadoc fin */ Palabras reservadas: (como ejemplo) abstract,
Más detallesTema 2. Tipos y Estructuras Básicas
Tema 2. Tipos y Estructuras Básicas http://aulavirtual.uji.es José M. Badía, Begoña Martínez, Antonio Morales y José M. Sanchiz {badia, bmartine, morales, sanchiz}@icc.uji.es Estructuras de datos y de
Más detallesTema 8: Tipos de datos. Sesión 24: Tipos de datos (1)
Tema 8: Tipos de datos Sesión 24: Tipos de datos (1) Referencias Programming Languages Pragmatics: Capítulo 7, apartados 7.1 (Type Systems) y 7.2 (Type Checking) Programming in Scala: Capítulo 5 (Basic
Más detallesTema 2: Desarrollo de Algoritmos. E.E. de Algorítmica
Tema 2: Desarrollo de Algoritmos E.E. de Algorítmica Temas a tratar Identificadores Variables Constantes Tipos de Datos Separadores Operadores Aritméticos Unarios Relacionales y Condicionales Nivel de
Más detallesTEMA 7: Ficheros. TEMA 7: Ficheros. 7.1.-Concepto de fichero
TEMA 7: Ficheros 7.1.-Concepto de fichero Todas las estructuras de datos que hemos visto hasta ahora utilizan memoria principal. Esto tiene dos limitaciones importantes: 1. Los datos desaparecen cuando
Más detallesPráctica 2 - Manejo de estructuras de datos y punteros
Práctica 2 - Manejo de estructuras de datos y punteros Organización del Computador 2 1er Cuatrimestre 2017 1. Estructuras estáticas: Vectores y Matrices Ejercicio 1 Para cada uno de los siguientes ítems,
Más detallesProgramación 1 Tema 3. Información, datos, operaciones y expresiones
Programación 1 Tema 3 Información, datos, operaciones y expresiones Índice Datos y tipos de datos Datos primitivos en C++ Expresiones e instrucción de asignación Datos y tipos de datos Problema información
Más detallesTEMA 02 TIPOS, OPERADORES Y EXPRESIONES
TEMA 02 TIPOS, OPERADORES Y EXPRESIONES 2.1.- Introducción. 2.2.- Datos. 2.3.- Entrada y salida básica. 2.4.- Modificadores. 2.5.- Cadenas de caracteres. 2.6.- Operadores. 2.7.- Precedencia de operadores.
Más detallesInformática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales
UNA / AREA TRANSDEPARTAMENTAL DE ARTES MULTIMEDIALES Licenciatura en Artes Multimediales Informática General 2016 Cátedra: Valeria Drelichman, Pedro Paleo, Leonardo Nadel, Norma Morales JavaScript Algoritmo
Más detallesSebastián García Galán
Universidad de Jaén E.U.P. Linares Dpto. Telecomunicaciones Área de Ingeniería Telemática Sebastián García Galán sgalan@ujaen.es Variables y tipos de datos Operaciones y operadores Clases y objetos Tipos
Más detallesANÁLISIS SEMÁNTICO VERIFICACIÓN DE TIPOS
Todos los derechos de propiedad intelectual de esta obra pertenecen en exclusiva a la Universidad Europea de Madrid, S.L.U. Queda terminantemente prohibida la reproducción, puesta a disposición del público
Más detallesUniversidad de Buenos Aires. Facultad de Ciencias Exactas y Naturales. Departamento de Computación. JSON Schema. Author: Gerardo Rossel
Universidad de Buenos Aires Facultad de Ciencias Exactas y Naturales Departamento de Computación JSON Schema Author: Gerardo Rossel 2016 Contents 1 Introducción 2 1.1 Estructura de JSON..........................
Más detallesFUNDAMENTOS DE INFORMÁTICA
FUNDAMENTOS DE INFORMÁTICA Tema 1 Introducción a la Programación en Visual Basic Departamento de Ingeniería de Sistemas y Automática Universidad de Vigo undamentos de Informática. Departamento de Ingeniería
Más detallesSobrecarga de Operadores II
D é c i m o q u i n t a S e s i ó n Metodologías y Técnicas de Programación II Programación Orientada a Objeto (POO) C++ Sobrecarga de Operadores II 1 Sobrecarga de operadores unitarios (o unarios) Son
Más detalleswww.aprendoencasa.com Curso Introducción JAVA Pág.: 1
www.aprendoencasa.com Curso Introducción JAVA Pág.: 1 Introducción Java es un lenguaje basado en la programación orientada a objetos (POO), este tipo de programación va más allá del tipo de programación
Más detallesProcesadores de lenguaje Tema 6 La tabla de símbolos
Procesadores de lenguaje Tema 6 La tabla de símbolos Departamento de Ciencias de la Computación Universidad de Alcalá Resumen La tabla de símbolos. Requerimientos de información. Diseño de la tabla de
Más detallesTema 3 Constantes, Variables y Tipos
Tema 3 Constantes, Variables y Tipos Contenidos 1. Definiciones. 1.1 Variables y Constantes. 1.2 Identificadores. 2. Declaración de Variables en un Programa en C. 3. Tipos de Datos. 3.1 Clasificación.
Más detallesTipos de datos y operadores en C++
Tipos de datos y operadores en C++ El tipo de dato determina la naturaleza del valor que puede tomar una variable. Un tipo de dato define un dominio de valores y las operaciones que se pueden realizar
Más detalles2.2 Nombres, Ligado y Ámbito
2.2 Nombres, Ligado y Ámbito Ligado estático y dinámico, reglas de ámbito y prueba de tipos. Conceptos Nombres e Identificadores Variables Tipos Ámbito Constantes Nombres Identificador que designa en el
Más detallesPROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez
PROGRAMACIÓN ORIENTADA A OBJETOS (L40629) Sabino Miranda-Jiménez Elementos de lenguaje: Identificadores Tipos de datos 2 Tipos de datos primitivos 3 Tipos de datos referenciados Clases Interfaces Arrays
Más detallesModulo I: Introducción Gestores de Bases De Datos
Modulo I: Introducción Gestores de Bases De Datos El SQL El SQL (Lenguaje de Consulta Estructurado Structure Query Language), es un lenguaje de consulta estructurado establecido claramente como el lenguaje
Más detallesPHP: Lenguaje de programación
Francisco J. Martín Mateos Carmen Graciani Diaz Dpto. Ciencias de la Computación e Inteligencia Artificial Universidad de Sevilla Tipos de datos Enteros Con base decimal: 45, -43 Con base octal: 043, -054
Más detallesProgramación Orientada a Objetos en C++
Unidad I Programación Orientada a Objetos en C++ Programación Orientada a Objetos en C++ Programación I - 0416202 Contenido Esta lección abarca los siguientes temas: Estructura y declaración de una clase
Más detallesUniversidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C
Universidad de Pamplona Materia: Programación 1 Docente: Ing. Lusbin Raúl Vargas LENGUAJE C ESTRUCTURA DE UN PROGRAMA EN C Directivas del procesador Main() { Declaraciones Definiciones proposiciones }
Más detallesProgramación 1 Grado de Ingeniería Robótica
Programación 1 Grado de Ingeniería Robótica Tema 2: Tipos de datos simples Índice: Datos en un programa Tipos de datos simples en C Datos enumerados y constantes Sintaxis para declarar, inicializar y usar
Más detallesTema 2. Concepto de Algoritmo
Tema 2. Concepto de Algoritmo Objetivos Definir el concepto de algoritmo Resolver problemas sencillos mediante el diseño de un algoritmo Conocer los tipos de datos elementales y las operaciones sobre ellos
Más detallesProgramación orientada a objetos. Resumen de Temas Unidad 5: Herencia
Programación orientada a objetos Resumen de Temas Unidad 5: Herencia 5.1 Introducción a la Herencia La herencia es el mecanismo fundamental de relación entre clases en la orientación a objetos. Relaciona
Más detallesUnidad V. Ya veremos qué poner en "algunas_palabras" y "algo_más", por ahora sigamos un poco más.
Implementación Orientada a Objetos. Unidad V 5.1 Estructura de una clase. Una clase consiste en: algunas_palabras class nombre_de_la_clase [algo_más] { [lista_de_atributos] [lista_de_métodos] Lo que está
Más detallesLaboratorio de Arquitectura de Redes. Introducción al lenguaje C
Laboratorio de Arquitectura de Redes Introducción al lenguaje C Introducción al lenguaje C Introducción Características del lenguaje C Funciones en C Identificadores o etiquetas Las librerías y el linkado
Más detallesINDICE Prologo 1 Recorrido rápido de java 2 Clases y objetos 3 Extensión de clases
INDICE Prologo XIII 1 Recorrido rápido de java 1.1. Para empezar 1 1.2. Variables 2 1.3. Comentarios en el condigo 1.4. Constantes con nombre 5 1.4.1. Caracteres Unicode 6 1.5. Flujo de control 7 1.6.
Más detallesContenido. P á g i n a 1
P á g i n a 1 Contenido Bibliotecas en ANSI C 2 Bibliotecas 2 Archivos Header 2 Funciones Públicas 2 Funciones Privadas 2 Directivas al Preprocesador 2 Caso de Estudio Saludos 4 Biblioteca saludar 4 Biblioteca
Más detallesManual de turbo pascal
Universidad Nacional Experimental De Los Llanos Occidentales Ezequiel Zamora UNELLEZ-Barinas Manual de turbo pascal Bachilleres: Martinez Ninibeth C.I:20.867.002 Mora Yaco C.I:17.205.073 Estructura de
Más detallesCorrespondencia de IDL a Java
Correspondencia de IDL a Java Sistemas Distribuidos: Programación con CORBA Juan Pavón Mestras Dep. Sistemas Informáticos y Programación Universidad Complutense Madrid Correspondencia de IDL a Java El
Más detallesTema 2: Programación basada en Objetos
Tema 2: Programación basada en Objetos Programación Orientada a Objetos Marcos López Sanz Máster en Informática Gráfica, Juegos y Realidad Virtual Índice Objetivos Introducción Vista Pública Clases Objetos
Más detallesConstantes. Las constantes no cambian durante la ejecucion de un programa en C++, en C++ existen 4 tipos de constantes:
Constantes Las constantes se pueden declarar con la palabra reservada const y se le asigna un valor en el momento de la declaracion, este valor no se puede modificar durante el programa y cualquier intento
Más detalles