El documento describe diferentes tipos de asignaciones en lenguajes de programación. Explica la diferencia entre asignaciones por copia y asignaciones por referencia, mostrando ejemplos en C y Java. También analiza la analogía entre esquemas de asignación y pasaje de parámetros, y describe otras asignaciones como de expresiones y funciones.
El documento describe las estructuras básicas de lenguajes de programación como condicionales, bucles y de decisión. Explica operadores lógicos y de comparación usados en estas estructuras. Luego detalla las estructuras if-else, switch-case y bucles while, do-while y for. Finalmente presenta ejemplos sintaxis de sistemas de gestión de bases de datos Oracle, SQL, Access e Informix.
Este documento describe conceptos básicos de diferentes lenguajes de programación como variables, tipos de datos, estructuras de control y operadores. También incluye ejemplos de código en lenguajes como Java, Visual Basic y SQL.
La programación informática o programación algorítmica, acortadaAeChm-MgMs-NnNm-OpSe
El documento presenta información sobre programación informática. En menos de 3 oraciones, resume lo siguiente: La programación involucra diseñar, codificar y mantener código para crear programas que exhiban comportamientos deseados. Esto requiere conocimientos de lenguajes de programación, algoritmos y lógica formal. El documento también presenta ejemplos de lenguajes de programación como C# y Python, así como conceptos como variables, funciones matemáticas y estructuras de control.
Este documento introduce los conceptos de datos, variables y constantes. Explica que los datos representan atributos de objetos del mundo real y pueden ser simples o compuestos. Define variables e identificadores y explica que las variables almacenan valores que cambian mientras que las constantes almacenan valores fijos. También describe tipos de datos, operadores aritméticos y lógicos, y conceptos como declaración, expresión e instrucción.
Estructura sintactica de los lenguajes de programacionkatiuska27
El documento compara tres lenguajes de programación: C, Java y Visual Basic. C es un lenguaje estructurado y eficiente. Java es orientado a objetos y toma sintaxis de C y otros lenguajes. Visual Basic permite crear interfaces gráficas donde se programan eventos. El documento también explica conceptos como tipos de datos, sentencias condicionales y de iteración, y menciona ejemplos de bases de datos como Oracle, SQL, Access e Informix. Finalmente, presenta ejemplos de pseudocódigo para diferentes tipos de problemas.
Un programa en C++ es una secuencia de caracteres que se agrupan en componentes léxicos como palabras reservadas, identificadores, constantes, operadores y signos de puntuación. El lenguaje C++ incluye tipos de datos primitivos como enteros, caracteres, decimales y booleanos, y permite declarar variables y constantes. También incluye operadores aritméticos, relacionales y lógicos para realizar cálculos y comparaciones.
El documento describe las estructuras básicas de lenguajes de programación como condicionales, bucles y de decisión. Explica operadores lógicos y de comparación usados en estas estructuras. Luego detalla las estructuras if-else, switch-case y bucles while, do-while y for. Finalmente presenta ejemplos sintaxis de sistemas de gestión de bases de datos Oracle, SQL, Access e Informix.
Este documento describe conceptos básicos de diferentes lenguajes de programación como variables, tipos de datos, estructuras de control y operadores. También incluye ejemplos de código en lenguajes como Java, Visual Basic y SQL.
La programación informática o programación algorítmica, acortadaAeChm-MgMs-NnNm-OpSe
El documento presenta información sobre programación informática. En menos de 3 oraciones, resume lo siguiente: La programación involucra diseñar, codificar y mantener código para crear programas que exhiban comportamientos deseados. Esto requiere conocimientos de lenguajes de programación, algoritmos y lógica formal. El documento también presenta ejemplos de lenguajes de programación como C# y Python, así como conceptos como variables, funciones matemáticas y estructuras de control.
Este documento introduce los conceptos de datos, variables y constantes. Explica que los datos representan atributos de objetos del mundo real y pueden ser simples o compuestos. Define variables e identificadores y explica que las variables almacenan valores que cambian mientras que las constantes almacenan valores fijos. También describe tipos de datos, operadores aritméticos y lógicos, y conceptos como declaración, expresión e instrucción.
Estructura sintactica de los lenguajes de programacionkatiuska27
El documento compara tres lenguajes de programación: C, Java y Visual Basic. C es un lenguaje estructurado y eficiente. Java es orientado a objetos y toma sintaxis de C y otros lenguajes. Visual Basic permite crear interfaces gráficas donde se programan eventos. El documento también explica conceptos como tipos de datos, sentencias condicionales y de iteración, y menciona ejemplos de bases de datos como Oracle, SQL, Access e Informix. Finalmente, presenta ejemplos de pseudocódigo para diferentes tipos de problemas.
Un programa en C++ es una secuencia de caracteres que se agrupan en componentes léxicos como palabras reservadas, identificadores, constantes, operadores y signos de puntuación. El lenguaje C++ incluye tipos de datos primitivos como enteros, caracteres, decimales y booleanos, y permite declarar variables y constantes. También incluye operadores aritméticos, relacionales y lógicos para realizar cálculos y comparaciones.
El documento habla sobre identificadores, variables y constantes en C. Explica que los identificadores son nombres para elementos de un programa, las variables representan espacios de memoria para almacenar datos cuyos valores pueden cambiar, y las constantes son valores que no cambian. También describe las reglas para crear identificadores y declarar variables y constantes, así como los diferentes tipos de datos que pueden tener.
Estructura sintactica de los lenguajes de programacion y bases de datosspedy93
El documento describe aspectos sintácticos de diferentes lenguajes de programación como C, Java, Visual Basic, SQL y Oracle. Explica elementos como comentarios, identificadores, literales, expresiones, operadores, variables, tipos de datos, estructuras de control y repetición. También incluye una sección de bibliografía con enlaces a recursos sobre las sintaxis de estos lenguajes.
El documento describe las variables y constantes en C++. Las variables son zonas de almacenamiento cuyos valores pueden variar, mientras que las constantes mantienen el mismo valor durante todo el programa. Explica cómo declarar variables y constantes, las reglas para los identificadores, y cómo asignar valores. También clasifica las variables como globales u locales dependiendo de su alcance.
El documento describe la estructura básica de un programa en C, incluyendo funciones, archivos de cabecera, la función principal, tipos de datos, declaración de variables, operadores aritméticos y lógicos, y jerarquía de prioridad de operadores. Explica que un programa en C consta de una o más funciones similares a subrutinas, con la función principal llamada main, y que las variables deben declararse antes de usarse con su tipo y nombre. También resume los tipos de datos fundamentales como char, int, long, float y double.
Un programa en C++ está compuesto por funciones, la principal es main. Incluye directivas, declaraciones globales, funciones definidas por el usuario y comentarios. Main contiene las instrucciones principales y marca el inicio del programa.
Este documento resume los principales conceptos de C++, incluyendo los tipos de datos primitivos como enteros, reales y caracteres, así como estructuras de control como condicionales, iterativas y arreglos. Explica que los tipos de datos se dividen en primitivos y derivados, y cubre temas como operadores aritméticos, lógicos y de comparación. También define las distintas estructuras de control como if, else, for, while y switch, mostrando sus diagramas de flujo correspondientes.
Este documento explica la diferencia entre constantes y variables en Pascal. Las constantes son valores que no cambian durante la ejecución de un programa, mientras que las variables pueden cambiar. Las constantes se declaran con valores fijos, mientras que las variables se declaran primero y luego se les asignan valores iniciales que pueden modificarse. Las constantes mantienen su valor original, pero las variables permiten cambiar su valor repetidamente durante la ejecución del programa.
Este documento explica conceptos básicos de programación como funciones estándar, entrada y salida de datos, funciones definidas por el usuario, paso de parámetros y punteros. Define funciones como printf() y describe cómo se usan funciones estándar y definidas por el usuario, incluido cómo se pasan parámetros y se devuelven valores. También explica la diferencia entre paso por valor y paso por referencia.
Este documento describe los conceptos básicos de las funciones en el lenguaje C, incluyendo su estructura, declaración, parámetros, variables locales, funciones de entrada/salida estándar y recursión. Explica que una función es un bloque de código que realiza una tarea específica y puede ser llamada desde otras partes del programa, y que el uso adecuado de funciones mejora la legibilidad y mantenibilidad del código.
Tema 1-2 identificadores - variable y constanteRufi Flores
Material para la asignatura de Algoritmos I. EL contenido que tienen es: definición de los identificador, reglas de los identificadores, Variables y contantes.
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeDunkherz
Un programa en C++ está compuesto por funciones, incluyendo la función principal llamada main. La estructura general incluye directivas de preprocesamiento, declaraciones globales, la función main y funciones definidas por el usuario.
Este documento describe la estructura básica de un programa en Pascal, incluyendo las secciones de cabecera, declaraciones y cuerpo. Explica los tipos de datos básicos como enteros, reales, lógicos, caracteres y cadenas, y cómo declarar variables y constantes. También cubre operadores aritméticos, lógicos y relacionales, y los procedimientos para entrada y salida de datos.
Este documento presenta las instrucciones básicas del lenguaje C, incluyendo declaraciones de variables y constantes, asignaciones, declaraciones y asignaciones combinadas, asignaciones especiales, invocación de subprogramas como printf y scanf, el comando return y bloques. Explica la sintaxis y uso de cada instrucción a través de ejemplos.
Este documento describe las características del lenguaje de programación C, incluyendo su uso para una variedad de aplicaciones, su portabilidad y eficiencia. Explica el proceso de compilación de un programa en C y los primeros pasos para escribir un programa, como definir un problema, desarrollar un algoritmo y convertirlo a código C.
Este documento describe el análisis semántico en los procesadores de lenguaje. Explica que el análisis semántico detecta errores que no fueron detectados sintácticamente y obtiene un árbol de sintaxis abstracta decorado con información. También utiliza esquemas de traducción dirigidos por la sintaxis que asocian acciones a las reglas gramaticales para realizar comprobaciones y construir el árbol.
Este documento describe la generación de código intermedio y su optimización como parte del proceso de compilación. Explica que el código intermedio es una representación independiente de la máquina que se asemeja al código objeto. Luego detalla dos formas comunes de representación intermedia: el código de tres direcciones y su implementación mediante cuádruplos o tripletes. Finalmente, ilustra un ejemplo de código fuente y su correspondiente código de tres direcciones para el cálculo del factorial.
Para convertir un algoritmo en un programa, se deben seguir varias fases: 1) edición del código fuente, 2) preprocesado del código, 3) compilación del código preprocesado que genera el código objeto, y 4) enlace del código objeto con bibliotecas para crear el programa ejecutable.
C# documento de texto junto con mapa conceptualFernando Jose
Este documento resume brevemente la historia y características de los lenguajes C, C++ y C#. C fue creado en 1972 por Dennis Ritchie como una mejora del lenguaje B. C++ fue desarrollado en 1980 por Bjarne Stroustrup para añadir características de programación orientada a objetos a C. C# fue creado por Microsoft en 2000 como parte de su plataforma .NET y es un lenguaje híbrido de C++ y Java que combina la velocidad de C++ con la orientación a objetos de Java.
El documento introduce el lenguaje de programación C. Explica la estructura básica de un programa en C, incluyendo la declaración de variables, tipos de datos fundamentales como enteros, reales y caracteres, y la entrada y salida de datos. También cubre conceptos como expresiones, operadores aritméticos, de comparación y lógicos, y la manipulación de variables.
Este documento proporciona información sobre variables y constantes en programación. Explica que una variable almacena un valor que puede cambiar durante la ejecución de un programa, mientras que una constante almacena un valor fijo que no puede cambiarse. También describe los diferentes tipos de variables como enteros, coma flotante, caracteres y cadenas, así como las formas de declarar variables y constantes en Visual Basic.NET.
El documento habla sobre identificadores, variables y constantes en C. Explica que los identificadores son nombres para elementos de un programa, las variables representan espacios de memoria para almacenar datos cuyos valores pueden cambiar, y las constantes son valores que no cambian. También describe las reglas para crear identificadores y declarar variables y constantes, así como los diferentes tipos de datos que pueden tener.
Estructura sintactica de los lenguajes de programacion y bases de datosspedy93
El documento describe aspectos sintácticos de diferentes lenguajes de programación como C, Java, Visual Basic, SQL y Oracle. Explica elementos como comentarios, identificadores, literales, expresiones, operadores, variables, tipos de datos, estructuras de control y repetición. También incluye una sección de bibliografía con enlaces a recursos sobre las sintaxis de estos lenguajes.
El documento describe las variables y constantes en C++. Las variables son zonas de almacenamiento cuyos valores pueden variar, mientras que las constantes mantienen el mismo valor durante todo el programa. Explica cómo declarar variables y constantes, las reglas para los identificadores, y cómo asignar valores. También clasifica las variables como globales u locales dependiendo de su alcance.
El documento describe la estructura básica de un programa en C, incluyendo funciones, archivos de cabecera, la función principal, tipos de datos, declaración de variables, operadores aritméticos y lógicos, y jerarquía de prioridad de operadores. Explica que un programa en C consta de una o más funciones similares a subrutinas, con la función principal llamada main, y que las variables deben declararse antes de usarse con su tipo y nombre. También resume los tipos de datos fundamentales como char, int, long, float y double.
Un programa en C++ está compuesto por funciones, la principal es main. Incluye directivas, declaraciones globales, funciones definidas por el usuario y comentarios. Main contiene las instrucciones principales y marca el inicio del programa.
Este documento resume los principales conceptos de C++, incluyendo los tipos de datos primitivos como enteros, reales y caracteres, así como estructuras de control como condicionales, iterativas y arreglos. Explica que los tipos de datos se dividen en primitivos y derivados, y cubre temas como operadores aritméticos, lógicos y de comparación. También define las distintas estructuras de control como if, else, for, while y switch, mostrando sus diagramas de flujo correspondientes.
Este documento explica la diferencia entre constantes y variables en Pascal. Las constantes son valores que no cambian durante la ejecución de un programa, mientras que las variables pueden cambiar. Las constantes se declaran con valores fijos, mientras que las variables se declaran primero y luego se les asignan valores iniciales que pueden modificarse. Las constantes mantienen su valor original, pero las variables permiten cambiar su valor repetidamente durante la ejecución del programa.
Este documento explica conceptos básicos de programación como funciones estándar, entrada y salida de datos, funciones definidas por el usuario, paso de parámetros y punteros. Define funciones como printf() y describe cómo se usan funciones estándar y definidas por el usuario, incluido cómo se pasan parámetros y se devuelven valores. También explica la diferencia entre paso por valor y paso por referencia.
Este documento describe los conceptos básicos de las funciones en el lenguaje C, incluyendo su estructura, declaración, parámetros, variables locales, funciones de entrada/salida estándar y recursión. Explica que una función es un bloque de código que realiza una tarea específica y puede ser llamada desde otras partes del programa, y que el uso adecuado de funciones mejora la legibilidad y mantenibilidad del código.
Tema 1-2 identificadores - variable y constanteRufi Flores
Material para la asignatura de Algoritmos I. EL contenido que tienen es: definición de los identificador, reglas de los identificadores, Variables y contantes.
Lenguaje de programacion c++ basico 1ra parte elementos basicos del lenguajeDunkherz
Un programa en C++ está compuesto por funciones, incluyendo la función principal llamada main. La estructura general incluye directivas de preprocesamiento, declaraciones globales, la función main y funciones definidas por el usuario.
Este documento describe la estructura básica de un programa en Pascal, incluyendo las secciones de cabecera, declaraciones y cuerpo. Explica los tipos de datos básicos como enteros, reales, lógicos, caracteres y cadenas, y cómo declarar variables y constantes. También cubre operadores aritméticos, lógicos y relacionales, y los procedimientos para entrada y salida de datos.
Este documento presenta las instrucciones básicas del lenguaje C, incluyendo declaraciones de variables y constantes, asignaciones, declaraciones y asignaciones combinadas, asignaciones especiales, invocación de subprogramas como printf y scanf, el comando return y bloques. Explica la sintaxis y uso de cada instrucción a través de ejemplos.
Este documento describe las características del lenguaje de programación C, incluyendo su uso para una variedad de aplicaciones, su portabilidad y eficiencia. Explica el proceso de compilación de un programa en C y los primeros pasos para escribir un programa, como definir un problema, desarrollar un algoritmo y convertirlo a código C.
Este documento describe el análisis semántico en los procesadores de lenguaje. Explica que el análisis semántico detecta errores que no fueron detectados sintácticamente y obtiene un árbol de sintaxis abstracta decorado con información. También utiliza esquemas de traducción dirigidos por la sintaxis que asocian acciones a las reglas gramaticales para realizar comprobaciones y construir el árbol.
Este documento describe la generación de código intermedio y su optimización como parte del proceso de compilación. Explica que el código intermedio es una representación independiente de la máquina que se asemeja al código objeto. Luego detalla dos formas comunes de representación intermedia: el código de tres direcciones y su implementación mediante cuádruplos o tripletes. Finalmente, ilustra un ejemplo de código fuente y su correspondiente código de tres direcciones para el cálculo del factorial.
Para convertir un algoritmo en un programa, se deben seguir varias fases: 1) edición del código fuente, 2) preprocesado del código, 3) compilación del código preprocesado que genera el código objeto, y 4) enlace del código objeto con bibliotecas para crear el programa ejecutable.
C# documento de texto junto con mapa conceptualFernando Jose
Este documento resume brevemente la historia y características de los lenguajes C, C++ y C#. C fue creado en 1972 por Dennis Ritchie como una mejora del lenguaje B. C++ fue desarrollado en 1980 por Bjarne Stroustrup para añadir características de programación orientada a objetos a C. C# fue creado por Microsoft en 2000 como parte de su plataforma .NET y es un lenguaje híbrido de C++ y Java que combina la velocidad de C++ con la orientación a objetos de Java.
El documento introduce el lenguaje de programación C. Explica la estructura básica de un programa en C, incluyendo la declaración de variables, tipos de datos fundamentales como enteros, reales y caracteres, y la entrada y salida de datos. También cubre conceptos como expresiones, operadores aritméticos, de comparación y lógicos, y la manipulación de variables.
Este documento proporciona información sobre variables y constantes en programación. Explica que una variable almacena un valor que puede cambiar durante la ejecución de un programa, mientras que una constante almacena un valor fijo que no puede cambiarse. También describe los diferentes tipos de variables como enteros, coma flotante, caracteres y cadenas, así como las formas de declarar variables y constantes en Visual Basic.NET.
El documento describe elementos básicos de los lenguajes de programación como léxico, sintaxis, constantes, variables y tipos de datos. Explica que el léxico se refiere a la forma visible del lenguaje mientras que la sintaxis describe las combinaciones posibles de símbolos. También define constantes como valores que no cambian durante la ejecución de un programa y variables como espacios en memoria con nombres simbólicos cuyos valores pueden cambiar.
Las variables son estructuras de datos que pueden cambiar de contenido a lo largo de la ejecución de un programa. Pueden ser de longitud fija o variable y almacenan valores de diferentes tipos de datos como lógicos, enteros o cadenas. Las variables pueden intercambiarse entre subrutinas ya sea pasando su valor o referencia y su ámbito puede ser local o global.
Programacion en java_inicio apeuntes para emsCBTis
El documento describe los diferentes tipos de datos en programación, incluyendo variables, constantes, datos primitivos numéricos y no numéricos, y datos no primitivos. Explica la declaración de variables, conversiones entre tipos de datos, y el ámbito y vida de las variables. También cubre operadores aritméticos, lógicos y relacionales.
Este documento presenta los conceptos fundamentales sobre nodos, punteros, variables de referencia, clases, métodos y componentes utilizados para desarrollar un applet en Java que permita realizar operaciones básicas con polinomios representados mediante listas enlazadas. El applet permite ingresar polinomios, sumar, restar, multiplicar, dividir, derivar e integrar polinomios utilizando estructuras de datos de nodos enlazados.
El documento describe las variables, constantes y tipos de datos en JavaScript. Explica que JavaScript es un lenguaje débilmente tipado donde las variables pueden cambiar de tipo. Define variables globales y locales, y señala que las constantes no existen realmente en JavaScript. Además, detalla los diferentes tipos de datos fundamentales como enteros, flotantes, cadenas, booleanos, nulos, indefinidos y objetos. Finalmente, introduce los operadores aritméticos básicos en JavaScript.
Este documento trata sobre los apuntadores y direcciones de memoria en lenguajes de programación como C y C++. Brevemente:
1) Los apuntadores son variables que almacenan direcciones de memoria y permiten acceder y manipular datos almacenados en memoria.
2) Los apuntadores son fundamentales en C para manejar datos dinámicos, estructuras, funciones y arreglos.
3) Los arreglos en C son efectivamente punteros a la primera posición del arreglo, por lo que se pueden usar de forma intercambiable.
Este documento proporciona una introducción al lenguaje de programación PHP. Explica que PHP se utiliza para crear contenido dinámico en sitios web y que fue creado originalmente en 1994. Luego describe algunos conceptos básicos de PHP como variables, tipos de datos, operadores y concatenación.
Este documento presenta información sobre programación. Explica conceptos clave como qué es un programa, lenguajes de programación, tipos de lenguajes, datos y códigos. También define qué es un algoritmo, da ejemplos de algoritmos y pasos para resolver problemas. Por último, describe tipos de datos, constantes, variables y operadores usados en programación.
Este documento describe cómo resolver una ecuación de segundo grado mediante un programa. Explica que el programa pedirá los coeficientes a, b y c al usuario, calculará el discriminante, y determinará si la ecuación tiene una o dos soluciones reales o complejas usando la fórmula cuadrática. El programa representará los números complejos con parte real y parte imaginaria, e imprimirá las soluciones de manera clara.
El objetivo principal del análisis semántico es computar información adicional necesaria para el procesamiento de un lenguaje una vez obtenida la estructura sintáctica de un programa. Algunas especificaciones formales de la semántica incluyen revelar ambigüedades, servir de base para la implementación, verificar propiedades y estandarizar lenguajes de manera no ambigua.
El documento presenta una lista de términos relacionados con lenguajes de programación que debe ser investigada y definida. También incluye un ensayo comparativo sobre las diferencias entre programación estructurada y orientada a objetos, así como una explicación de las diferencias entre los lenguajes C, C++ y C#. El objetivo es aprender conceptos básicos de lenguajes de programación a través de la investigación y redacción de un documento que incluya las definiciones, el ensayo y la comparación de lenguajes.
Este documento explica los conceptos básicos de algoritmos, programas, variables y datos. Define un algoritmo como una secuencia de pasos lógicos para resolver un problema. Explica que los algoritmos se usan inconscientemente en la vida diaria y provee ejemplos de algoritmos para sumar números, calcular un promedio y obtener la mitad de un número. Concluye que los algoritmos permiten planear el diseño de programas y que después de los algoritmos siguen los diagramas de flujo.
Este documento describe los diferentes tipos de datos simples en TurboPascal, incluyendo enteros, reales, booleanos y caracteres. Explica la diferencia entre constantes y variables, y cómo declarar cada tipo de dato. También cubre conceptos como compatibilidad de datos y tipos de datos predefinidos como enumerados y subrangos. El objetivo es que los estudiantes aprendan a seleccionar el tipo de dato apropiado para diferentes aplicaciones.
1. Lenguajes de Programación I
Asignaciones
Ayud. Mezzanotte, Martín
Lenguajes de Programación I
- Cursada 2006 -
Ingeniería de Sistemas
Facultad de Ciencias Exactas
Universidad Nacional del Centro
de la Provincia de Buenos Aires
2. Lenguajes de Programación I
Apunte: Asignaciones
-1-
Lenguajes de Programación I
Asignaciones
Objetivos
• Ejemplificar situaciones de asignación en esquemas de asignación por copia de
valores.
• Ejemplificar situaciones de asignación en esquemas de asignación por copia de
referencias.
• Analizar situaciones análogas entre asignaciones y pasajes de parámetros.
• Exponer relaciones conceptuales importantes entre las asignaciones y otros
temas relevantes de la materia, como por ejemplo: Administración de memoria,
diferencias y similitudes entre lenguajes dinámicos orientados a objetos y
lenguajes tipo Algol, entre otros.
Temario
Variables
• Distinción entre Valor, Referencia y Nombre.
Asignaciones entre variables
• Concepto: ¿Qué sucede en la sentencia “a:=b”?
• Ejemplificación en lenguaje C: Orientado a asignación por copia.
• Ejemplificación en lenguaje Java: Orientado a asignación por referencia.
• Comparación entre ambos esquemas de asignación:
o Existencia de ambos datos en asignaciones por copia.
o Creación de alias y generación de garbage en asignaciones por
referencia.
o Similitud con los esquemas de pasajes de parámetros
• Asignación por referencia explícita (Lenguaje C) e implícita (Lenguajes
dinámicos orientados a objetos).
Otras Asignaciones
• Asignaciones con expresiones.
• Asignaciones con funciones.
• Asignaciones con constantes.
3. Lenguajes de Programación I
Apunte: Asignaciones
-2-
Variables
Concepto de Variable:
Valor, Referencia y Nombre
En primer lugar, recordaremos algunos conceptos importantes con respecto al
manejo de variables.
De cada variable es posible distinguir:
Su valor. Es decir, el dato que se almacena en la variable.
Su referencia. O sea, la dirección de memoria donde está almacenado el valor de
la variable.
Su nombre. Es decir, un identificador que permite referenciar en lenguaje natural
una dirección de almacenamiento.
De esta forma, podemos entender las variables como ternas de la siguiente forma:
Fig. 1: Representación de una variable.
Por ejemplo:
VALOR
Dirección Nombre
void main(){
int a=14;
[…]
}
EE ED
14
26ha
4. Lenguajes de Programación I
Apunte: Asignaciones
-3-
Asignaciones entre variables
Concepto de Asignación:
¿Qué sucede en la sentencia "a:=b”?
Es importante entender correctamente qué tratamiento lleva a cabo el lenguaje de
una sentencia de asignación:
En una asignación entre dos variables, el lenguaje realiza diferentes acciones al
manipular las variables del lado izquierdo y derecho de la sentencia. Con respecto al
lado izquierdo, se utiliza el nombre de la variable para acceder a la celda de la memoria
que éste referencia, con el objetivo de almacenar el dato obtenido desde el lado derecho.
Para esto, la variable del lado derecho debe sufrir una extracción de valor
(Desreferencing).
Veamos un ejemplo de un programa simple, codificado en lenguaje C:
Ejemplo 1
Puede observarse la existencia de los datos, ya que la sentencia de incremento en
b no tuvo ningún efecto sobre el valor de a.
void main(){
int a=14;
int b=10;
a=b;
b++;
printf("nEl valor de a es %d",a);
printf("nEl valor de b es %d",b);
}
EE ED
14
26ha
10
22hb
EE ED
10
26ha
10
22hb
EE ED
10
26ha
11
22hb
El valor de a es 10
El valor de b es 11
5. Lenguajes de Programación I
Apunte: Asignaciones
-4-
Veamos ahora dos ejemplos similares codificados en lenguaje Java:
Ejemplo 2
º
Puede observarse la existencia de los datos, ya que la sentencia de incremento en
b no tuvo ningún efecto sobre el valor de a.
public class Main {
public Main() { }
public static void main(String[] args) {
int a=14;
int b=10;
a=b;
b++;
JOptionPane.showMessageDialog(null,
"El valor de a es "+a+
"nEl valor de b es “+b,"Asignaciones”,
JOptionPane.PLAIN_MESSAGE);
System.exit(0);
}
14
48ha
10
40hb
10
48ha
10
40hb
10
48ha
11
40hb
6. Lenguajes de Programación I
Apunte: Asignaciones
-5-
Ejemplo 3
En el segundo caso, cuando se utilizó objetos de tipo “Entero”, puede observarse
que el comportamiento de la sentencia de asignación es diferente: en este caso no hubo
copia del valor de la variable sino de su referencia, ya que de lo contrario la sentencia de
incremento de b no hubiese afectado el valor de a.
public class Main {
public Main() { }
public static void main(String[] args) {
Entero a=new Entero(14);
Entero b=new Entero(10);
a=b;
b.inc();
JOptionPane.showMessageDialog(null,
"El valor de a es "+a.valor()+
"nEl valor de b es
“+b.valor(),"Asignaciones”,
JOptionPane.PLAIN_MESSAGE);
System.exit(0);
}
Numero=14
48ha 1
40hb
Numero=10
1
Numero=14
48ha 0
40hb
Numero=10
2
a
40hb
Numero=11
2
Numero=14
48h 0GARBAGE
COLECTOR
public class Entero {
private int numero;
public Entero(int n) {
numero=n;
}
public int valor(){
return numero;
}
public void inc(){
numero++;
}
public void dec(){
numero--;
}
}//Fin clase Entero
7. Lenguajes de Programación I
Apunte: Asignaciones
-6-
Esquemas de Asignación:
Asignaciones por copia y Asignaciones por referencia
De los ejemplos precedentes puede concluirse que las sentencias de asignación
tienen una semántica diferente entre los primeros dos ejemplos y el tercero. Esto se debe
a que el mecanismo de asignación en cada caso es distinto. Punto que profundizaremos
a continuación.
Asignaciones por copia
El esquema de asignaciones entre variables por copia de valores funciona de la
siguiente manera:
Sobre la variable del lado derecho de la sentencia se realiza una extracción del
valor almacenado en la celda de memoria. Luego, este valor es copiado en la celda de
memoria correspondiente a la variable del lado izquierdo de la sentencia.
Como consecuencia, la única relación entre ambos datos es que –en este punto del
programa- contienen el mismo valor en sus respectivas celdas de memoria. Ambos
datos continúan siendo entidades completamente independientes, por lo cual cualquier
cambio en uno de ellos NO produce ningún efecto sobre el otro.
Este esquema de asignación puede ser observado en los primeros dos ejemplos.
Asignaciones por referencia
El esquema de asignaciones entre variables por referencia funciona de la siguiente
manera:
Sobre la variable del lado derecho de la sentencia se realiza una extracción de la
dirección de memoria (referencia) donde se halla almacenado su valor. Luego, este
valor de dirección es copiado en la referencia correspondiente a la variable del lado
izquierdo de la sentencia.
Como consecuencia, ambos nombres de variables referencian a la misma
dirección de memoria y, por ende, al mismo dato. Con lo cual, cualquier cambio a ser
realizado a este dato puede efectuarse por medio de cualquiera de los dos nombres. Esta
situación es conocida como “generación de alias”.
Existe otra consecuencia importante que debemos analizar:
¿Qué sucede con el dato que referenciaba originalmente la variable del lado
izquierdo de la asignación? La respuesta es simple:
Si no existe ninguna otra variable que lo referencie, se convierte en un bloque de
memoria utilizado pero inaccesible, es decir “garbage”. Por lo tanto, la generación de
garbage es un riesgo que se corre cuando se utiliza este esquema de asignaciones entre
variables.
Este esquema de asignación puede ser observado en el ejemplo número 3.
8. Lenguajes de Programación I
Apunte: Asignaciones
-7-
Analogía con esquemas de pasaje de parámetros
Resulta claro apreciar que existe una fuerte similitud entre estos esquemas de
asignaciones entre variables y dos tipos de pasajes de parámetros. A saber: Pasaje de
Parámetros por Copia-Valor y Pasaje de Parámetros por Referencia, respectivamente.
Fig. 2: Relación análoga entre pasaje de parámetros y asignaciones entre variables.
Conclusiones
Es posible concluir que ambos esquemas poseen beneficios y perjuicios. En el
caso del lenguaje C que, como vimos, utiliza un esquema de asignaciones por copia
también es posible asignar referencias si así se desea. Esto debe hacerse de manera
explícita, utilizando punteros del lado izquierdo de la sentencia y por medio del
operador de extracción de referencias (&) en el lado derecho (Ver fig. 3). C++, por
ejemplo, incorpora un mecanismo de generación de alias a través de la definición del
tipo de dato “referencia” (Ver fig. 4).
Generalmente, los lenguajes dinámicos orientados a objetos tienden a utilizar el
esquema de asignaciones entre variables por referencia. Esto se debe a que un objeto es
un dato bastante más complejo que una variable entera, pues no solo posee datos sino
también métodos. Con lo cual, utilizar este esquema resulta más flexible.
[…]
int a=10;
int *pun;
pun= &a; //Asignación de la dirección de ‘a’ en ‘pun’.
[…]
Fig. 3: Asignación de referencias explícita en C.
[…]
int a=10;
int &ref_a=a; //Declaración e inicialización de la referencia ‘ref_a’ a ‘a’.
[…]
Fig. 4: Declaración de un alias en C++.
Asignaciones
entre variables
Pasaje de
parámetros
Asignaciones por copia
Asignaciones por
referencia
Pasaje de parámetros
por copia
Pasaje de parámetros
por referencia
9. Lenguajes de Programación I
Apunte: Asignaciones
-8-
Otras asignaciones
Asignación de una expresión o una constante
En este caso, no existe distinción alguna entre asignación por copia o referencia
ya que las expresiones no tienen referencias. La asignación consiste en calcular el valor
de la expresión situada del lado derecho de la sentencia y almacenarlo en la celda de
memoria referenciada por la variable del lado izquierdo.
Por ejemplo:
[…]
int a;
a = 3 * 4;
[…]
Fig. 5: Asignación de expresiones en C.
El caso de asignación de una constante es análogo.
Asignación de una función
En este caso, si se asignara a la variable del lado izquierdo el puntero a la función
ubicada en el lado derecho, la variable se comportaría como un puntero a la función.
Esto no es un uso común. Lo que se hace es ejecutar la función y, luego, se asigna el
valor resultado a la celda de memoria referenciada por la variable del lado izquierdo de
la sentencia (Asignación por copia).
Por ejemplo:
[…]
int a;
a = maximo(3,6);
[…]
Fig. 5: Asignación del valor de una función en C.
En C, por ejemplo, es posible copiar el puntero de una función pero debe hacerse
en forma explícita hacia una variable de tipo puntero a función.