title: Puntero (informática)

text: Cuando se trata de matrices, la crítica operación de búsqueda suele implicar un cálculo de dirección etapa llamada que implica la construcción de un puntero al elemento de datos deseado en la matriz. Si los elementos de datos en la matriz tienen longitudes que son divisibles por potencias de dos, esta aritmética es por lo general un poco más eficiente. El relleno generalmente es usado como un mecanismo para asegurar que este sea el caso, a pesar del aumento de los requerimientos de memoria. En otras estructuras de datos, tales como las listas enlazadas, los punteros se utilizan como referencias para vincular de forma explícita una sola pieza de la estructura a otra.


title: Puntero (informática)

text: Los punteros se utilizan para pasar parámetros por referencia. Esto es útil si el programador quiere modificaciones de una función a un parámetro sea visible para llamador de la función de la función. Esto también es útil para devolver varios valores de una función.


title: Puntero (informática)

text: Los punteros también se puede utilizar para asignar y desasignar en la memoria variables dinámicas y matrices. Ya que muchas veces una variable puede volverse redundante después de que haya cumplido su objetivo, que resulta en una pérdida de la memoria mantenerla, en consecuencia es una buena práctica para desasignarla cuando ya no se necesita, utilizando la referencia de puntero original. El no hacerlo puede resultar en una pérdida de memoria (donde la memoria libre disponible va disminuyendo gradualmente, o en casos severos rápidamente, a causa de una acumulación de numerosos bloques de memoria redundantes).


title: Puntero (informática)

text: La sintaxis básica para definir un puntero es:


title: Puntero (informática)

text: int * ptr;


title: Puntero (informática)

text: Esto declara codice_1 como el identificador de un objeto, de la siguiente forma: Esto usualmente se manifiesta de forma más sucinta como 'codice_1 es un puntero a codice_2.'


title: Puntero (informática)

text: Debido a que el lenguaje C no especifica una inicialización implícita para los objetos de duración automática de almacenamiento, frecuentemente se debe prestar atención para asegurarse de que la dirección a la que codice_1 puntea es válida; por eso a veces se sugiere que un puntero pueda ser explícitamente inicializado al valor de puntero nulo, que es tradicionalmente especificado en C con la macro estandarizado codice_6


title: Puntero (informática)

text: int *ptr = NULL;


title: Puntero (informática)

text: Desreferenciar un puntero nulo en C produce un comportamiento indefinido, que podría ser catastrófico. Sin embargo, la mayoría de las implementaciones , simplemente detienen la ejecución del programa en cuestión, usualmente con un fallo de segmentación.


title: Puntero (informática)

text: Sin embargo, punteros inicializados podría obstaculizar innecesariamente el análisis del programa, ocultando de ese modo los bugs.


title: Puntero (informática)

text: En cualquier caso, una vez que un puntero ha sido declarado, el siguiente paso lógico es que se apunte a algo: int a = 5; int *ptr = NULL; ptr = &a; Esto asigna el valor de la dirección de codice_7 a ptr. Por ejemplo, si codice_7 está almacenado en la ubicación de memoria de 0x8130 entonces el valor de codice_1 será 0x8130 después de la asignación. Para eliminar la referencia al puntero, se utiliza de nuevo el asterisco:Esto significa tomar el contenido de codice_1 (que es 0x8130), "localizar" la dirección en memoria y establecer su valor en 8. Si, más tarde, se accede de nuevo, su nuevo valor será 8.


title: Puntero (informática)

text: Este ejemplo puede ser más claro si la memoria no es directamente examinada. Supongamos que codice_7 se localiza en la dirección 0x8130 en memoria y codice_1 en 0x8134; también asume de que se trata de un equipo de 32 bits de tal manera que un codice_2 tiene un ancho de 32 bits. Lo que sigue es lo que estaría en la memoria después de que se ejecuta el siguiente fragmento de código: int a = 5; int *ptr = NULL;


title: Puntero (informática)

text: Mediante la asignación la direcciona de codice_7 a codice_1: produce los siguientes valores de memoria:


title: Puntero (informática)

text: Entonces desreferenciando codice_1 mediante codificación: la computadora tendrá el contenido de ptr (que es 0x8130), 'localizado' esa dirección, y asignar 8 a esa ubicación produciendo la siguiente memoria:


title: Puntero (informática)

text: Claramente, el acceso a codice_7 producirá el valor de 8 porque la instrucción anterior modificó el contenido de codice_7 por medio del puntero codice_1.


title: Puntero (informática)

text: En C, la indización de matrices se define formalmente en términos de punteros aritméticos, es decir, la especificación del lenguaje requiere que codice_20 sea equivalente a codice_21. Así, en C, las matrices pueden ser consideradas como punteros a áreas de memoria consecutivas (sin espacios vacíos), [8] y la sintaxis para acceder a las matrices es idéntica a la cual se puede utilizar para desreferenciar punteros. Por ejemplo, una matriz codice_22 puede ser declarada y utilizada de la siguiente manera: int array[5]; /* Declara 5 enteros contiguos */ int *ptr = array; /* Las matrices pueden ser utilizadas como punteros */ ptr[0] = 1; /* Los punteros se pueden indexar con la sintaxis de matrices */ 2[array] = 4; /* El operador subíndice es conmutativo */ Esto asigna un bloque de cinco enteros y nombres de la matriz por bloques, que actúa como un puntero al bloque. Otro uso común de los punteros es para que apunte a la memoria asignada dinámicamente desde malloc que devuelve un bloque consecutivo de memoria de no menos que el tamaño solicitado que se puede utilizar como una matriz.


title: Puntero (informática)

text: Aunque la mayoría de los operadores sobre matrices y punteros sean equivalentes, es importante tener en cuenta que el operador codice_23 será diferente. En este ejemplo, sizeof (array) evaluará a codice_24 (el tamaño de la matriz), mientras que codice_25 evaluará sizeof codice_26, el tamaño del propio puntero.


title: Puntero (informática)

text: Los valores por defecto de una matriz se pueden declarar como: int array[5] = {2,4,3,1,5}; Si se asume que codice_22 se encuentra en la memoria a partir de la dirección 0x1000 de una máquina little endian de 32 bits entonces la memoria contendrá lo siguiente (los valores se encuentran en hexadecimal, así como las direcciones):


title: Puntero (informática)

text: Aquí están representados cinco enteros: 2, 4, 3, 1 y 5. Estos cinco enteros ocupan 32 bits (4 bytes) cada uno con el byte menos significativo que se almacena primero (esto es una arquitectura de CPU little endian) y se almacenan de forma consecutiva comenzando en la dirección 0x1000.


title: Puntero (informática)

text: La sintaxis de C con punteros es:El último ejemplo es cómo acceder a los contenidos del codice_22. Descomponiéndolo:


title: Puntero (informática)

text: Por ejemplo codice_38 es sinónimo de *(array+ 3), es decir, codice_39, que dice "eliminar la referencia al valor almacenado en codice_40", en este caso codice_41.


title: Puntero (informática)

text: A continuación se muestra un ejemplo de definición de una lista enlazada en C. /* la lista enlazada vacía está representada por NULL


title: Puntero (informática)

text: struct link {


title: Puntero (informática)

text: Nótese que esta definición puntero-recursivo es esencialmente la misma que la definición de referencia-recursiva del lenguaje de programación Haskell: codice_42 es la lista vacía y codice_43 es una cons cell de un tipo codice_7 con otro enlace también de tipo codice_7.


title: Puntero (informática)

text: Sin embargo, la definición de referencias es de tipo comprobado y no utiliza los valores de señal potencialmente confusos. Por esta razón, en C, las estructuras de datos normalmente se tratan a través de funciones contenedor, que son cuidadosamente verificadas para su corrección.


title: Puntero (informática)

text: Los punteros se pueden usar para pasar variables por su dirección, lo que permite cambiar su valor. A modo de ejemplo, se considera el siguiente código en C: /* se puede cambiar una copia de int n dentro de la función sin afectar el código de llamada */ void passbyvalue(int n) {


title: Puntero (informática)

text: /* En su lugar, se pasa un puntero a m. No se crea ninguna copia m de sí mismo */ void passbyaddress(int *m) {


title: Puntero (informática)

text: int main(void) {


title: Puntero (informática)

text: Los punteros se utilizan para almacenar y administrar las direcciones de los bloques de memoria asignados dinámicamente. Dichos bloques se utilizan para almacenar objetos o conjuntos de objetos de datos. Los lenguajes más estructurados y orientados a objetos proporcionan un área de memoria, llamada el montón o tienda libre, de la que objetos dinámicamente asignados.


title: Puntero (informática)

text: El código de ejemplo C siguiente ilustra cómo se asignan dinámicamente objetos de estructura y referencia. La biblioteca C estándar proporciona la función codice_46 para asignar bloques de memoria desde el montón. Se necesita el tamaño de un objeto para asignarlo como parámetro y devolver un puntero a un bloque recién asignado de memoria adecuado para almacenar el objeto, o se devuelve un puntero nulo si la asignación falla. /* Item de inventario de partes */ struct Item {


title: Puntero (informática)

text: /* Asignar e inicializar un nuevo objeto de elemento */ struct Item * make_item(const char *name) {


title: Puntero (informática)

text: El código siguiente muestra cómo se desasignan dinámicamente objetos de memoria, es decir, retorna al montón o tienda libre. La biblioteca C estándar proporciona la función codice_47 para cancelar la asignación de un bloque de memoria previamente asignado y retornar de nuevo al montón. /* Desasignar un objeto Item */ void destroy_item(struct Item *item) {


title: Puntero (informática)

text: En algunas arquitecturas de computación, los punteros pueden ser utilizados para manipular directamente de memoria o dispositivos asignados a la memoria.


title: Puntero (informática)

text: La asignación direcciones a los punteros es una herramienta invaluable en la programación de microcontroladores. A continuación se muestra un simple ejemplo de declaración de un puntero de tipo int y la inicialización a una dirección hexadecimal en este ejemplo el constante codice_48: int *hardware_address = (int *)0x7FFF; A mediados de los años 80, usar la BIOS para acceder a las capacidades de video de PC era lento. Las aplicaciones que se encontraban en pantalla intensiva normalmente se utiliza para acceder a la memoria de vídeo CGA directamente mediante colada las constantes hexadecimales 0xb8000 a un puntero a un array de 80 valores int de 16 bits sin signo. Cada valor consistía en un código ASCII en el byte bajo y un color en el byte alto. Por lo tanto, para poner la letra 'A' en la línea 5, columna 2 blanco sobre azul luminoso, uno podría escribir código como el siguiente:


title: Puntero (informática)

text: void foo() {


title: Puntero (informática)

text: En muchos lenguajes, los punteros tienen la restricción adicional de que el objeto que apuntan tiene un tipo específico. Por ejemplo, un indicador puede ser declarado para apuntar a un número entero; será el lenguaje el que trate de evitar que el programador apunte a objetos que no fuesen números enteros, tales como números de coma flotante, eliminando algunas errores.


title: Puntero (informática)

text: Por ejemplo, en C int *money; char *bags; codice_49 sería un puntero entero y codice_50 sería un puntero char. Lo siguiente daría una advertencia del compilador de "asignación desde un tipo de puntero" bajo GCC bags = money; porque codice_49 y codice_50 fueron declarados con diferentes tipos. Para suprimir la advertencia del compilador, debe quedar explícita de que realmente se desea hacer la cesión por encasillamiento. bags = (char *)money; que dice emitir el puntero entero de codice_49 a un puntero char y asignarlo a codice_50.


title: Puntero (informática)

text: Un proyecto de la norma C estándar de 2005 requiere que echando un puntero derivado de un tipo a uno de otro tipo debía mantener la corrección de alineación para ambos tipos (6.3.2.3 Punteros, par 7):


title: Puntero (informática)

text: char *external_buffer = "abcdef"; int *internal_data;


title: Puntero (informática)

text: internal_data = (int *)external_buffer; // COMPORTAMIENTO INDEFINIDO si "el puntero resultante En lenguajes que permiten la aritmética de punteros, dicha aritmética en punteros tiene en cuenta el tamaño del tipo. Por ejemplo, la adición de un número entero a un puntero produce otro puntero que apunta a una dirección que es superior en número de veces que el tamaño del tipo. Esto nos permite calcular fácilmente la dirección de elementos de una matriz de un tipo determinado, como se demostró en el ejemplo matrices C descripto arriba. Cuando un puntero de un tipo se convierte en otro tipo de un tamaño diferente, el programador debe esperar que el puntero aritmético se calcule de manera diferente. En C, por ejemplo, si la matriz codice_49 comienza a 0x2000 y codice_56 es 4 bytes mientras que codice_57 es de 1 byte, entonces codice_58 apuntará a 0x2004 pero codice_59 apuntará a 0x2001. Entre otros riesgos de la fundición se incluyen la pérdida de datos, cuando los datos "anchos" se escribe en ubicaciones "estrechas" (por ejemplo, codice_60), se obtienen resultados inesperados cuando hay valores de desplazamiento de bits, y problemas de comparación, sobre todo entre valores con signo vs valores sin signo.


title: Puntero (informática)

text: Aunque por lo general sea imposible determinar en tiempo de compilación que arroja son seguros, algunos lenguajes almacenan el tipo de información en tiempo de ejecución que puede ser utilizado para confirmar que estos peligrosos moldes son válidos en tiempo de ejecución. Otros lenguajes simplemente aceptan una aproximación conservadora de moldes seguros, o ninguno en absoluto.


title: Puntero (informática)

text: Como un puntero permite que un programa intente acceder a un objeto que puede no estar definido, dichos punteros pueden ser el origen de una variedad de errores de programación. Sin embargo, la utilidad de los punteros es tan grande que puede ser difícil realizar tareas de programación sin ellos. En consecuencia, muchos lenguajes han creado construcciones diseñadas para proporcionar algunas de las características útiles de los punteros sin algunas de sus trampas, también denominadas algunas veces peligros de punteros. En este contexto, los punteros que se dirigen directamente a la memoria (como se usa en este artículo) se conocen como punteros crudos o sin procesar, en contraste con punteros inteligentes u otras variantes.


title: Puntero (informática)

text: Uno de los mayores problemas con los punteros es que al poderse manipular directamente como un número, se pueden hacer que este apunte a direcciones no utilizadas o a datos que se está utilizando para otros fines. Muchos lenguajes, incluyendo lenguajes de programación funcionales y los últimos lenguajes imperativos como Java, reemplazan los punteros con un tipo más opaco de referencia, típicamente referido simplemente como "referencia", que solo puede ser usado para referirse a los objetos y no manipula a los números, previniendo este tipo de error. La indexación de una matriz se trata como un caso especial.


title: Puntero (informática)

text: Un puntero que no tenga ninguna dirección asignada al mismo se denomina puntero salvaje. Cualquier intento de utilizar estos punteros no inicializados puede causar un comportamiento inesperado, ya sea porque el valor inicial no es una dirección válida, o porque su uso puede dañar otras partes del programa. El resultado suele ser un fallo de segmentación, violación de almacenamiento o rama natural (si se utiliza como un puntero de función o de dirección de rama).


title: Puntero (informática)

text: En sistemas con asignación de memoria explícita, es posible crear un puntero de referencia colgante para des-asignar la dirección de memoria que apunta dentro. Este tipo de puntero es peligroso y sutil, ya una región de memoria des-asignada puede contener los mismos datos como lo hizo antes de que se cancele la asignación, pero puede ser reasignado a continuación y se sobrescriben con código ajeno, desconocido para el código anterior. Los lenguajes con recolector de basura previenen este tipo de error porque des afectación se realiza automáticamente cuando no hay más referencias en el alcance.


title: Puntero (informática)

text: Algunos lenguajes, como C++, soportan punteros inteligentes, que utilizan una forma simple de conteo de referencias con el fin de ayudar a la asignación de un registro de la memoria dinámica, además de actuar como referencia. En la ausencia de ciclos de referencia, donde un objeto se auto refiere indirectamente mediante una secuencia de punteros inteligentes, éstos eliminan la posibilidad de punteros colgantes y pérdidas de memoria. Las cadenas en Delphi soportan, de forma nativa, recuento de referencias.


title: Puntero (informática)

text: Un puntero nulo tiene un valor reservado para indicar que el puntero no se refiere a un objeto válido. Los punteros nulos se utilizan habitualmente para representar las condiciones tales como el final de una lista de longitud desconocida o el fracaso para llevar a cabo algún tipo de acción, lo que el uso de punteros nulos se puede comparar con los tipos que aceptan valores "NULL" y el valor de nada en un tipo de opción.


title: Puntero (informática)

text: Frecuentemente, los punteros nulos se consideran similares a los valores nulos en las bases de datos relacionales, pero tienen una semántica algo diferente. En la mayoría de los lenguajes de programación, un puntero nulo significa "ningún valor", mientras que en una base de datos relacional, un valor nulo significa "valor desconocido". Esto conduce a importantes diferencias en la práctica: en la mayoría de los lenguajes de programación consideran iguales dos punteros nulos se, pero no lo son dos valores nulos en las bases de datos relacionales (no se sabe si son iguales, ya que representan valores desconocidos).


title: Puntero (informática)

text: En algunos entornos de lenguaje de programación (al menos, por ejemplo, una implementación de Lisp propietaria), el valor utilizado como puntero nulo (llamado codice_61 en Lisp) puede, en realidad, ser un puntero a un bloque de datos internos de utilidad para la aplicación (pero no accesible explícitamente desde los programas de usuario), permitiendo así que el mismo registro sea utilizado como una constante útil y una forma rápida de acceder a partes internas de aplicación. Esto se conoce como vector codice_62 (‘nulo’).


title: Puntero (informática)

text: En C, dos punteros nulos de cualquier tipo están garantidos para comparar iguales tipo de datos El macro codice_63 es una implementación definida por una constante de puntero NULL, que en C99 se puede expresar portablemente como un valor entero codice_64 convertido implícita o explícitamente al tipo codice_65.


title: Puntero (informática)

text: Típicamente, desreferenciar el puntero NULL significa intentar leer o escribir en la memoria que no se asigna, esto desencadena un fallo de segmentación o violación de acceso. Esto puede representar en sí mismo, para el desarrollador, un fallo en el programa, o se transforma en una excepción que puede capturarse. Sin embargo, hay ciertas circunstancias en las que esto no es el caso. Por ejemplo, en modo en x86 real, la dirección 0000:0000 es legible y por lo general escribible, de ahí que la eliminación de referencias de puntero nulo sea una acción perfectamente válida pero, en general, no deseada que puede conducir a un comportamiento indefinido, pero no causa un crash en la aplicación. Además, tener en cuenta que hay ocasiones en que la desreferenciación NULL "es" intencional y bien definida, como por ejemplo el código del BIOS, escrito en C, para dispositivos x86 de 16 bits en modo real, puede escribir la IDT en la dirección física 0 de la máquina, desreferenciando al puntero a NULL para la escritura. También es posible que el compilador optimice desde lejos el puntero de dereferencia `NULL`, evitando un fallo de segmentación pero sin causar otro tipo de comportamiento no deseado.


title: Puntero (informática)

text: En C++, ya que el macro codice_63 fue heredado de C, tradicionalmente se prefere el literal entero para cero para representar una constante de puntero nulo. Sin embargo, C++11 ha introducido una constante codice_67 explícita que se utilizará en su lugar.


title: Puntero (informática)

text: No se debe confundir un puntero nulo con un puntero no inicializado: Un puntero nulo está garantizado para comparar desigual a cualquier puntero que apunta a un objeto válido. Sin embargo, en función del idioma y la aplicación, un puntero no inicializado tiene, o bien un valor indeterminado (al azar o sin sentido), o un valor específico que no tiene porqué ser necesariamente una especie de puntero nulo constante.


title: Puntero (informática)

text: En 2009, C. A. R. Hoare declaró que en 1965 inventó la referencia nula como parte del lenguaje Algol W, aunque, desde 1959, NIL hubiera existido en Lisp. En esa referencia de 2009 Hoare describe su invención como un "error de millones de dólares": Debido a que un puntero nulo no apunta a un objeto significativo, por lo general, (pero no siempre) intentar eliminar la referencia a un puntero nulo provoca un error en tiempo de ejecución o la inmediata caída del programa.En lenguajes con una arquitectura de etiquetado, posiblemente, un puntero nulo pueda ser reemplazado con una unión marcada que impone la manipulación explícita del caso excepcional, de hecho, un puntero nulo, posiblemente, pueda ser visto como un puntero etiquetado con una etiqueta computarizada.


title: Puntero (informática)

text: El término puntero "auto relativo" puede referirse a un puntero cuyo valor se interpreta como un desplazamiento desde la dirección del propio puntero, por lo que, si una estructura de datos, formula_1, tiene un elemento puntero auto relativo, formula_2, que apunta a una porción formula_1 de sí mismo, entonces formula_1 puede ser reubicado en la memoria sin tener que actualizar el valor de formula_2. La patente citada también utiliza el término puntero "auto relativo" para significar la misma cosa. Sin embargo, el significado de ese término se ha utilizado en otras formas:


title: Puntero (informática)

text: Un puntero base es un puntero cuyo valor es un desplazamiento desde el valor de otro puntero. Esto puede ser usado para almacenar y cargar los bloques de datos, asignando la dirección de comienzo del bloque al puntero base.


title: Puntero (informática)

text: En algunos lenguajes, un puntero puede hacer referencia a otro puntero, lo que requiere múltiples operaciones de des referenciación para llegar al valor original. Mientras que cada nivel de indirección puede añadir un costo de rendimiento, es a veces necesario para proporcionar un comportamiento correcto para estructuras de datos complejas. Por ejemplo, en C es típico definir una lista enlazada, en términos de un elemento que contiene un puntero al siguiente elemento de la lista: struct element


title: Puntero (informática)

text: struct element * head = NULL; Esta aplicación utiliza un puntero al primer elemento de la lista como un sustituto para la lista completa. Si se añade un nuevo valor al principio de la lista, debe cambiarse la cabecera para que apunte al nuevo elemento. Dado que argumentos C siempre se pasan por valor, utilizando direccionamiento indirecto doble se permite la inserción de implementarse correctamente, y tiene el efecto secundario deseable de eliminar el código de casos especiales para hacer frente a las inserciones en la parte delantera de la lista: // Dada una lista ordenada en la * cabecera, insertar el elemento elemento en la primera // lugar donde todos los elementos anteriores tienen menor o igual valor. void insert(struct element **head, struct element *item)


title: Puntero (informática)

text: // El llamador hace esto: insert(&head, item); En este caso, si el valor de codice_71 es menor que el de la codice_72, se actualizará el llamador codice_72, correctamente a la dirección del nuevo ítem.


title: Puntero (informática)

text: Un ejemplo básico es en el argumento argv de la función principal en C (y C ++), que se da en el prototipo como codice_74 - esto es debido a que la variable codice_75 es en sí es un puntero a un arreglo de cadenas (un arreglo de arreglos), por lo que codice_76 es un puntero a la cadena 0 (por convención al nombre del programa), y codice_77 es el carácter 0 de la cadena 0.


title: Puntero (informática)

text: En algunos lenguajes, un puntero puede hacer referencia a código ejecutable, es decir, puede apuntar a una función, método o procedimiento. Un puntero a función almacenará la dirección de una función que sea invoca. Si bien este mecanismo se puede utilizar para llamar a funciones de forma dinámica, muchas veces es una técnica favorita de virus y otros autores de software malicioso.


title: Puntero (informática)

text: Un puntero salvaje es un puntero que no se ha sido inicializado (es decir, un puntero salvaje no ha tenido ninguna dirección asignada a él) y puede provocar un fallo en el programa o comportarse de manera extraña. En los lenguajes de programación Pascal o C, los punteros que no están específicamente inicializados pueden apuntar a direcciones impredecibles en la memoria.


title: Puntero (informática)

text: El siguiente código de ejemplo muestra un puntero salvaje: int func(void)


title: Puntero (informática)

text: Aquí, codice_78 puede apuntar a cualquier lugar de la memoria, por lo que la realización de la tarea codice_79 puede corromper una zona desconocida de la memoria o provocar un fallo de segmentación.


title: Puntero (informática)

text: Es posible simular el comportamiento del puntero usando un índice a un matriz (normalmente unidimensional)


title: Puntero (informática)

text: Principalmente para lenguajes que no soportan punteros de manera explícita pero realizan soporte de matrices, la matriz se puede considerar y procesar como si fuera el rango de memoria completo (dentro del alcance de la matriz particular) y cualquier índice a ella puede considerarse como equivalente a un registro de propósito general en lenguaje ensamblador (que apunta a los bytes individuales pero cuyo valor real es relativo al comienzo de la matriz, no su dirección absoluta en memoria). Suponiendo que la matriz es, por ejemplo, una estructura de datos de caracteres contiguos de 16 megabytes, los bytes individuales (o una cadena de bytes contiguos dentro de la matriz) puede ser directamente dirigida y manipulada usando el nombre de la matriz con un entero sin signo de 31 bits como el puntero simulado (esto es bastante similar al ejemplo de "arreglos de C" mostrado anteriormente). La aritmética de punteros puede simularse mediante la adición o sustracción del índice, con una sobrecarga adicional mínima en comparación con la verdadera aritmética de punteros.


title: Puntero (informática)

text: Incluso es teóricamente posible, utilizando la técnica anterior, juntar con un simulador de juego de instrucciones adecuadas para simular "cualquier" código de máquina o el intermedio (bytescode) de cualquier procesador/lenguaje en otro lenguaje que no admite punteros en absoluto (por ejemplo Java / JavaScript). Para lograr esto, el código binario se puede cargar inicialmente en los bytes contiguos de la matriz para que el simulador "lea", interprete y se ejecute enteramente dentro de la memoria contenida de la misma matriz. Si es necesario, generalmente se puede activar comprobación de límites por el compilador, a los efectos de evitar por completo los problemas de desbordamiento de búfer (o si no, codificar a mano en el simulador).


title: Puntero (informática)

text: En programación es posible crear procedimientos, estructuras, variables, constantes entre otras cosas, cuando es ejecutada cada una de estas estructuras tiene una dirección en memoria, es conveniente conocer este tipo de información cuando se trabaja con lenguajes que soportan los punteros de manera no abstracta.


title: Puntero (informática)

text: A continuación veremos cómo trabajan los punteros en variables, estructuras y uniones. Los punteros que apunten a estas estructuras de almacenamiento estarán dirigidos a los primeros miembros de cada estructura, unión o matriz.


title: Puntero (informática)

text: Las estructuras de datos reservan segmentos en memoria separados para cada miembro, esto significa que cada miembro tiene su propia dirección en memoria (su propio puntero).


title: Puntero (informática)

text: Podemos representar gráficamente una estructura de datos llamada "Estructura" de la siguiente manera: Como se puede ver, existen 3 métodos de tipo numérico en memoria llamados "A","B" y "C", los dos primeros métodos (A y B) son de tipo Byte y tienen reservado 1 byte cada uno en distintos segmentos en la memoria, por lo que tienen diferentes direcciones (0x01 y 0x02 en su respectivo orden).


title: Puntero (informática)

text: La dirección de memoria de la estructura en general es igual a la dirección de su primer miembro, la dirección de su segundo miembro es igual a la dirección de su primer miembro, mas su tamaño en bytes y la dirección del tercer miembro es igual a la dirección del primer miembro, más el tamaño de los dos miembros anteriores y así sucesivamente.


title: Puntero (informática)

text: La principal diferencia entre una unión y una estructura es la memoria utilizada, a diferencia de las estructuras, las uniones solo utilizan la cantidad de memoria de su miembro más grande, y todos los miembros comparten una única dirección en memoria.


title: Puntero (informática)

text: Por ejemplo: Los miembros "A" y "C" solo pueden contener valores entre 0 y 255 (Tipo Byte), el miembro "B" puede tener valores entre 0 y 4.294.967.295 (Tipo Entero), si el miembro "A" cambia su valor a 13, también lo hacen los miembros "B" y "C" (A,B y C son igual a 13), si el miembro "B" cambia su valor a 4000, los miembros "A" y "C" se quedan únicamente en 160 ya que tratan de traducir el valor 4000 a byte (A y C son igual a 160, B = 4000), el tamaño total de la unión es de 4 bytes debido a que los miembros comparten la misma memoria (la unión pesa lo mismo que su miembro con mayor reserva de memoria).


title: Puntero (informática)

text: Las matrices son casi igual que las estructuras, reservan memoria para cada matriz, la dirección en memoria de cada miembro es consecutiva a la suma de sus anteriores, mas sus tamaños y la dirección de la matriz total es igual a la del primer miembro, la única diferencia entre una matriz y una estructura es que cada matriz tiene el mismo tipo de dato (los miembros de una estructura pueden ser de distintos tipos).


title: Puntero (informática)

text: Podemos representar a una matriz con rango de 3 (tipo entero) en memoria de la siguiente manera. Como se puede apreciar, cada miembro tiene una dirección en memoria con 4 bytes de diferencia entre sí. El puntero base de la matriz entera es la dirección de su primer matriz (Matriz@ = Matriz[0]@).


title: Puntero (informática)

text: Ada es un lenguaje fuertemente tipado en el cual todos los punteros son tipados y solamente se permiten conversiones de tipos de seguros. Todos los indicadores están por defecto inicializado en codice_80, y cualquier intento de acceder a la información a través de un puntero a codice_81 provoca una excepción. En Ada, los punteros se llaman "tipos de acceso". Ada-83 no permitía aritmética en tipos de acceso (aunque los distintos compiladores la suministren como una funcionalidad fuera del patrón), pero Ada-95 soporta tipos aritméticos en tipos de acceso seguro por el paquete codice_82.


title: Puntero (informática)

text: Varias versiones antiguas de BASIC para la plataforma Windows tenían soporte para STRPTR() para devolver la dirección de una cadena, y para VARPTR() para devolver la dirección de una variable. Visual Basic 5 también tenía soporte para OBJPTR() para devolver la dirección de una interfaz de objeto, y para un operador ADDRESSOF para devolver la dirección de una función. Los tipos de todos estos son números enteros, pero sus valores son equivalentes a estos valores por tipos de puntero.


title: Puntero (informática)

text: Sin embargo, dialectos más recientes de BASIC, como FreeBASIC o BlitzMax, tienen implementaciones de puntero exhaustivas. En FreeBASIC, la aritmética en punteros codice_83 (equivalente al codice_65 de C) son tratados como si el puntero codice_83 fuera un ancho de bytes. A diferencia de C, los punteros codice_83 no pueden ser desreferenciados. Además, la conversión entre codice_83 y cualquier otro tipo de punteros no generará ninguna advertencia. dim as integer f = 257 dim as any ptr g = @f dim as integer ptr i = g assert(*i = 257) assert( (g + 4) = (@f + 1) ) En C y C++ los punteros son variables que almacenan direcciones y pueden ser "null". Cada puntero tiene un tipo que apunta, pero el programador puede convertir libremente entre tipos de puntero (pero no entre un puntero a función y no la función de tipo de puntero). Un tipo de puntero especial llamado el "vacío puntero" permite que apunta a cualquier tipo de variable (no función), pero es limitada por el hecho de que no se puede eliminar las referencias de forma directa. La dirección en sí a veces puede ser manipulada directamente mediante colada un puntero hacia y desde un tipo entero de tamaño suficiente, aunque los resultados se han definido por la implementación y de hecho pueden causar un comportamiento indefinido; mientras que los estándares anteriores a C no tengan un tipo entero que garantice que sea lo suficientemente grande, C99 especifica el nombre definido codice_88 "typedef" en codice_89, pero una aplicación no tiene por qué proporcionarla.


title: Puntero (informática)

text: C++ es totalmente compatible con los punteros de C y el typecasting de C. También es compatible con una nueva agrupación de operadores de typecasting para ayudar a capturar a algunos casts peligrosos no deseados en tiempo de compilación. Desde C++11, la librería estándar de C++ también proporciona punteros inteligentes (codice_90, codice_91 y codice_92) que se pueden utilizar en algunas situaciones como una alternativa segura a los punteros primitivos de C. C++ también es compatible con otro tipo de referencia, muy diferente de un puntero, llamado simplemente una "referencia" o "tipo de referencia".


title: Puntero (informática)

text: La aritmética de punteros, es decir, la capacidad de modificar la dirección de destino de un puntero con operaciones aritméticas (así como comparaciones de magnitud), está restringido por el lenguaje estándar para permanecer dentro de los límites de un solo objeto arreglo (o justo después de él), porque de otro modo provocaría un comportamiento indefinido. Sumando o restando de un puntero que desplaza por un múltiplo del tamaño del tipo de datos que apunta. Por ejemplo, la adición de 1 a un puntero a valores enteros de 4 bytes incrementará el puntero por 4. Esto tiene el efecto de incrementar el puntero para señalar en el siguiente elemento en una matriz contigua de números enteros-que muchas veces presenta un resultado previsto. La aritmética de punteros no se puede realizar en punteros codice_93 porque el tipo de vacío no tiene tamaño, y por lo tanto no puede añadir la dirección de punteros, aunque gcc y otros compiladores realizan operaciones aritméticas de byte de codice_65 como una extensión no estándar. Para trabajar "directamente" con bytes, generalmente arrojan punteros a codice_95, o codice_96 si codice_97 no está definido en la biblioteca estándar que se utiliza.


title: Puntero (informática)

text: La aritmética de punteros le provee al programador una única manera de tratar con diferentes tipos: sumando y restando el número de los elementos requeridos en lugar del actual desplazamiento en bytes. (aunque el puntero sea codice_98, el codice_98 se define como tener siempre un tamaño de un byte, permite el desplazamiento del elemento de la aritmética de punteros en la práctica sea igual a un desplazamiento de bytes) En particular, la definición C declara explícitamente que la sintaxis de codice_100, que es el elemento n-ésimo de la matriz de a, es equivalente a codice_101, que es el contenido del elemento apuntado por codice_102. Esto implica que codice_103 es equivalente a codice_100, y se puede escribir, por ejemplo, codice_105 o codice_106 por igual para acceder al cuarto elemento de una matriz codice_7.


title: Puntero (informática)

text: Aunque poderosa, la aritmética de punteros puede ser una fuente de errores informáticos. Este tiende a confundir a los programadores novatos, forzándolos a diferentes contextos: una expresión puede ser una aritmética ordinaria uno o una aritmética de punteros uno, ya veces es fácil confundir uno con el otro. En respuesta a esto, muchas lenguajes informáticos modernos de alto nivel (por ejemplo Java) no permiten el acceso directo a memoria utilizando direcciones. Además, el dialecto seguro de C, Cyclone, aborda muchos de los problemas con los punteros. Véase lenguaje de programación C de examinar más.


title: Puntero (informática)

text: El puntero codice_93, o codice_65, es compatible en ANSI C y C++ como tipo de genérico puntero. Un puntero a codice_93 puede almacenar una dirección a cualquier tipo de datos no-función, y, en C, se convierte implícitamente a cualquier otro tipo de puntero en asignación, pero se debe convertir explícitamente si es desreferenciado en línea. K&R C utiliza codice_111 para el propósito de "puntero de tipo agnóstico" (antes de ANSI C). int x = 4; void* q = &x; int* p = q; /* void* convierte implícitamente a int*: válido en C, pero no en C++ */ int i = *p; int j = *(int*)q; /* cuando se desreferencia en línea, no hay conversión implícita */ C++ no permite la conversión implícita de codice_65 a otros tipos de puntero, incluso en las asignaciones. Esta fue una decisión de diseño para evitar vaciados descuidados e incluso no deseados, aunque la mayoría de los compiladores solo muestren advertencias como salida, no errores, cuando se encuentran con otros cast. int x = 4; void* q = &x; // int* p = q; Esto falla en C++: no hay conversión implícita de void* int* a = (int*)q; // cast estilo C int* b = static_cast(q); // C++ cast En C++, no hay codice_113 y (referencia a void) para complementar codice_65 (puntero a void), ya que las referencias se comportan como alias a las variables que apuntan, y nunca puede ser una variable cuyo tipo es codice_93.


title: Puntero (informática)

text: En el lenguaje de programación C#, los punteros son compatibles solo bajo ciertas condiciones: cualquier bloque de código que incluya punteros debe ser marcada con la palabra clave codice_116. Generalmente, tales bloques requieren permisos de seguridad superiores a código pointerless que se le permitiera correr. La sintaxis es esencialmente la misma que en C++, y la dirección apuntada se puede gestionar tanto memoria administrada como no administrado. Sin embargo, los punteros a memoria administrada (cualquier puntero a un objeto administrado) deben ser declarado usando la palabra clave codice_117, lo que evita que la recolector de basura del movimiento del objeto apuntado, como parte de la gestión de memoria mientras el puntero está a su alcance, lo que mantiene válida la dirección del puntero.


title: Puntero (informática)

text: Una excepción a esto es utilizar la estructura de codice_118, que es un equivalente administrado seguro para codice_119, y no requiere código no seguro. Este tipo suele aparecer cuando el uso de métodos de las codice_120, por ejemplo: // Obtener 16 bytes de memoria de la memoria no administrada del proceso IntPtr pointer = System.Runtime.InteropServices.Marshal.AllocHGlobal(16);


title: Puntero (informática)

text: // Hacer algo con la memoria asignada


title: Puntero (informática)

text: // Liberar la memoria asignada System.Runtime.InteropServices.Marshal.FreeHGlobal(pointer); El .NET Framework incluye muchas clases y métodos en el sistema y los espacios de nombres codice_120 (como la clase codice_122) que convierten tipos de.NET (por ejemplo, codice_123) desde y hacia muchos tipos no administrados y punteros (por ejemplo, codice_124 o codice_125) para permitir la comunicación con código no administrado.


title: Puntero (informática)

text: El lenguaje de programación COBOL soporta punteros a variables. Los objetos primitivos o datos de grupos (graban) objetos de datos declarados dentro de la codice_126 codice_127 de un programa son inherentemente basados en punteros, donde la única memoria asignada en el programa es el espacio para la dirección del elemento de datos (normalmente una palabra de memoria individual), basados en punteros. En el código fuente del programa, estos elementos de datos son utilizados como cualquier otra variable codice_128, pero sus contenidos están indirecta e implícitamente accedidos a través de sus punteros codice_126.


title: Puntero (informática)

text: El espacio de memoria para cada señaló a objeto de datos se suelen asignar dinámicamente utilizando las sentencias codice_130 externos o a través de construcciones del lenguaje extendidos embebidas como codice_131 codice_132 o sentencias codice_131 codice_134


title: Puntero (informática)

text: Las versiones extendidas de COBOL también proporcionan variables de puntero declarados con cláusulas codice_135 codice_136 codice_137. Los valores de estas variables de puntero se establecen y modifican usando codice_138 y declaraciones codice_138 codice_140.


title: Puntero (informática)

text: Algunas versiones extendidas de COBOL también proporcionan variables de codice_141 triple, que son capaces de almacenar las direcciones de código ejecutable.


title: Puntero (informática)

text: El lenguaje PL/I proporciona soporte completo para punteros a todos los tipos de datos (incluyendo punteros a estructuras), recursividad, multitarea, manejo de cadenas, y amplias funciones incorporadas. PL/I era un salto absoluto hacia adelante en comparación con los lenguajes de programación de su tiempo.


title: Puntero (informática)

text: El lenguaje de programación D es un derivado de C y C++, que es totalmente compatible con los punteros de C y los typecasting de C.


title: Puntero (informática)

text: El lenguaje Eiffel orientado a objetos soporta punteros en forma de referencias, que se escriben y no permiten ningún tipo de aritmética de punteros. El estándar ECMA para Eiffel incluye un mecanismo de "tipo adjunto" que pretende garantizar un void seguro.


title: Puntero (informática)

text: Fortran-90 introdujo la capacidad de puntero inflexible de tipos. Los punteros en Fortran contienen algo más que una simple dirección de memoria. También encapsulan los límites inferior y superior de dimensiones de matriz, pasos (por ejemplo, para soportar a las secciones de matriz arbitrarias), y otros metadatos. Un "operador asociación", => se utiliza para asociar un puntero a una variable que tiene un atributo codice_142. El Fortran-90 también se puede usar la declaración codice_143 para asociar un puntero a un bloque de memoria. Por ejemplo, el siguiente código podría ser usado para definir y crear una estructura de lista enlazada:


title: Puntero (informática)

text: type real_list_t end type


title: Puntero (informática)

text: type (real_list_t), target :: my_real_list type (real_list_t), pointer :: real_list_temp


title: Puntero (informática)

text: real_list_temp => my_real_list do end do Fortran-2003 añade soporte para punteros de procedimiento. También, como parte de la función de "Interoperabilidad de C", Fortran-2003 es compatible con las funciones intrínsecas para la conversión de punteros al estilo C a punteros Fortran y traseros.


title: Puntero (informática)

text: Go tiene punteros. Su sintaxis de declaración es equivalente a la de C, pero escrito al revés, terminando con el tipo. A diferencia de C, Go tiene la recolección de basura, y no permite la aritmética de punteros. Al igual que en C++, no existen los tipos de referencia. Algunos tipos incorporados, como los mapas y canales, están encuadradas (es decir, internamente son punteros a estructuras mutables), y se inicializan utilizando la función codice_144. Como un enfoque diferente (que los tipos de referencia) a la sintaxis unificada entre punteros y no punteros, el operador flecha (codice_145) se ha dejado caer—es posible utilizar el operador punto directamente en un puntero a un tipo de datos para acceder a un ámbito o método del valor desreferenciado, como si el operador punto se utiliza en el tipo de datos subyacente. Esto, sin embargo, solo funciona con 1 nivel de indirección.


title: Puntero (informática)

text: A diferencia de C, C++ o Pascal, no hay representación explícita de punteros en Java. En cambio, las estructuras de datos más complejas como los objetos y las matrices se implementan utilizando referencias. El lenguaje no ofrece operadores explícitos de manipulación de punteros. Aún es posible para el código intentar eliminar la referencia de una referencia nula (puntero null), sin embargo, lo que resulta en una excepción de tiempo de ejecución que es lanzada. El espacio ocupado por objetos de memoria no referenciados se recupera automáticamente recolectando la basura en tiempo de ejecución.


title: Puntero (informática)

text: Los punteros son fuertemente implementados como en Pascal, al igual que los parámetros codice_146 en las llamadas a procedimiento. Modula-2 es más inflexible incluso que Pascal, con al menos vías de escape del sistema de tipos. Algunas de las variantes de Modula-2 (como Modula-3) incluyen recolección de basura.


title: Puntero (informática)

text: Al igual que Modula-2, los punteros están disponibles. Aún hay un menor número de maneras de evadir el sistema de tipos y así Oberon y sus variantes son aún más seguros con respecto a los punteros de Modula-2 o sus variantes. Al igual que con Modula-3, la recolección de basura es una parte de la especificación del lenguaje.


title: Puntero (informática)

text: A diferencia de muchas lenguajes que cuentan con punteros, el estándar ISO Pascal solo permite punteros para hacer referencia a las variables creadas dinámicamente que son anónimas y no les permiten referenciar estándares estáticos o variables locales. No tiene aritmética de punteros. Los punteros deben también de tener un tipo asociado, y un puntero a un tipo no es compatible con un puntero a otro tipo (por ejemplo, un puntero a un char no es compatible con un puntero a un entero). Esto ayuda a eliminar los problemas de seguridad inherentes tipo con otras implementaciones de puntero, especialmente los utilizados para PL/I o C. También elimina algunos riesgos causados por punteros colgados, pero la capacidad de dejar de lado el espacio de forma dinámica se hace referencia mediante el procedimiento estándar codice_147 (que tiene el mismo efecto que la función de la librería codice_148 encontrada en C) significa que el riesgo de punteros no se ha eliminado por completo.


title: Puntero (informática)

text: Sin embargo, en algunas implementaciones comerciales y de código abierto de compiladores de Pascal (o derivados)-como Free Pascal, Turbo Pascal o Object Pascal en Embarcadero Delphi—se le permite un puntero hacer referencia a las variables estáticas o locales estándares y se puede lanzar desde un tipo puntero a otro. Por otra parte la aritmética de punteros está restringida: añadiendo o restando de un puntero se mueve por ese número de bytes en cualquier dirección, pero utilizando los procedimientos estándar codice_149 o codice_150 con que se mueve el puntero por el tamaño del tipo de datos que se "declara" a apuntar. Un puntero sin tipo también proporciona bajo el nombre de codice_151, que es compatible con otros tipos de puntero.


title: Puntero (informática)

text: El lenguaje de programación Pauscal presenta un fuerte soporte de punteros, permitiendo apuntar a variables, estructuras, procedimientos, prototipos, uniones e incluso clases y sus métodos. Los punteros se pueden utilizar para almacenar la dirección en memoria de un objeto o para crear una referencia a este. Pauscal utiliza los punteros para convertir tipos de datos sin necesidad de ninguna interfaz de programación de aplicaciones (API) externa, aumentando la velocidad de ejecución de los programas ligeramente y permitiendo que estos sean "nativos" del lenguaje.


title: Puntero (informática)

text: El lenguaje de programación Perl soporta punteros, aunque raramente se utilizan, en forma de funciones de empaquetado y desempaquetado. Estos están destinados únicamente a las interacciones simples con bibliotecas OS compiladas. En todos los demás casos, Perl utiliza referencias, que se escriben y no permiten ningún tipo de aritmética de punteros. Estos se utilizan para construir complejas estructuras de datos.


title: Andrés Cabas

text: Andrés Mauricio Cabas Rosales (Barranquilla, 7 de octubre de 1976), más conocido como Cabas, es un cantautor colombiano, cuyo estilo incorpora al pop y al "rock" latino distintos elementos del folclor de su país, tomados principalmente de ritmos autóctonos de la Costa Caribe como el fandango, el "porro", la cumbia, el "bullerengue", la "chalupa" y el "chandé".


title: Andrés Cabas

text: Hablar de Cabas es hablar de un hombre que lleva la música en las venas, desde pequeño estuvo influenciado por el sonido de su tierra Barranquilla, creció en medio de puyas, bullerengues, porros, fandangos y cumbias, con marcadas mezclas africanas; pero sobre todo por su padre músico y compositor Eduardo Cabas de La Espriella, destacado compositor y músico de Manizales, le inició desde los cinco años en los ritmos colombianos. Desde los seis años, Andrés Cabas estudió piano y practicó con otros instrumentos, en especial con la percusión. También fue una gran influencia para él su profesor, Helbert Ballestas, a quien conoció durante sus años en el y a quien presentó su idea de combinar la música Colombiana con rock. Durante su adolescencia conoció la música clásica, el rock, la música electrónica que vinieron a sumarse a la cumbia, el fandango y los distintos ritmos propios de su país.


title: Andrés Cabas

text: Su carrera profesional inició en el 2001 cuando publicó su primer álbum al que tituló “CABAS”, este trabajo hizo estallar en cada canción su ritmo contagioso, sensual y candente, combinando alegres melodías con letras originales como la de “Mi Bombón”, canción que lo consagró en Colombia y el mundo, ocupando por tres meses, desde su lanzamiento, el primer lugar en las estaciones radiales y dándole su primer Disco de Oro, seguido por un doble Disco de Platino en Colombia.


title: Andrés Cabas

text: Desde este momento su carrera artística empezó a crecer vertiginosamente, sobrepasando las fronteras con su estilo, recibiendo los mejores elogios de la crítica mundial, y convirtiéndose en el artista Revelación según Billboard y él en artista colombiano con mayor proyección internacional. Así lo demostró al convertirse en un embajador llevando a otros lugares la música de nuestro país, sorprendiendo al mundo con su estilo propio, logrando participar en grandes e importantes eventos y lugares como: La Casa Blanca, en el homenaje a la premio nobel de la paz Wangari Maathai, en el Madison Square Garden, en Japón, Europa, Latino América, México y Estados Unidos.


title: Andrés Cabas

text: Su transición hacia el segundo disco fue apoyada por artistas como Lenny Kravitz, Miguel Bosé y Shakira. Así llega “Contacto”, producción que refleja un estilo que le es propio y da continuidad a una emergente carrera. Los halagos no pararon, el diario “The New York Times” lo catalogó como uno de los mejores discos de 2004 – compartiendo este puesto junto a grandes producciones como las de Alicia Keys y Radiohead.


title: Andrés Cabas

text: Con “La Caderona”, el primer sencillo, logra apoderarse de los primeros lugares en los charts de Latinoamérica y su vídeo, del mismo nombre, se estrena en primicia al mundo a través de la cadena MTV.


title: Andrés Cabas

text: Su participación en el homenaje al genial músico Carlos Santana, en el evento Person of theYear, de los Premios Grammy le sirvió a Cabas de plataforma para consagrarse entre los músicos más respetados. Fue nominado a Artista Revelación en los Premios Grammy Latino y llamó la atención por caminar hasta el evento en vez de acudir en limusina. En los MTV Latin Awards fue nominado a Mejor Álbum de Rock, Mejor Intérprete Rock, el Peoples Prize y Mejor Video de rock en los Premios Lo Nuestro de Univisión.


title: Andrés Cabas

text: Cabas ya sabía para entonces lo que quería y cómo lo quería. “Puro Cabas” fue su tercer álbum de estudio salió en 2005. Varias de sus canciones se grabaron en El Cielo Recording Studios, Monterrey, México y fueron co producidas con el compositor Colombiano Kike Santander. Una de ellas, la exitosa “La Cadena de Oro” permaneció en el Top10 de la MTV por mucho tiempo y se utilizó también para el videojuego desarrollado por EA Sports, FIFA 07. Por otra parte, “Vámonos de aquí” y “Llega la noche”, contaron con la colaboración de los músicos de la banda norteamericana The Black Eyed Peas y con la producción general del mexicano Toy Hernández. Siguió después el segundo sencillo del disco; "Increíble" que le dio también mucho reconocimiento internacional.


title: Andrés Cabas

text: En “Amores Difíciles” (2008), su cuarto disco bajo la producción de Carlos Jean, colabora increíblemente junto a Enrique Bunbury y Orishas en “He Pecado”. “Bonita”, primer sencillo de esta producción, sirvió de abrebocas para revelar uno de los discos más reales y únicos de su trayectoria, batiendo récords al sostenerse por más de 22 semanas #1 en las radios de Latinoamérica.


title: Andrés Cabas

text: Su quinta producción "Si Te Dijera" (2011), consolidó su carrera artística. En esta oportunidad contó con colaboraciones especiales de artistas como: Andrés Calamaro, Vicentico, Mala Rodríguez y Ale Sergi, del grupo argentino Miranda.


title: Andrés Cabas

text: Luego llegaría “Increíble Pero Cierto – Grandes Éxitos” (2012), un álbum recopilatorio en el que se conmemora los 10 años de carrera artística del intérprete y compositor colombiano.


title: Andrés Cabas

text: Con la desaparición de la discográfica EMI, Cabas pasó de facto a ser un artista independiente y lanzó el sencillo "Que Prenda La Moto" y su videoclip en junio de 2013.


title: Andrés Cabas

text: Cabas ha compuesto y dirigido obras musicales para teatro en Nueva York, al lado del director Jorge Alí Triana y el nobel Vargas Llosa, para la obra ""Pantaleón y las Visitadoras"" musicalización que le mereció el premio "ACE" de periodismo teatral en Nueva York. Además logró compenetrarse tanto con el escritor Vargas Llosa quién aseguró: "La música de Cabas parece hecha por el mismo autor de la obra teatral".


title: Andrés Cabas

text: Además de esto Cabas participó en la creación musical "Un Mundo Mejor - 37 canciones inspiradas en Las Fábulas de Gunter" obra naturalista del científico belga Gunter Pauli, en la que se incluyeron 37 canciones en español y en inglés, logrando llegar con esta maravillosa obra al corazón de todos los niños y jóvenes promoviendo el conocimiento, el amor y respeto por la madre naturaleza. Este proyecto ha sido editado en diferentes países gracias al interés de profesores y alumnos.


title: Andrés Cabas

text: A finales de 2015 Cabas lanzó su sencillo “Enamorándonos” (APM) primero en Colombia y pronto después en Ecuador. En ambos países, el sencillo escaló hasta lo alto de las listas convirtiéndose en un Hit en las emisoras de radio. El videoclip, de gran creatividad a pesar del bajo presupuesto de producción, salió en febrero de 2016 y alcanza las 8 millones de reproducciones en Youtube.


title: Andrés Cabas

text: Cabas participó cantando la canción durante la gala final de La Voz Ecuador en julio y “Enamorándonos” se lanzó oficialmente en México en agosto de 2016.


title: Andrés Cabas

text: Cabas ha estado componiendo para su nuevo álbum así como para otros artistas. Se han sincronizado sus canciones en anuncios y programas de TV en todo el mundo. Recientemente, “Enamorándonos” fue incluida el la BSO de la película mexicana “Treintona, Soltera y Fantástica” con Bárbara Mori y dirigida por Chava Cartas que se estrenó en octubre de 2016, liderando la taquilla de inmediato. La canción fue seleccionada como canción de cabecera del programa “EnamorándonosTV” de Azteca TV.


title: Andrés Cabas

text: Luego del éxito alcanzado con la balada romántica "Tanto Que Te Amo Tanto""," escrita para su hijo Simón de 8 años - la cual hizo suspirar a toda América Latina, Estados Unidos y llevó de nuevo a Cabas a convertirse en uno de los preferidos del público - el cantante nos presenta su nuevo éxito "Rompe Los Niveles".


title: Andrés Cabas

text: "Rompe Los Niveles" original mezcla de cumbia con reguetón se lanzó en verano de 2017. Esta explosiva canción, escrita e interpretada junto a Descemer Bueno, el mago detrás de "Bailando" (Enrique Iglesias), pondrá una vez más al mundo a bailar.


title: Andrés Cabas

text: Actualmente, Cabas prepara su nuevo disco entre Bogotá, Miami y Ciudad de México. El que será el séptimo disco de su carrera, saldrá a principios de 2018 y tendrá canciones tanto en español como en inglés.


title: Andrés Cabas

text: La edición especial llamada "De la sombra a la luz" contiene 3 canciones más:


title: Andrés Cabas

text: - Soñar no cuesta nada


title: Andrés Cabas

text: - Cuando tu cariño


title: Andrés Cabas

text: - Amor de mis amores


title: Baeza (España)

text: Baeza es una ciudad y municipio de España, en la provincia de Jaén. Está integrada en la comarca de La Loma y es cabeza del partido judicial de Baeza.


title: Baeza (España)

text: El 3 de julio de 2003 la UNESCO declaró los conjuntos monumentales renacentistas de Úbeda y Baeza Patrimonio de la Humanidad.


title: Baeza (España)

text: Además, destaca como centro de producción de aceite oliva.


title: Baeza (España)

text: Denominada ""Nido Real de Gavilanes"" por el romancero, fue un punto clave en la conquista de al-Ándalus por los reyes cristianos; pasando definitivamente al reino de Castilla en 1227. Atalaya sobre el Guadalquivir, la posesión de su alcázar (considerado como inexpugnable) aseguró la retaguardia castellana, la vez que supuso una amenaza constante para los reinos islámicos situados al oeste y al sur del Guadalquivir; una amenaza que se hizo efectiva durante los más de dos siglos de lucha fronteriza que separaron la incorporación de Baeza al reino de Castilla y la caída del reino nazarí de Granada (1492).


title: Baeza (España)

text: Durante el período de gran crecimiento demográfico y económico que supuso la mayor parte del siglo XVI, y aún en parte del XVII, Baeza construyó sus edificios públicos y administrativos con alto sentido de capitalidad y con la más alta dignidad, conformando así, junto con las construcciones eclesiásticas, un tejido urbano caracterizado por una monumentalidad que ha dado a la ciudad un encanto especial a los ojos del visitante.


title: Baeza (España)

text: Se encuentra a unos 48 km al noreste de la capital provincial, y limita por el este con el municipio de Úbeda, con el que comparte la capitalidad de la histórica Comarca de La Loma.


title: Baeza (España)

text: En la escalera monumental del edificio plateresco del Ayuntamiento (en su primer escalón) está marcado un círculo que históricamente señala este punto como el centro geográfico del Reino de Jaén, el kilómetro cero provincial. De hecho, no fue hasta finales del siglo XVI cuando la ciudad de Jaén tomó el relevo a Baeza, en todos los ámbitos, como cabeza del Santo Reino que devino en la actual provincia. La ciudad, que en la Reconquista encabezó el actual territorio que ocupa hoy la provincia de Jaén, actualmente sigue siendo en cierto modo "el alma histórica" de esta provincia, y resume la esencia de lo jiennense.


title: Baeza (España)

text: Situada en lugar dominante de la muy histórica comarca de La Loma y en la margen derecha del Guadalquivir, que discurre a corta distancia por su alto valle, se alza la ciudad de Baeza, tan antigua como la Historia misma. La ciudad se encuentra asentada sobre tres cerros y el pequeño valle que queda en medio, en una posición bastante elevada sobre el valle del Guadalquivir, situación propicia para ser una plaza importantísima de la antigüedad.


title: Baeza (España)

text: Baeza, al igual que el resto de La Loma presenta un clima mediterráneo-continental, con unos inviernos bastante fríos, (6 °C de temperatura media en enero) y unos veranos calurosos, aunque sensiblemente menos que en el cercano valle del Guadalquivir (25 °C en agosto). Su temperatura media anual es de unos 15 °C. Las lluvias se concentran principalmente entre los meses de octubre y mayo, siendo los veranos muy secos.


title: Baeza (España)

text: Número de habitantes del municipio en los últimos años según el INE:


title: Baeza (España)

text: En campo de gules, un castillo con dos torres de oro, almenado, aclarado de azur y mazonado de sable, en cuya puerta y en cada una de sus hojas, figura una llave de plata, puesta en palo. El castillo está surmontado por un aspa o sotuer de oro, y este a su vez, por una cruz patriarcal de plata.


title: Baeza (España)

text: Despliega la heráldica municipal sobre paño morado, de conformidad con el pendón morado de León.


title: Baeza (España)

text: Compuesto en los años cuarenta del s. XX, cuenta con letra del que fuera alcalde Francisco Rodríguez Haro y música del maestro Emilio Cebrián Ruiz.


title: Baeza (España)

text: El mote "Nido Real de Gavilanes" se ha colado a veces en una filacteria bajo el escudo a modo de lema.


title: Baeza (España)

text: Se puede hablar de una "prehistoria" relevante en Baeza por los muchos yacimientos arqueológicos que hay catalogados. Aunque hasta la Edad del Cobre, a mediados del III Milenio a.C., no aparecen según los muestreos ciertos grupos humanos de entidad significativa, es cierto que del V Milenio a.C. hay datos de existencia en la zona de grupos epipaleolíticos en lo que respecta a sus hábitos de vida, caracterizados por una supervivencia de cazadores y recolectores. Mil años después acudirán comunidades de más al sur, concretamente de las cuevas y abrigos de Sierra Mágina; se trata de grupos que traen consigo formas neolíticas basadas en la actividad agraria y en ciertos avances técnicos como el pulimento de la piedra y la cerámica. Todo ello ha sido documentado en yacimientos como el de Los Horneros, Los Morales y Toya. En la Edad del Cobre aparecen poblados de cabañas, algunos amurallados, mirando al Guadalquivir, donde las tierras eran más fértiles. Se trata ya de una economía ciertamente diversificada: agricultura, aprovechamientos forestales, ganadería, pesca y caza, con utensilios y herramientas de muchos tipos. En la Edad del Bronce aparecen nuevos poblados; las actividades siguen siendo prácticamente las mismas y a través de los ajuares funerarios se percibe cierta estratificación social.


title: Baeza (España)

text: En el Cerro del Alcázar, al sur de la ciudad, existió una de estas ciudades íberas durante al menos trescientos años. Estaba amurallada y con cabañas intramuros bajo las cuales se llevaban a cabo enterramientos. En dicho cerro se ubicaron sucesivos poblados íberos a partir del siglo IV a. C.


title: Baeza (España)

text: Las distintas fuentes clásicas, ya sean escritas o epigráficas, mencionan a la Vivatia, cuya relación con dicha cultura se remonta a la época del Imperio, allá por el siglo I a.C. Fue adscrita primero a la Hispania Citerior, pagando tributos pero con leyes propias. En el siglo I de nuestra era se incluyó en el Conventus Carthaginensis (Provincia Tarraconense) cuya administración y economía estaban regidas por Cartago Nova y la vecina ciudad capital de Cástulo. Décadas más tarde Vespasiano le otorgaría la categoría de Municipio Flavio, lo que le confería superior rango administrativo sobre las "villae" de la comarca. Es una época en la que Vivatia juega un papel fundamental en las vías de comunicación que dan paso a la plata que iba de las minas de Sierra Morena hacia la costa oriental de la península.


title: Baeza (España)

text: En época posterior, al final del imperio romano Biatia o Beatia, recoge el testigo de capitalidad de la provincia que ostentaba Cástulo, al trasladarse aquí la ceca y el obispado. También se verá afectado el territorio con las oleadas de invasiones bárbaras, en el siglo V, aunque una oligarquía hispanorromana mantendrá su pujanza en la comarca hasta que en el siglo VI la presencia y autoridad visigoda se muestre con más fuerza. La aristocracia goda se funde con la hispanorromana y se hacen con todos los resortes del poder; el campesinado está compuesto en su mayoría por hispanorromanos, la clase social más numerosa, con propietarios libres de tierra, colonos y esclavos, e incluso era ya incipiente un grupo judío dedicado a la empresa y el comercio.


title: Baeza (España)

text: En la Hispania visigoda fue sede episcopal de la iglesia, sufragánea de la Archidiócesis de Toledo que comprendía la antigua provincia romana de Cartaginense en la diócesis de Hispania. De hecho, aún se conservan restos visigodos bajo muchos edificios, como parece el caso del arco embutido en uno de los muros de la iglesia románica de Santa Cruz.


title: Baeza (España)

text: Vuelven los cambios con la llegada de los musulmanes, a la que llamaron Bayyasa, en el siglo VIII. El territorio se redistribuye entre hispanogodos, las tribus árabes y los Omeyas; mientras la Iglesia, aunque continúa existiendo, pierde poder económico. Los muladíes (convertidos al islam) y los mozárabes (cristianos que permanecen en Al-Andalus) conformaron estructuras sociales no muy distintas a las previamente existentes.


title: Baeza (España)

text: Tras periodos diversos de crisis que conducen a la caída del Califato, llega la época de los reinos de Taifas durante la cual Bayyasa será sometida por unos y otros. En 1147 es reconquistada por Alfonso VII el Emperador con la supuesta ayuda de San Isidoro de Sevilla que se le aparece en sueños mientras la asediaba. Para honrar esta toma se creó en la ciudad capital de León la cofradía del Pendón de Baeza. La ciudad acuñará moneda para el rey leonés bajo el gobierno del gobernador procristiano Abdallaziz.


title: Baeza (España)

text: Diez años después los almohades la conquistan. Sin embargo, el 16 de julio de 1212, las tropas cristianas comandadas por el castellano Alfonso VIII destruirán el Imperio Almohade casi por completo en la Batalla de las Navas de Tolosa. En unas terceras taifas, Bayyasa se erige en capital de una efímera Taifa de Baeza que comprendía una amplia zona de Jaén y Córdoba. Su "emir" Abd Al·lah al-Bayyasi se declaró vasallo de Fernando III, apoyándole en campañas contra otros emires musulmanes. Al-Bayyasi murió asesinado a traición en Almodóvar del Río y el 30 de noviembre de 1227 Fernando III, el Santo, toma posesión definitiva de Baeza en nombre del hijo de aquel, Abd al-Mon, aunque finalmente integra la ciudad en el Reino de Castilla. Los musulmanes expulsados viajan al sur y se establecen en el Albaicín de Granada.


title: Baeza (España)

text: Hasta la reconquista de Jaén en 1246 Baeza es la capital del efímero Reino de Baeza, después integrado en el nuevo Reino de Jaén. Igualmente también se traslada la titularidad de la diócesis a la nueva capital del reino. En este periodo el nombre de la ciudad fue tomado como apellido.


title: Baeza (España)

text: Fernando III dota a Baeza del Fuero Conquense, con la pretensión de atraer a población de territorios cristianos del norte. Enrique II hace grandes donaciones a sus seguidores en la región y así la oligarquía consolida en ella su poder. A partir de esta época dos poderosas familias, los Benavides y los Carvajales se enfrentan entre sí en lo que se puede denominar "guerra civil baezana", cuyo fin estuvo determinado por la actuación decisiva de Isabel la Católica, que para prevenir nuevas pugnas mandó demoler el imponente Alcázar de la ciudad, sito en el cerro homónimo.


title: Baeza (España)

text: En los siglos XV y XVI la economía baezana crece merced a la gran producción cerealística, de harinas, maderas, azafranes, sedas, vid y olivo, además del peso de la caballería y la ganadería, lo que se proyecta en una gran industria de paños y curtiduría con el consiguiente comercio de estas manufacturas. A mediados del XVI la población de Baeza duplica ya la del siglo anterior y su riqueza agrícola, ganadera, industrial y comercial potencia una pequeña nobleza que quiso proyectar su status social tanto a través de la monumentalidad de sus casonas como de los edificios públicos desde los que regía colectivamente la vida de la ciudad; los mismos que hoy dotan de esplendor y encanto a la misma.


title: Baeza (España)

text: No obstante, durante el siglo XVII se produjo una recesión económica paralela a la del resto de España; todo ello motivado por la descabellada política de los sucesores de Felipe II (Felipe III, Felipe IV, Carlos II...), sobre todo en relación al exterior, por las continuas guerras estériles, tan gravosas para la economía y la población. Solo decir que de tener excedentes de cereal, se hubo de pasar a la importación de grano, lo que hundió aún más la economía.


title: Baeza (España)

text: Con la llegada del 1700, el nuevo siglo trae también una nueva dinastía, los Borbones, que dieron otro aire al Estado español. Para la Baeza agotada, quizá fue ya demasiado tarde y el punto de inflexión marcado por el s. XVII constituiría a la postre un muro casi insalvable. La propiedad del agro seguiría en porcentaje altísimo en manos de latifundistas y de la Iglesia, mientras apenas había tierra en manos de pequeños propietarios o arrendatarios. Muy grave resultó para la ciudad el terremoto de Lisboa, de 1755, que quebrantó la mayoría de edificios y viviendas. En 1779 se produce la segregación de Begíjar de Baeza y en 1795 la de Lupión (que contenía entonces también Torreblascopedro).


title: Baeza (España)

text: La infinidad de avatares políticos de la España del XIX, entre ellos el desastre de gravísimas consecuencias de la ocupación francesa, hicieron que Baeza quedará aún más diezmada demográfica y económicamente; solo en la segunda mitad del siglo se pudo experimentar una recuperación, pero el posterior desarrollo en otras localidades mineras adyacentes a Sierra Morena fueron aspectos que nuevamente repercutieron negativamente en Baeza. En 1824, bajo el reinado de Fernando VII, se ordena la supresión definitiva de la Universidad de Baeza, aunque el uso del edificio continuó siendo educativo. De 1892 data la plaza de toros, con corrida inaugural de Lagartijo y Guerrita. La tensión política y social se acentúa a principios del siglo XX y el movimiento obrero da lugar al nacimiento de grupos anarcosindicalistas y socialistas. Después, la dictadura de Primo de Rivera no resultó demasiado beneficiosa para la ciudad que vio como se frustraba el ferrocarril Baeza-Utiel (definitivamente cancelado en 1964), y la Reforma Agraria promulgada en 1932 por la Segunda República no estuvo acorde con las expectativas creadas. De 1924 data el Banco Puche, cuyo nombre oficial era Hijo de Dionisio Puche, banquero que operaba desde finales del S.XIX. En 1936, tras el comienzo de la Guerra Civil Española (1936–1939), se expropiaron muchas tierras que pasaron a manos de colectividades supervisadas por la UGT y la CNT.


title: Baeza (España)

text: En la primera etapa del franquismo no hubo ninguna mejora ostensible; la década de los 40 fue durísima en todos los sentidos: una política restrictiva de postguerra y las malas cosechas acentuaron la precariedad de los que han sido llamados "años del hambre". El "Plan Jaén" que se implementó durante los años 50 finalmente fue un fracaso, en parte por la falta de interés del régimen, y en los 60 el denominado desarrollismo tampoco fue algo que se dejara notar especialmente en Baeza. De mediados de siglo data el Poblado de Colonización de Puente del Obispo, promovido por el Instituto Nacional de Colonización. Al igual que en otras poblaciones agrícolas de Jaén se produce a mediados de siglo un éxodo rural a las ciudades industriales de Madrid, Cataluña y Valencia, pero también a Europa, sobre todo a Francia y Alemania. En 1981 el alcalde José Luís Puche impulsa la instalación en Baeza de la Academia de Guardias y Suboficiales en detrimento de la institución ubicada en Úbeda.


title: Baeza (España)

text: El 3 de julio de 2003 la UNESCO declara los conjuntos monumentales renacentistas de Úbeda y Baeza Patrimonio de la Humanidad. Este acontecimiento profundiza el relanzamiento de la ciudad al incrementar considerablemente el interés del sector turístico.Baeza es una agrociudad, donde el cultivo del olivo es el mayor generador de riqueza y empleo, ya que al menos el 47 % de la población activa trabaja en el sector agrícola. Hay más de 16.000 ha dedicadas al cultivo del olivo, principalmente para la venta mayorista. Son aceites de una gran calidad, en 2020 la envasadora Olivar de la Monja obtuvo el premio Evooleum Award al mejor picual y Aceite Supremo al mejor royal. Aceites Perales quedó finalista en los Premios Mario Salinas del Consejo Oleícola Internacional


title: Baeza (España)

text: Dentro del sector terciario, gracias a su condición de conjunto monumental renacentista Patrimonio de la Humanidad cuenta con 10 establecimientos hoteleros y el sector servicios se ve favorecido, no solo por el turismo, sino también por la existencia de la Academia de Guardias y Suboficiales. En 2019 el precio medio del alquiler en Baeza era el segundo más alto de la provincia, solamente por detrás Jaén.


title: Baeza (España)

text: Baeza se asienta sobre un terreno que ha estado continuamente habitado, al menos desde la Edad del Bronce. Por esta razón, y a pesar de las sucesivas destrucciones sufridas por las construcciones de todos los períodos, la ciudad aún retiene un destacado patrimonio monumental en el que están representadas diversas culturas, períodos y estilos artísticos. En Baeza pueden contemplarse restos de la Edad del Bronce, de la Época Romana, y de la Hispania visigoda, islámica y cristiana. No obstante, el más rico patrimonio monumental conservado corresponde a los diversos estilos artísticos presentes en la Baeza cristiana: desde el tardo-románico y el gótico, al renacentista, manierista, barroco y neoclásico. No en vano en 2003 el casco histórico de la población, con su antigua ciudad intramuros, fue declarado Patrimonio Mundial por la Unesco.


title: Guarda (Portugal)

text: Guarda es una ciudad y de Portugal situado en la Región estadística del Centro (NUTS II) y la comunidad intermunicipal de Beiras y Sierra de la Estrella (NUTS III), capital del distrito homónimo. El municipio contaba con 42 541 habitantes en 2011, mientras el núcleo urbano de la ciudad tenía 31 224 habitantes en 2006. Está cerca de la frontera con España, a unos 40 km de Fuentes de Oñoro, Salamanca, vía Vilar Formoso. Guarda es la ciudad situada a mayor altitud en Portugal (1056 m) y también es capital de la Comunidad urbana das Beiras. Es una de las ciudades más importantes de la región portuguesa de la Beira Alta. La sierra de la Estrella, la más elevada en Portugal Continental, se sitúa parcialmente en el distrito. La ciudad es servida por trenes nacionales e internacionales en las líneas ferroviarias de la Beira Alta y Baixa.


title: Guarda (Portugal)

text: Guarda es conocida como la «ciudad de las cinco F»: "Farta, Forte, Fria, Fiel e Formosa" - abundante (o totalmente satisfecha), fuerte, fría, leal y hermosa. La explicación de las cinco F es la siguiente:


title: Guarda (Portugal)

text: Limita con los municipios de Almeida, Belmonte, Covilhã, Celorico da Beira, Gouveia, Pinhel, Manteigas y Sabugal. Se encuentra a una distancia de 37 km de Pinhel (Beira Alta), 42 / 46 km de los pueblos vecinos de Vilar Formoso (Portugal) y Fuentes de Oñoro (Castilla y León, España), 53 km de Covilhã (Beira Baixa), 56 km de la cima de la sierra de la Estrella ("Torre"), 71 km de Ciudad Rodrigo (Castilla y León, España), 76 km de Viseu (Beira Alta), 98 km de Castelo Branco (Beira Baixa), 152 km de Coímbra (Beira Litoral), 163 km de Salamanca (Castilla y León, España), 198 km de Oporto (Douro Litoral), 320 km de Lisboa (la capital de Portugal), 371 km de Madrid (la capital de España), 426 km de Santiago de Compostela, en Galicia (España), 989 km de Barcelona, en Cataluña (España). Las autopistas A25 (entre Albergaria-a-Velha y Vilar Formoso) y A23 (entre Torres Novas y Guarda) sirven la ciudad.


title: Guarda (Portugal)

text: Guarda tiene un clima mediterráneo "Csb" (templado con verano seco y templado) según la clasificación climática de Köppen.


title: Guarda (Portugal)

text: Antes de la reforma administrativa de enero de 2013 la actual freguesía urbana de Guarda estaba dividida en tres freguesías: São Vicente, Sé y São Miguel da Guarda. Aparte de las tres ya mencionadas, el resto de freguesías del municipio extintas en el proceso fueron: Carvalhal Meão, Seixo Amarelo, Ribeira dos Carinhos, Gagos, Avelãs de Ambom, Rocamondo, Corujeira, Trinta, Mizarela, Pêro Soares, Vila Soeiro, Albardo, Pousada, Rochoso y Monte Margarida.


title: Guarda (Portugal)

text: Tras la reforma administrativa de 2013, el número de freguesías se redujo a 43: Durante mucho tiempo los historiadores creían que la civitas Igaeditanorum (Egitania) se localizaba en Guarda, pero más recientemente se ha llegado a la certeza de que esta ubicación fue en Idanha-a-Velha, en Beira Baixa. Fue a partir de aquí que el gentílico de "egitaniense", en relación a los nativos de la ciudad, echó raíces. Bordeando las tierras de los "igaeditani", al norte de Guarda, estaban las tierras de los "lancienses oppidani" cuya capital, la "civitas Lancia Oppidana", fue referida como que se localizaba a poca distancia de la ubicación actual de Guarda. Esta teoría fue defendida ferozmente por el general João de Almeida (influyente militar portugués, héroe de las campañas africanas, nativo de Guarda), lo que ha llevado a algunos críticos a menospreciarla. Sin embargo, todas las investigaciones siguientes indican su veracidad. Ya el topónimo «Guarda» habrá sido una derivación de una fortaleza con vistas al río Mondego, el Castro Tintinolho, cuyo lugar fue llamado «Ward» por los visigodos.


title: Guarda (Portugal)

text: Hay evidencias de un impacto de un meteorito en la región, al Noreste de Guarda, con cerca de 35 km de diámetro. Algunas pruebas pre-ordovícicas (del período Cámbrico, la más antigua época del Fanerozoico) están presentes.


title: Guarda (Portugal)

text: En los primeros siglos de la romanización de la península ibérica, pueblos lusitanos vivían en la región de Guarda. Estos pueblos incluían, a saber, los igaeditani, los lancienses oppidani y los transcudani. Estos pueblos, unidos bajo una verdadera federación, resistieron a la romanización durante dos siglos. A diferencia de los pueblos latinizados, estos pueblos no consumían vino, pero en su lugar, cerveza de bellota. Su arma preferida era la falcata: una espada curva, que rompía fácilmente las espadas romanas debido a su superioridad metalúrgica. Sus dioses paganos también diferían de los romanos. Aún se pueden encontrar algunas inscripciones religiosas lusitanas en algunos santuarios como Cabeço de Fráguas. Se defiende que el ancestral poblado de "Castelos Velhos", de la Edad del Hierro, estaba ubicado en la actual ciudad de Guarda.


title: Guarda (Portugal)

text: Si bien existen dudas sobre el lugar de nacimiento, el guerrero lusitano Viriato (heróe de la historia portuguesa hasta la actualidad) pudo haber nacido en la región de Guarda en los «montes Herminios», correspondientes a la actual sierra de la Estrella. Otros historiadores sugieren que él pudo haber nacido más cerca de la costa portuguesa. Su muerte por asesinato hecho por traidores pagados por Cepión, cónsul y militar romano que participó en la Guerra Lusitana, se produjo en Cabeço de Fráguas, en el actual municipio de Guarda, en el 139 o 138  a. C.


title: Guarda (Portugal)

text: Después de la época romana, siguió el período de la ocupación por los visigodos. Más tarde, la región fue ocupada por la civilización islámica y por el Reino de Asturias. Sólo después del proceso de la reconquista cristiana fue concedido su fuero, lo que definitivamente confirmó la importancia de la ciudad y de la región.


title: Guarda (Portugal)

text: En 1199 Sancho I de Portugal realizó la transferencia de la diócesis de "Egitania" a Guarda, a la vez que concedió a la ciudad un fuero que se basaba en el fuero breve de Salamanca. Emplazada en alto, la ciudad tuvo una notable importancia defensiva y estratégica. La judería de la ciudad, que ya tenía cierta importancia allá por el siglo XIII entre las comunidades del reino de Portugal, se encontraba hacia el siglo XV entre las 600 y las 850 personas, y acogió una importante cantidad de judíos expulsados de España en 1492.


title: Guarda (Portugal)

text: En 1202 se creó la diócesis de Guarda, transferida de Idanha, la antigua e importante ciudad romana Egitania, que fue abandonada en gran parte durante el tiempo de las invasiones y guerras contra los moros (musulmanes), ya que, según las leyendas, su situación en la frontera y su difícil localización y defensa la expusieron a ataques militares, por parte de moros y de cristianos. La ciudad de Guarda fue fundada en un lugar mucho más fácil de defender, lo que permitiría que se tomase a Idanha como el puesto principal de Beira Interior.


title: Guarda (Portugal)

text: La primera Catedral de Guarda fue construida en ese mismo año, por iniciativa del obispo D. Martinho y con el apoyo del rey Sancho I. Sin embargo, pocos años después, sería transferida hacia otro lugar en el interior de las puertas de la ciudad, entre los años de 1208 y 1214. Entre 1390 y 1396 se construyó da actual Catedral de Guarda, por iniciativa del obispo D. Frei Vasco después del apoyo concedido por el rel Juan I. La catedral después fue ampliada entre 1397 y 1426, entre 1435 y 1458, y entre 1504 y 1517.


title: Guarda (Portugal)

text: El rey Dionisio y la reina Isabel estuvieron en la región de Guarda después de su matrimonio, realizado el 11 de febrero de 1281 en el Palacio Real de Barcelona. Allí estuvieron entre noviembre de 1281 y finales de julio de 1282, particularmente en la villa de Trancoso. El rey firmó las "Costumbres de Guarda" que consistían de cartas del rey Dionisio en relación a las apelaciones de los residentes de las aldeas y granjas bajo la jurisdicción eclesiástica del obispo, sobre los ingresos de 1100 libras que el condado arrendó a Alfonso, conde de Bolonia, y también sobre el conflicto que existía entre los habitantes de Vela y los habitantes de Guarda (1311, 1315, 1321). Allí el rey Dionisio I preparó también la guerra con Castilla, la cual sería resuelta a través del Tratado de Alcañices. En 1282, el rey Dionisio realizó las primeras Cortes de Guarda.


title: Guarda (Portugal)

text: En 1371, concedió en Guarda una "tierra de refugio" para los "humanizados", que eran las personas condenadas por asesinato, a quién el rey perdonaba ciertos delitos o faltas, con el objetivo de que ellos se establecieran en las tierras cercanas a las fronteras. En 1383 fue creado en la ciudad un colegio para estudiantes pobres por el obispo Afonso Correia II, asociado con la escuela episcopal de Guarda, existente desde (al menos) el siglo XIII.


title: Guarda (Portugal)

text: En 1465 el rey Alfonso V realizó nuevas Cortes en Guarda, donde se prohibió que los jueces de la Cámara Civil desembarguen hechos relacionados con la ciudad de Lisboa y cuyas resoluciones eran competencias exclusivas del rey. En 1475, el príncipe Juan (futuro rey Juan II) condujo un Consejo en Guarda para reunir a las tropas que participarían en la Batalla de Toro, dentro del transcurso de la Guerra de Sucesión Castellana. En los años 90 del siglo XV, cuando la expulsión de los judíos de España ocurrió, Guarda recibió nuevos habitantes para su comunidad judía, que traerían una nueva vida al comercio en esta zona fronteriza. En 1493, el nacido y residente en Guarda, Rui de Pina planeó el Tratado de Tordesillas y partió en una misión diplomática a Castilla. En 1496 y 1497, durante el reinado de Manuel I, se ordenó la conversión o expulsión de los judíos, lo que llevó a la aparición de los llamados cristianos nuevos (o marranos), y así como a la expulsión de los moros, dando lugar a la aparición del cripto-judaísmo en la región. En el 22 de octubre de 1536 empezó la Inquisición, y fue puesta en marcha la persecución contra los hindúes (en la India Portuguesa), los musulmanes y los judíos. Las persecuciones fueron también puestas en marcha en Guarda, particularmente a partir de 8 de junio de 1564, cuando fue dada la autorización a D. Ambrosio Capelo, inquisidor de Guarda, para conducir la inquisición en las diócesis de Guarda y Lamego.


title: Guarda (Portugal)

text: En 1580, durante el curso de la crisis dinástica de 1580, el obispo de Guarda, D. Juan, tomó partido por la independencia de Portugal y se opuso a la dominación filipina. El obispo luego resistió al desenlace de Batalla de Alcántara y continuó tomando partido por Antonio, prior de Crato, al contrario de todos los otros obispos portugueses. El 18 de marzo de 1582, el Papa condenó los "excesos" cometidos por D. Juan, obispo de Guarda, y él murió en 1592 bajo el dominio de Felipe II de España (Felipe I de Portugal).


title: Guarda (Portugal)

text: El 21 de septiembre de 1597, se celebró el sínodo en que se iniciaron nuevos estatutos o constituciones del obispado de la ciudad, con el fin de dar cabida a los decretos del Concilio de Trento, en el contexto de la contrarreforma de la Iglesia católica.


title: Guarda (Portugal)

text: En 1655 se intensificó la explotación de minas de estaño en Guarda. En 1674, tuvo lugar el sínodo diocesano de Guarda, con el fin de regular los diezmos. Entre 1728 y 1730, el médico guardense Simón de Castro fue condenado por la inquisición en la ciudad, por acusaciones de judaísmo. Como resultado, se refugió en la India portuguesa, donde se estableció desde 1734.


title: Guarda (Portugal)

text: En 1762-1763 la región de Guarda fue invadida por las fuerzas españolas, durante la Guerra de los Siete Años, y varios pueblos de la zona fueron ocupados por España, incluyendo Almeida. Este pueblo fue devuelto a Portugal en 1763, después del tratado de paz firmado en París. En 1801, el Marqués de Alorna construyó búnkeres en Guarda, contra los ataques de bombas, tras el deterioro de las relaciones diplomáticas con España. Ese mismo año, fue demolido el primer tramo de las murallas, por órdenes del Alorna Marqués, con el fin de volver a utilizar su piedra en la construcción de un fuerte en el pueblo vecino de Vale de Estrela, al oeste de la ciudad. Como resultado de la invasión napoleónica de Portugal, con tropas comandadas por el general francés Loison, se produce en Guarda una revuelta en 21 de junio de 1808, después del traslado de la corte portuguesa a Brasil como consecuencia de estas invasiones. El 22 de marzo de 1811, el general francés André Masséna decidió concentrar el ejército francés en torno de Guarda y Belmonte, lejos de las fortalezas de Ciudad Rodrigo y Almeida. El 3 de abril del mismo año, en la batalla de Sabugal, el militar británico Wellington ganó contra el general Jean Reynier, y obligó a Masséna a salir de Portugal. Después de las devastaciones particularmente severas causadas en la Diócesis de Guarda y su vecina Diócesis de Pinhel (actualmente también en el distrito de Guarda), estas dos diócesis fueron, en Portugal, hasta agosto de 1811, la tercera y la cuarta más beneficiadas por las donaciones a las víctimas de la tercera invasión francesa de Portugal conducida por Masséna, justo detrás de Leiría y Lisboa.


title: Guarda (Portugal)

text: En 1829, durante una ola de frío, se informó en Guarda que las temperaturas habían caído a unas suficientemente bajas para congelar los huevos, el aguardiente y otras cosas que sólo se congelan con un frío muy intenso. En 1835, fue destruido otro tramo de la muralla, entre la torre del homenaje y "Porta Nova" (Nueva Puerta), y su piedra fue utilizada en la construcción del nuevo cementerio público. En 1855 se fundó el Liceo de Guarda. En esta institución estudiaron personajes famosos relacionados con la literatura y otras áreas intelectuales en Portugal, incluyendo Vergílio Ferreira (escritor galardonado con el Premio Camões), Eduardo Lourenço (ensayista y filósofo) y Augusto Gil (poeta neorromántico) En 1868, durante el reinado de Luis I se comenzó a publicar de Guarda "O Egytaniense", que fue uno de los primeros periódicos en Guarda y, probablente, el primero periódico de la ciudad. La Asociación Humanitaria de Bomberos Voluntarios Egitanienses (la cual, hoy, es más conocida como "Bomberos Voluntarios de Guarda"), fue fundada en 1876 por iniciativa de un grupo de guardenses preocupados por la falta de un cuerpo de bomberos en la ciudad. En 1881, la Diócesis de Pinhel (incluyendo, a saber, Almeida) fue extinta e incorporada en la Diócesis de Guarda. En 1882 se inauguró (con la presencia del rey Luis I y de la familia real) la línea ferroviaria de Beira Alta, que unía la ciudad costera de Figueira da Foz y Vilar Formoso, en la frontera con España, parando en la estación ferroviaria de Guarda. Actualmente es la principal conexión ferroviaria entre Portugal y el resto de Europa. En 1893, se completó una segunda línea ferroviaria con la estación terminal en Guarda (la línea de Beira Baixa), conectando esta ciudad y Abrantes, en Ribatejo. El 1 de enero de 1899 se introdujo la iluminación eléctrica en Guarda, siendo así una de las primeras ciudades portuguesas que fue electrificada. En 1897 se fundó, en la ciudad, la "Escola Normal" (Escuela Normal) para la formación de profesores de la enseñanza secundaria. En mayo de 1907, con la presencia del Rey D. Carlos y de la reina D. Amelia, se inauguró en la ciudad el Sanatorio Sousa Martins, el primero de ese tipo que ha sido introducido por la "Asistencia Nacional a las víctimas de la tuberculosis".


title: Guarda (Portugal)

text: Después de la implementación de la república en Portugal, en 1910, surgirían en todo el Distrito de Guarda, con especial concentración en Guarda y Seia, periódicos que mayoritariamente asumirían claramente los ideales republicanos para fines de propaganda. Estos constiturían una fuente de extrema importancia para la reconstrucción de la historia reciente de las diversas comunidades del Distrito durante la implementación del régimen republicano.


title: Guarda (Portugal)

text: El legendario poeta guardense Augusto Gil falleció el 26 de febrero de 1929, ya en la época de la dictadura militar. Después de las convulsiones políticas y militares y la crisis económica, en gran parte causadas por la decisión sobre la participación de Portugal en la Primera Guerra Mundial, ocurre el golpe militar del 28 de mayo de 1926, que conduciría a una dictadura de 48 años, militar hasta mediados de los años 30, y después civil, hasta 1974. Mientras, el único momento en que la dictadura de Salazar (aliado de Franco en España) fue amenazada, ocurrió en 1958 cuando el general Humberto Delgado decidió presentarse a las elecciones presidenciales, proponiendo la dimisión de Salazar. En la noche del 24 de abril de 1974, el capitán Augusto José Monteiro Valente, del Regimiento de Infantería de Guarda, arrestó a su comandante y se unió al Movimiento de las Fuerzas Armadas (MFA) que al día siguiente iba a derribar el régimen dictatorial de Salazar y Caetano en la Revolución de los Claveles, siendo descrito como uno de los más brillantes y más comprometidos militares portugueses en esta revolución.


title: Guarda (Portugal)

text: En 1942 se abrió el primer hotel en la ciudad de Guarda, el "Hotel Turismo" activo hasta el día de hoy, y un símbolo icónico del turismo en esta ciudad. En 1963, comenzaron a trabajar en Guarda, las Industrias Lusitanas Renault (fábrica de automóviles), que estarían activas hasta 1987, produciendo de 189.461 vehículos de los modelos de Renault 4, Renault 5, Renault 6, Renault 8, Renault 10, Renault 12, Renault 16 y Renault Trafic. Luego vino "Delco Remy" y después "Delphi (Autopeças)", hasta el cierre de esta multinacional estadounidense en diciembre de 2010. En 1965 se creó la Escuela de Enfermería de Guarda (ahora conocida como Escuela Superior de Salud), que más tarde, en el año 2001, sería integrada en el Instituto Politécnico de Guarda. En 1980 fue creado el Instituto Politécnico de Guarda, que iniciaría sus actividades académicas en el año 1986, a través de la Escuela Superior de Educación y, al año siguiente, de la Escuela Superior de Tecnología y Gestión. En 1999, sería creada también, en este instituto, la Escuela Superior de Turismo y de Telecomunicaciones, en la ciudad vecina de Seia.Se trata de un templo medieval construido en estilo gótico y manuelino. Su restauración, llevada a cabo por el arquitecto Rosendo Carvalheira, tuvo lugar entre 1899 y 1921. El castillo fue declarado Monumento Nacional el . Su construcción, supuestamente sobre un castro romano-lusitano del siglo I, se produjo entre los siglos XII y XIV.


title: Guarda (Portugal)

text: Los principales sectores económicos de Guarda son: turismo, textiles, industria de hilos y cables eléctricos para fabricación de automóviles y para industrias energéticas, procesamiento de madera, de vidrio, de mármol y de granito, metalurgia, fabricación de aluminio, productos químicos, persianas, embutidos, panadería y de pasteles, industria de lechería, así como las empresas de construcción. También se destacan las actividades de artesanía y las actividades agrícolas y agro-ganaderas en el entorno rural del municipio.


title: Guarda (Portugal)

text: La gastronomía de Guarda se asocia con la gastronomía de la Sierra de la Estrella. Algunos platos típicos más destacados son los siguientes: cordero asado, arroz con pato a la manera de Guarda y el bacalao "Lagareiro", que se puede encontrar fácilmente en los restaurantes de cocina regional. La gastronomía de la ciudad incluye una amplia gama de platos a base de carne, dada la ubicación geográfica de la ciudad, así como de los terrenos circundantes, que son propicios para el pastoreo. También hay una gran variedad de platos de pescado procedentes de flujos de agua dulce. El bacalao es la excepción, ya que su proceso de conservación (por secado) siempre ha permitido su consumo en tierras lejanas al mar. El cerdo ocupa un lugar importante en la gastronomía local, con un sinnúmero de platos confeccionados con este tipo de carne. Se pueden destacar el jamón curado en sal de mar, así como las carnes típicas locales curadas (morcilla, farinheira y chorizo), como los callos con verduras. Otras carnes comunes son el cordero, cabra, vaca y carnes blancas. El arroz de carquesa también es un plato muy típico en la ciudad y la región.


title: Guarda (Portugal)

text: En el momento de la temporada de caza se pueden comer platos únicos, como el arroz de liebre "malandrinho", o el jabalí con frijoles.


title: Guarda (Portugal)

text: En el otoño, son populares el guiso de setas comestibles (champiñones) de Trancoso, y la sopa de castañas (también se puede comer cocida, hervida o dulce).


title: Guarda (Portugal)

text: El principal club de fútbol de la ciudad es Guarda Unida, que participa en la primera división distrital en la temporada 2014-2015. Otros clubes y asociaciones de este tipo en la ciudad, incluyen el Club de Montañismo de Guarda, fundado en 1981, el Centro de Deporte, Cultura y Solidaridad Social de Pinheiro, integrado en la Asociación de Atletismo de Guarda, el "CSS – Associação de Desenvolvimento Carapito S. Salvador" y el Grupo Deportivo y Recreativo de Lameirinhas, dedicado al fútbol sala.


title: Andrés Torrejón

text: Andrés Diego Torrejón García (Móstoles, 1736-1812) fue alcalde ordinario por el Estado Noble de la villa de Móstoles, quien el 2 de mayo de 1808, junto a Simón Hernández -el alcalde ordinario por el Estado General-, firmó el conocido por "Bando de Independencia", redactado por Juan Pérez Villamil, que alertaba sobre la masacre cometida en Madrid por las tropas napoleónicas y que llamaba al auxilio de la capital por parte de otras autoridades, incitando a las autoridades y naturales a armarse contra los invasores franceses. Murió en Móstoles, en 1812, junto a otras 190 personas a causa del hambre.


title: Andrés Torrejón

text: El texto del bando citado es el siguiente:


title: Andrés Torrejón

text: Fue hecho prisionero, junto con su colega de oficio Simón Hernández , para comparecer ante el general Joaquín Murat por haber firmado aquel bando de contenido sedicioso. Aunque fueron condenados a pena capital, se libraron pagando una fianza de más de 30000 reales y desentendiéndose de la responsabilidad de dicho parte, afirmando que "se la hizo firmar un hombre no conocido, que se apareció con tropa en Móstoles la tarde del 2 de mayo".https://www.academia.edu/633738/El_bando_de_los_alcaldes_de_Mostoles_del_Dos_de_Mayo_de_1808_y_su_influencia_en_el_comienzo_de_la_Guerra_de_la_Independencia


title: Clodio Albino

text: Décimo Clodio Ceyonio Septimio Albino, más conocido como Clodio Albino (en latín, "Decimus Clodius Ceionius Septimius Albinus", 25 de noviembre de 147 - 19 de febrero de 197), fue uno de los más importantes pretendientes al trono del Imperio romano tras la muerte del emperador Pertinax, efímero sucesor de Cómodo.


title: Clodio Albino

text: Aunque al principio fue aliado de Septimio Severo, se enfrentó a él tras la derrota de Pescenio Níger en Issos. Tras duros años de guerra civil, el ejército de Albino fue derrotado en Lugdunum.


title: Clodio Albino

text: Las principales fuentes de que se valen los historiadores acerca de la vida de Clodio Albino son la "Historia Augusta" y ciertas obras de escritores que las redactaron durante el reinado de Septimio Severo, siendo por tanto sospechosas de haber sido manipuladas.


title: Clodio Albino

text: Albino nació en el seno de una aristocrática familia oriunda de "Hadrumetum", ciudad situada en la provincia de África. Era hijo de Aurelia Mesalina y de Ceionio Postumio. Según su padre, Clodio Albino recibió su "cognomen" a causa de la extrema palidez de su piel. Durante toda su vida demostró grandes aptitudes militares. Entró muy joven en el ejército, donde se distinguió durante la supresión de la revuelta de Avidio Casio contra el emperador Marco Aurelio (175).