dbo:abstract
|
- Globální proměnná je v informatice v programování proměnná s globálním rozsahem, čímž je myšleno, že je viditelná (tedy přístupná) v celém počítačovém programu, až na kontexty, v nichž je zastíněná (tj. překrytá lokální proměnnou se stejným jménem). Soubor všech globálních proměnných je známý jako globální prostředí nebo globální stav. V komplikovaných jazycích, globální proměnné jsou obecně statické proměnné, které jsou dostupné po celou dobu běhu programu. Ačkoliv v případě interpretovaných programovacích jazycích (včetně příkazového řádku) jsou globální proměnné alokovány dynamicky při jejich deklaraci, jelikož nejsou známy předem. V některých jazycích jsou ve výchozím nastavení všechny proměnné globální, ale ve většině moderních jazyků mají proměnné omezenou působnost (například lexikální omezení). Globální proměnné jsou pak deklarovány často ve vyšší úrovní programu. V jiných jazycích globální proměnné neexistují. Obecně to jsou modulární programovací jazyky, které prosazují modulární strukturu, nebo objektově orientované programovací jazyky, které dostupnost proměnných řeší strukturou tříd. (cs)
- En programlingvoj, malloka variablo estas variablo deklarita ekster ĉiu subprogramo aŭ klaso, variablo kies regiono estas la tuta komputila programo. Mallokajn variablojn oni povas uzi anstataŭ parametrojn de subprogramoj, por provizi al tiuj argumentojn kaj ricevi de ili rezultojn. Tio estas malaprobata praktiko, kiu malklarigas la programon. Pli pravigebla estas uzado de mallokaj variabloj en programpartoj kiuj malhavas malimplicajn vokojn, kiaj estas signaltraktiloj aŭ plenumfadenoj. (eo)
- Una variable global es, en informática, una variable accesible en todos los ámbitos de un programa informático. Los mecanismos de interacción con variables globales se denominan mecanismos de entorno global. El concepto de entorno global contrasta con el de entorno local donde todas las variables son locales sin memoria compartida (y por ello todas las iteraciones pueden restringirse al ). El uso de este tipo de variables suele considerarse como una mala práctica, por el riesgo que conlleva esa deslocalización: una variable global puede ser modificada en cualquier parte del programa (a menos que resida en una sección de memoria protegida) y cualquier parte del programa depende de ella. Es por ello que una variable global tiene un potencial ilimitado para crear dependencias, factor este que aumenta la complejidad. Sin embargo, en algunas ocasiones, las variables globales resultan muy útiles. Por ejemplo, se pueden usar para evitar tener que pasar variables usadas muy frecuentemente de forma continua entre diferentes subrutinas. El uso de variables globales se desaconseja especialmente para lenguajes de programación funcionales (como puede ser Scheme). Viola la transparencia referencial y dificulta la legibilidad del código fuente. Las variables globales se usan de forma frecuente para pasar información entre diferentes secciones del código que no comparten una relación de "función llamadora" - "función llamada", como ocurre con hilos concurrentes y módulos para el manejo de señales. Los lenguajes de programación donde cada archivo define un espacio de nombres implícito elminan la mayor parte de los problemas de los lenguajes con nombres de espacios globales, aunque pueda haber algunos problemas si no se tiene cuidado a la hora de encapsular el código. Sin las restricciones adecuadas (como por ejemplo con un mutex), el código que usa variables globales no será a prueba de hilos excepto para los valores de solo lectura en la memoria protegida. Ejemplo de una variable global en C++: #include int global = 3; // Esta es la variable global.void ChangeGlobal{ global = 5; // Se referencia la variable global en una función.}int main{ std::cout << global << '
'; // Se referencia la variable global en una segunda función. ChangeGlobal; std::cout << global << '
'; return 0;} Dado que la variable es de ámbito global, no hay necesidad de pasarla como parámetro a otras funciones. La variable global pertenece a todas las funciones del programa. El resultado será: 35 El uso de variables globales dificulta la legibilidad del código fuente. Dado que en cualquier parte del programa y en todo momento se puede cambiar el valor de la variable, para entender el uso de la variable suele ser necesario tener que comprender el funcionamiento de una parte amplia del programa. También dificultan la separación del código en bibliotecas, ya que muchos sistemas (como por ejemplo DLL) no soportan la visualización directa de variables globales en otros módulos. La denominación de las variables también puede desembocar en problemas con la denominación ya que una variable global corre el riesgo de ser usada, por ejemplo, en lugar de una variable local. Una variable local con el mismo nombre puede ocultar el acceso de la variable global, dificultando aún más la legibilidad del código. Por todo ello, el uso de variables globales puede provocar efectos secundarios difíciles de entender, predecir, y hacen la búsqueda de errores más compleja. Las variables globales también dificultan someter las diferentes unidades de software a tests de forma aislada, repercutiendo así en una posible reducción de la calidad del código. Si no se define una variable en una función, entonces se considera global, de forma automática. El valor actual de la variable es el que se usa en la función. Las funciones pueden invocarse con menos parámetros entrantes y salientes cuando se usan variables locales. Algunos lenguajes de programación, como por ejemplo Java, no tienen variables globales. En Java, todas las variables que no son locales son campos de una clase. Así, todas las variables están en el ámbito de una clase o de un método. En Java, los campos estáticos (conocidos también como variables de clase) existen, independientemente de cualquier instancia de la clase y se comparte una copia entre todas las instancias; de esta forma los campos estáticos se usan para muchas de las tareas de las variables globales, gracias a su similar concepto de "compartir". (es)
- In computer programming, a global variable is a variable with global scope, meaning that it is visible (hence accessible) throughout the program, unless shadowed. The set of all global variables is known as the global environment or global state. In compiled languages, global variables are generally static variables, whose extent (lifetime) is the entire runtime of the program, though in interpreted languages (including command-line interpreters), global variables are generally dynamically allocated when declared, since they are not known ahead of time. In some languages, all variables are global, or global by default, while in most modern languages variables have limited scope, generally lexical scope, though global variables are often available by declaring a variable at the top level of the program. In other languages, however, global variables do not exist; these are generally modular programming languages that enforce a module structure, or class-based object-oriented programming languages that enforce a class structure. (en)
- En programmation informatique, une variable globale est une variable déclarée à l'extérieur du corps de toute fonction ou classe, et pouvant donc être utilisée n'importe où dans le programme.On parle également de variable de portée globale. (fr)
- 전역 변수는 어떤 변수 영역 내에서도 접근할 수 있는 변수를 의미하는 전산학 용어이다. 지역 변수와 대비되는 개념이다. 어떤 스코프에서도 참조하고, 변경할 수 있기 때문에 지역성이 없다. 이것 때문에 될 수 있으면 피해야 하는 것으로 인식하는 경우가 많다. 여러 스레드에서 같은 전역 변수에 접근할 경우에 변수를 제대로 잠그지 않으면 스레드는 안전하지 않다. 예를 들어, C언어에서 전역변수는 최초의 실행 함수인 main 함수가 실행되기 전에 생성되어 초기화되며, 지역 변수와 다르게 데이터 영역에 저장된다. (ko)
- グローバル変数(大域変数、英: global variable)は、コンピュータプログラミングにおいて全てのスコープからアクセスできる変数のことである。グローバル変数の寿命は、プログラムの生存期間と同じである。対する語は、ローカル変数である。スコープも参照。 (ja)
- Em programação, uma variável global é uma variável acessível em todos os escopos de um programa de computador. O mecanismo de interação com variáveis globais é chamada ambiente global. Em contraste o ambiente local é um mecanismo no qual as variáveis são locais (conceito básico de ) e sem memória compartilhada. O uso de variáveis globais é geralmente considerado inadequado pois seu conteúdo pode ser potencialmente modificado de qualquer local, e qualquer parte de um código pode depender dela. A técnica possui o potencial de criar dependências mútuas, o que aumenta a complexidade e dificuldade de leitura de um código. Entretanto, para alguns casos seu uso pode ser adequado; um exemplo é a passagem frequente de variáveis continuamente por diversas funções. Em programação concorrente, variáveis globais são bastante usadas para passar informações entre seções de código que não compartilham relação, como threads concorrentes e em programação de sinais. (pt)
- Zmienna globalna – zmienna istniejąca przez cały czas życia programu i widziana z wielu miejsc w programie. Nadużywanie zmiennych globalnych może prowadzić do poważnych problemów, takich jak:
* w przypadku programów wielowątkowych, zmienna taka może być modyfikowana przez dowolny wątek, co prowadzić może do nieokreśloności przy braku synchronizacji wątków.
* jeśli funkcja używa zmiennej globalnej jako zmiennej pomocniczej, niemożliwe może być jej rekursywne wywołanie
* zmienne globalne zaśmiecają przestrzeń nazw, w niektórych architekturach może to doprowadzić do przepełnienia stosu
* na działanie danej części kodu może mieć wpływ kod zupełnie niezwiązany, o ile oba używają tej samej zmiennej globalnej i jeden z nich ją modyfikuje.
* zmienne globalne mogą kolidować ze zmiennymi lokalnymi (te drugie przesłaniają zmienne globalne o ile posiadają identyczne nazwy). Do zalecanych rozwiązań należą:
* używanie zmiennych statycznych o ograniczonym zakresie widoczności, takich jak zmienne static w C – zapobiega niepożądanym interakcjom
* zamykanie zmiennych globalnych jako pól statycznych w klasach (najczęściej w klasach abstrakcyjnych)
* zabezpieczanie dostępu do zmiennych globalnych blokadami.
* przerobienie programu tak, żeby korzystał z mniejszej liczby zmiennych globalnych.
* nazywanie zmiennych globalnych w sposób uniemożliwiający kolizję nazw (jest to obowiązkowe w Ruby), lub też deklarowanie w każdej funkcji z których zmiennych globalnych ona korzysta (PHP). W wielu sytuacjach nie da się uniknąć istnienia zmiennych globalnych – np. w programach języka C przeznaczonych na architektury nie posiadające możliwości dynamicznej alokacji pamięci. Stosowanie tam zmiennych globalnych jest jedynym możliwym sposobem na przekazanie większej liczby parametrów z jednej funkcji do drugiej. Niektóre języki programowania domyślnie po utworzeniu zmiennej przyjmują, że jest to zmienna o zakresie globalnym – czyli widoczna w dowolnym miejscu programu. (pl)
- Глобальная переменная в программировании — переменная, областью видимости которой является вся программа, если только она не . Механизмы взаимодействия с глобальными переменными называют механизмами доступа к глобальному окружению или состоянию (англ. global environment, global state). Глобальные переменные могут использоваться для взаимодействия между процедурами и функциями как альтернатива передачи аргументов и возвращения значений. Использование глобальных переменных имеет недостатки: глобальная переменная может быть изменена в любой точке программы (если она не находится в защищённой памяти или объявлена как переменная ), что может повлиять на работу других частей программы. По этой причине глобальные переменные имеют неограниченный потенциал для создания взаимных зависимостей, что приводит к усложнению программы. Однако в некоторых случаях бывает полезно использовать глобальные переменные. Например, они могут быть использованы, чтобы избежать необходимости прохода часто используемых переменных через несколько функций. Глобальные переменные также затрудняют интеграцию модулей, поскольку код, написанный ранее, может содержать глобальные переменные с теми же именами, что и во встраиваемом модуле. Глобальные переменные широко используются для передачи данных между секциями кода, которые не участвуют в отношениях вызовов, такие как параллельные нити исполнения или обработчики сигналов. Без надлежащей блокировки (например, с помощью мьютекса), код, использующий глобальные переменные, не будет потокобезопасным, за исключением переменных, доступных только для чтения в защищённой области памяти. С увеличением количества переменных и, соответственно, блокировок увеличивается вероятность взаимных блокировок. Пример на Си: int a; /* Объявление глобальной целочисленной переменной «а» */float b = 6; /* Объявление глобальной переменной с плавающей запятой «b» и присваивание ей значения «6» */int main(void){ a = 12; /* Присваивание переменной «а» значения «12» */ return a+b;} (ru)
- 在程序设计中,全局变量是在所有作用域都可访问的变量,与之对应的是局部变量。 通常,使用不必要的全局变量被认为是坏习惯,这正是由于全局变量的非局部性:全局变量可能被从任何地方修改(除非位于中),也可能被任何地方所依赖。于是全局变量便拥有了建立相互依存关系的无限可能,而互相依存关系的建立会使得复杂度增加,参见远隔作用(Action at distance)。然而,在少数情况下是适合使用全局变量的。例如,可以通过全局变量的使用来避免常用变量在一系列函数间的频繁传递。 (zh)
- У програмуванні, глобальна змінна (англ. global variable) — змінна, яка доступна в будь-якій області видимості, за винятком перекриття її іншою змінною з тим самим ім'ям. Механізм взаємодій з глобальними змінними називається механізмом глобального середовища. Парадигма глобального середовища протиставляється парадигмі місцевого середовища, згідно з якою всі змінні місцеві без використання спільної пам'яті (тобто всі взаємодії мають відбуватись через обмін повідомленнями). Такі змінні вважаються поганим стилем саме через свою повсюдність: глобальна змінна може бути змінена будь-звідки, (за винятком розташування в захищеній пам'яті) і будь-яка частина пам'яті може залежати від неї. Таким чином глобальні змінні мають необмежений потенціал для створення взаємних залежностей, які створюють додаткову складність. Однак, зрідка, особливо в маленьких програмах, використання глобальних змінних може бути задовільним варіантом. Наприклад, задля уникнення постійної передачі часто використовних змінних через декілька функцій. Глобальні змінні широко використовуються для передачі інформації між різними частинами коду, які не викликають одне одного, такими як конкурентні потоки або обробники сигналів. Без правильного блокування доступу, наприклад із допомогою семафора, код із використанням глобальних змінних не буде потоково безпечним, за винятком змінних тільки для читання розташованих захищеній ділянці пам'яті. Із збільшенням кількості змінних і, відповідно, блокувань збільшуються ймовірність взаємних блокувань. (uk)
|
rdfs:comment
|
- En programlingvoj, malloka variablo estas variablo deklarita ekster ĉiu subprogramo aŭ klaso, variablo kies regiono estas la tuta komputila programo. Mallokajn variablojn oni povas uzi anstataŭ parametrojn de subprogramoj, por provizi al tiuj argumentojn kaj ricevi de ili rezultojn. Tio estas malaprobata praktiko, kiu malklarigas la programon. Pli pravigebla estas uzado de mallokaj variabloj en programpartoj kiuj malhavas malimplicajn vokojn, kiaj estas signaltraktiloj aŭ plenumfadenoj. (eo)
- En programmation informatique, une variable globale est une variable déclarée à l'extérieur du corps de toute fonction ou classe, et pouvant donc être utilisée n'importe où dans le programme.On parle également de variable de portée globale. (fr)
- 전역 변수는 어떤 변수 영역 내에서도 접근할 수 있는 변수를 의미하는 전산학 용어이다. 지역 변수와 대비되는 개념이다. 어떤 스코프에서도 참조하고, 변경할 수 있기 때문에 지역성이 없다. 이것 때문에 될 수 있으면 피해야 하는 것으로 인식하는 경우가 많다. 여러 스레드에서 같은 전역 변수에 접근할 경우에 변수를 제대로 잠그지 않으면 스레드는 안전하지 않다. 예를 들어, C언어에서 전역변수는 최초의 실행 함수인 main 함수가 실행되기 전에 생성되어 초기화되며, 지역 변수와 다르게 데이터 영역에 저장된다. (ko)
- グローバル変数(大域変数、英: global variable)は、コンピュータプログラミングにおいて全てのスコープからアクセスできる変数のことである。グローバル変数の寿命は、プログラムの生存期間と同じである。対する語は、ローカル変数である。スコープも参照。 (ja)
- 在程序设计中,全局变量是在所有作用域都可访问的变量,与之对应的是局部变量。 通常,使用不必要的全局变量被认为是坏习惯,这正是由于全局变量的非局部性:全局变量可能被从任何地方修改(除非位于中),也可能被任何地方所依赖。于是全局变量便拥有了建立相互依存关系的无限可能,而互相依存关系的建立会使得复杂度增加,参见远隔作用(Action at distance)。然而,在少数情况下是适合使用全局变量的。例如,可以通过全局变量的使用来避免常用变量在一系列函数间的频繁传递。 (zh)
- Globální proměnná je v informatice v programování proměnná s globálním rozsahem, čímž je myšleno, že je viditelná (tedy přístupná) v celém počítačovém programu, až na kontexty, v nichž je zastíněná (tj. překrytá lokální proměnnou se stejným jménem). Soubor všech globálních proměnných je známý jako globální prostředí nebo globální stav. V komplikovaných jazycích, globální proměnné jsou obecně statické proměnné, které jsou dostupné po celou dobu běhu programu. Ačkoliv v případě interpretovaných programovacích jazycích (včetně příkazového řádku) jsou globální proměnné alokovány dynamicky při jejich deklaraci, jelikož nejsou známy předem. (cs)
- In computer programming, a global variable is a variable with global scope, meaning that it is visible (hence accessible) throughout the program, unless shadowed. The set of all global variables is known as the global environment or global state. In compiled languages, global variables are generally static variables, whose extent (lifetime) is the entire runtime of the program, though in interpreted languages (including command-line interpreters), global variables are generally dynamically allocated when declared, since they are not known ahead of time. (en)
- Una variable global es, en informática, una variable accesible en todos los ámbitos de un programa informático. Los mecanismos de interacción con variables globales se denominan mecanismos de entorno global. El concepto de entorno global contrasta con el de entorno local donde todas las variables son locales sin memoria compartida (y por ello todas las iteraciones pueden restringirse al ). El uso de variables globales se desaconseja especialmente para lenguajes de programación funcionales (como puede ser Scheme). Viola la transparencia referencial y dificulta la legibilidad del código fuente. (es)
- Zmienna globalna – zmienna istniejąca przez cały czas życia programu i widziana z wielu miejsc w programie. Nadużywanie zmiennych globalnych może prowadzić do poważnych problemów, takich jak:
* w przypadku programów wielowątkowych, zmienna taka może być modyfikowana przez dowolny wątek, co prowadzić może do nieokreśloności przy braku synchronizacji wątków.
* jeśli funkcja używa zmiennej globalnej jako zmiennej pomocniczej, niemożliwe może być jej rekursywne wywołanie
* zmienne globalne zaśmiecają przestrzeń nazw, w niektórych architekturach może to doprowadzić do przepełnienia stosu
* na działanie danej części kodu może mieć wpływ kod zupełnie niezwiązany, o ile oba używają tej samej zmiennej globalnej i jeden z nich ją modyfikuje.
* zmienne globalne mogą kolidować ze zmiennymi lokaln (pl)
- Em programação, uma variável global é uma variável acessível em todos os escopos de um programa de computador. O mecanismo de interação com variáveis globais é chamada ambiente global. Em contraste o ambiente local é um mecanismo no qual as variáveis são locais (conceito básico de ) e sem memória compartilhada. Em programação concorrente, variáveis globais são bastante usadas para passar informações entre seções de código que não compartilham relação, como threads concorrentes e em programação de sinais. (pt)
- Глобальная переменная в программировании — переменная, областью видимости которой является вся программа, если только она не . Механизмы взаимодействия с глобальными переменными называют механизмами доступа к глобальному окружению или состоянию (англ. global environment, global state). Глобальные переменные могут использоваться для взаимодействия между процедурами и функциями как альтернатива передачи аргументов и возвращения значений. Пример на Си: (ru)
- У програмуванні, глобальна змінна (англ. global variable) — змінна, яка доступна в будь-якій області видимості, за винятком перекриття її іншою змінною з тим самим ім'ям. Механізм взаємодій з глобальними змінними називається механізмом глобального середовища. Парадигма глобального середовища протиставляється парадигмі місцевого середовища, згідно з якою всі змінні місцеві без використання спільної пам'яті (тобто всі взаємодії мають відбуватись через обмін повідомленнями). (uk)
|