Глобальные переменные

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

В паскале имя функции — это …

глобальная переменная И глобальный идентификатор.
2
9%
НЕ глобальная переменная, НО глобальный идентификатор.
9
41%
глобальная переменная И НЕ глобальный идентификатор.
0
Голосов нет
НЕ глобальная переменная И НЕ глобальный идентификатор.
11
50%
 
Всего голосов : 22

Re: Глобальные переменные

Сообщение Лекс Айрин » 30.12.2015 19:13:23

vitaly_l, тем не менее... взять хотя бы Пи -- несмотря на то, что оно считается невычислимым, тем не менее методика его вычисления существует и достаточно проста. Совсем другое дело, что абсолютно точное значение никому на самом деле не нужно. Как правило, 3,14 хватает за глаза. Нет, так можно взять более точное значение. Возможно, все же удастся его вычислить абсолютно точно, но это будет уже чисто академический аспект.

vitaly_l писал(а):ведьмы, ведьмаги := ведающие(знающие).


Ведьма мужского пола это ведьмак. У магов совсем другой подход к... работе. Например, магом может считаться астролог.

vitaly_l писал(а):то поплохеет всем программистам в мире....


Есть достаточное количество языков с нестандартным подходом программирования... тот же LISP. В некоторых, например, можно переопределять операторы. Есть и такие где все есть функция. Они требуют очень серьезного переосмысления при обучении.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Глобальные переменные

Сообщение vitaly_l » 30.12.2015 19:28:41

Лекс Айрин писал(а):Ведьма мужского пола это ведьмак. У магов совсем другой подход к... работе. Например, магом может считаться астролог.
Астролог может считаться магом? <=== Конечно может! Суть в том что Вы этому понятию приписываете? Добро или зло? Точно также и с понятиями в программах, соответственно поэтому, расмотрим вопрос вот так:

Лекс Айрин писал(а):серьезного переосмысления при обучении

Если я правильно понял, то Вы хотите вернуться к разговору о "GoTo", точнее к разговору об ассемблеровских JMP(прыжках) и заглянуть в машинный код? И удостовериться что, весь Pascal - это всего лишь обёртка, от конфеты? А сама конфета там внутри?
И на том(машинном) уровне: изучить вопрос "о переменных и идентификаторах"?
Тогда нужно точно указать на действия железа в тех и иных случаях.
При грамотном описании, Вы можете выиграть в споре с Дож, если докажете свою правоту.

.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Глобальные переменные

Сообщение Лекс Айрин » 30.12.2015 19:49:54

vitaly_l писал(а):Суть в том что Вы этому понятию приписываете? Добро или зло?


Добро и Зло это слишком эфемерные понятия.

vitaly_l писал(а):Если я правильно понял, то Вы хотите вернуться к разговору о "GoTo", точнее к разговору об ассемблеровских JMP(прыжках) и заглянуть в машинный код?


Не хочу. Я прекрасно осознаю (могу легко найти) в какой набор инструкций преобразуется как вызов функции/процедуры, так и доступ к переменной. Это достаточно подробно рассматривается и освещается.

Кстати, место под возвращаемое значение может как формироваться заранее, так и после вызова. Все зависит от того, кто работает со стеком сама процедура (функция) или нет. Подозреваю, что проще все сделать заранее.
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 5723
Зарегистрирован: 19.02.2013 16:54:51
Откуда: Волгоград

Re: Глобальные переменные

Сообщение vitaly_l » 30.12.2015 20:03:51

Лекс Айрин писал(а):слишком эфемерные понятия

Безусловно, но суть "расшифровки объяснения мысли" в том что, они(добро и зло) - полностью противоположные...

Лекс Айрин писал(а):может как формироваться заранее, так и после вызова

Осталось только уточнить: что есть переменная, а что есть идентификатор? и сравнить их с названием функции (указав что такое название функции)
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Глобальные переменные

Сообщение Снег Север » 30.12.2015 20:58:00

vitaly_l писал(а):Изобретатели и понятия - это зёрна и шелуха... Если уж взялись учить науке "о понятиях" и "дефинициях", то не используйте в доказательствах "ФРАНЦУЗСКИЕ ТЕОРИИ (их академии)", о том что вечный двигатель невозможен, т.к они этого не доказали... Равно как не доказано, что вселенная произошла от взрыва.

Я по образованию и первому опыту работы - физик-экспериментатор. И для меня высшим доказательством являются не слова, а опыт, практика. Если мне покажут работающий вечный двигатель, я соглашусь пересмотреть всю физику, а до того, извините, буду посылать всех его изобретателей густым лесом. Поскольку возможность такого оцениваю наравне с пришествием Ктулху.

Большой взрыв мог и не быть, если оценка (весьма приблизительная) некоторых мировых параметров окажется не совсем такой, как считалось еще несколько десятков лет назад. В основных законах природы ничего от этого не изменится. В противоположность предъявления работающего ВД.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3039
Зарегистрирован: 27.11.2007 16:14:47

Re: Глобальные переменные

Сообщение vitaly_l » 30.12.2015 21:11:03

Снег Север писал(а):Если мне покажут работающий вечный двигатель, я соглашусь пересмотреть всю физику
Я могу показать Вам работающий вечный двигатель, но что мне с того что, Вы его увидите? Или даже поставим вопрос по другому(если я покажу Вам ВД): Что это даст Миру?
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Глобальные переменные

Сообщение Дож » 30.12.2015 21:21:44

vitaly_l писал(а):Математика точная????? <==== Это ЛОЖЬ!!!!!!!!!!!!!! ===>> Математика самая виртуальная наука из всех наук! Достаточно изменить любую "глобальную переменную", типа "Pi - 3.14..." <==== и это в корне поменяет ВСЮ математику!

Если зафиксировать аксиомы действительных чисел (аксиомы поля, упорядоченного множества и в каком-то виде аксиому разделения), а также аксиомы евклидовой геометрии, то число π будет строго определённым. У Вас не получится получить другое π с этими аксиомами.

Если какие-то из аксиом отменять, то, действительно, получится другая математика (неархимедовы числа, неевклидова геометрия и т.д.), но не факт, что, во-первых, в ней число π вообще определяется, а, во-вторых, что оно имеет тот же по уровню значимости смысл.

Действительные числа и евклидова геометрия — это не какие-то на пустом месте выдуманные виртуальные абстракции, а строгая формализация того, что большой группой людей считается интуитивно понятным. Эта формализация образует прочный фундамент, на основе которого, в частности, число π равно какому-то одному вполне конкретному числу и никакие враги не могут его поменять.

Добавлено спустя 27 минут 33 секунды:
vitaly_l писал(а):
Снег Север писал(а):Мне интересно только то, до чего договорились вложить. И записали в словарях и учебниках. А любители вкладывать свой собственный смысл у меня идут по ведомству изобретателей вечных двигателей и опровергателей квантовой механики...

Вот только изобретателей трогать ненужно! Изобретатели и понятия - это зёрна и шелуха... Если уж взялись учить науке "о понятиях" и "дефинициях", то не используйте в доказательствах "ФРАНЦУЗСКИЕ ТЕОРИИ (их академии)", о том что вечный двигатель невозможен, т.к они этого не доказали...

Предложите теорию (т.е. набор утверждений, подтверждаемых опытом), которая будет также хорошо справляться с описанием действительности, как и французские теории, — а то мы, глупые, не знаем, не можем воспользоваться советом.
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: Глобальные переменные

Сообщение vitaly_l » 30.12.2015 21:51:37

Дож писал(а):формализация образует прочный фундамент

Вот в этом, то и проблема. Фундамент... Все полагаются на мыльный пузырь и думают что мыльный пузырь это фундамент. А я радикал, самое страшное существо, которое есть в мире. Одного моего вмешательства, достаточно чтобы миф рухнул, а мыльный пузырь лопнул! Раньше учёные всего Мира думали что, Земля плоская! И только один осмелился сказать "И всё таки она вертится"... Ещё, учёные всего мира, утверждали что, Солнце вращается вокруг Земли... И это было совсем недавно... и немного о математике:

Снег Север писал(а):возможность такого оцениваю наравне с пришествием Ктулху.

Дож писал(а):Предложите теорию (т.е. набор утверждений, подтверждаемых опытом), которая будет также хорошо справляться с описанием действительности, как и французские теории, — а то мы, глупые, не знаем

Например: Чтобы понять глупость про сказку "о большом взрыве", достаточно изучить расположение галактик в пространстве и осознать что, Ктулху - это безусловно мифическая личность, но описывает она гигантского "спрута". А спрут, как правило - символ большой секты(типа французской академии наук, которая помогала кому-то разбогатеть на продаже ресурсов), <=== соответственно Ктулху, тоже вполне реальный персонаж, если уметь читать книги, так как надо(между строк), а не так как напечатано. Вывод: За Ктулху - спрятан страх или угроза, перед громадной и властной "сектой", которая могла прийти в любой дом и убить кого угодно. В смысле, галактики не разлетаются, как от взрыва, а наоборот, одна из них летит прямиком на нашу галактику... А если бы был взрыв, они бы разлетались... <=== Видите как просто? И мыльный пузырь лопнул.... Математика, очень сложная вещь, с ней гораздо сложнее, т.к. она на половину Ктулху (миф и реальность в одном флаконе).

Кстати, лозунг уважаемого Снег Север:
Fais ce que dois, advienne que pourra.
(Делай что должен, и будь что будет)

Тоже принадлежит очень известной в Мире - секте (сомневаюсь что, Снег Север, к ней(секте) принадлежит). <== И кстати эта секта, по размерам, превышает размеры Ктулху (а он был ростом 5 км.). Так что и в Ктулху, Вам тоже придётся поверить (равно как и в существование математики). А вообще, конечно ужас! Докатились! физик-экспериментатор, утверждает ПУБЛИЧНО, что нет вечного двигателя... Чему учат физиков в институтах... Позор!


.
Последний раз редактировалось vitaly_l 30.12.2015 22:01:02, всего редактировалось 1 раз.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Глобальные переменные

Сообщение Дож » 30.12.2015 21:56:37

vitaly_l писал(а):Вот в этом, то и проблема. Фундамент... Все полагаются на мыльный пузырь и думают что мыльный пузырь это фундамент. А я радикал, самое страшное существо, которое есть в мире. Одного моего вмешательства, достаточно чтобы миф рухнул, а мыльный пузырь лопнул! Раньше учёные всего Мира думали что, Земля плоская! И только один осмелился сказать "И всё таки она вертится"... Ещё, учёные всего мира, утверждали что, Солнце вращается вокруг Земли... И это было совсем недавно...

Очень скромненько себя так сравнили с великими учёными прошлого.

Юрий Степанович, не Вы ли это?

Добавлено спустя 3 минуты 47 секунд:
vitaly_l писал(а):Например: Чтобы понять глупость про сказку "о большом взрыве", достаточно изучить расположение галактик в пространстве и осознать что, Ктулху - это безусловно мифическая личность, но описывает она гигантского "спрута". А спрут, как правило - символ большой секты(типа французской академии наук, которая помогала кому-то разбогатеть на продаже ресурсов), <=== соответственно Ктулху, тоже вполне реальный персонаж, если уметь читать книги, так как надо(между строк), а не так как напечатано. Вывод: За Ктулху - спрятан страх или угроза, перед громадной и властной "сектой", которая могла прийти в любой дом и убить кого угодно. В смысле, галактики не разлетаются, как от взрыва, а наоборот, одна из них летит прямиком на нашу галактику... А если бы был взрыв, они бы разлетались... <=== Видите как просто? И мыльный пузырь лопнул.... Математика, очень сложная вещь, с ней гораздо сложнее, т.к. она на половину Ктулху (миф и реальность в одном флаконе).

vitaly_l, галактики разлетаются https://ru.wikipedia.org/wiki/%D0%A0%D0 ... 0%BE%D0%B9
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: Глобальные переменные

Сообщение vitaly_l » 30.12.2015 22:07:28

Дож писал(а):vitaly_l, галактики разлетаются https://ru.wikipedia.org/wiki/%D0%A0%D0 ... 0%BE%D0%B9

И чё???? С каких пор текст википедии - стал аргументом? Если галактика из андромеды летит на нас со скоростью 110 т.к. в секунду?
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Глобальные переменные

Сообщение Снег Север » 30.12.2015 22:36:42

vitaly_l писал(а):
Снег Север писал(а):Если мне покажут работающий вечный двигатель, я соглашусь пересмотреть всю физику
Я могу показать Вам работающий вечный двигатель, но что мне с того что, Вы его увидите? Или даже поставим вопрос по другому(если я покажу Вам ВД): Что это даст Миру?
Если вы покажете хоть кому-то работающий вечный двигатель, это изменит мир сильнее, чем все предшествующие открытия и изобретения вместе взятые. Но вы не покажете, поскольку такового не существует.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3039
Зарегистрирован: 27.11.2007 16:14:47

Re: Глобальные переменные

Сообщение Дож » 30.12.2015 22:40:59

vitaly_l писал(а):
Дож писал(а):vitaly_l, галактики разлетаются https://ru.wikipedia.org/wiki/%D0%A0%D0 ... 0%BE%D0%B9

И чё???? С каких пор текст википедии - стал аргументом?

Текст в википедии — это обзорный текст, а не аргумент. Если Вы готовы предметно обсуждать первоисточники, то вперёд, можете начать с этого:
http://arxiv.org/abs/1204.5493
Там приведены ссылки на статьи, в которых описаны результаты проведённых исследований и наблюдений.

Если галактика из андромеды летит на нас со скоростью 110 т.к. в секунду?

То что? Это опровергнет теорию? Есть основания считать, что такая галактика действительно есть?
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Re: Глобальные переменные

Сообщение Снег Север » 30.12.2015 22:43:08

Дож писал(а):галактики разлетаются
Концепция разлетания галактик основана на интерпретации красного смещения в спектрах как эффекта Допплера. Но в принципе красное смещение можно объяснить и иначе. Кроме этого есть концепция "пульсирующей" вселенной, в которой расширение периодически сменяется сжатием. Пока "большой бамм" является самой разработанной теорией вселенной, но специалисты считают, что развивающаяся теория "темной материи" может очень кардинально изменить дело.
Аватара пользователя
Снег Север
долгожитель
 
Сообщения: 3039
Зарегистрирован: 27.11.2007 16:14:47

Re: Глобальные переменные

Сообщение vitaly_l » 30.12.2015 22:53:46

Дож писал(а):Это опровергнет теорию? Есть основания считать, что такая галактика действительно есть?

Конечно есть! Вы что не знаете? Спросите в любом поисковике, она направляется со стороны андромеды и будет здесь через 4-ре миллиарда лет. Теорию "большого взрыва", как опровергает? Повторяю: если бы был "глобальный взрыв", то она не могла-бы лететь на нас со скоростью 110 т.к.с., если конечно галактика это не бильярдный шар, который столкнулся с другим шаром и сменил курс более чем на 90 градусов...

Снег Север писал(а):Но вы не покажете, поскольку такового не существует.

Вы заблуждаетесь. Точнее одурачены "плохим/ложным" образованием, равно как и те кто верит в сказку про "большой взрыв".
Или же Вы как физик можете объяснить: Как это галактика сменила курс более чем на 90 градусов и летит на нас со скоростью 110 т.к.с?
Можете пояснить?

Снег Север писал(а):специалисты считают, что развивающаяся теория "темной материи" может очень кардинально изменить дело

Этой теории гораздо больше лет нежели теории большого взрыва, только понятие "тёмная материя" - поменяли, т.к. появилось больше знаний и нельзя называть "тёмную материю" её старым названием. Но с галактиками всё гораздо проще.
Аватара пользователя
vitaly_l
долгожитель
 
Сообщения: 3333
Зарегистрирован: 31.01.2012 16:41:41

Re: Глобальные переменные

Сообщение Дож » 30.12.2015 23:18:04

Лекс Айрин писал(а):Кстати, место под возвращаемое значение может как формироваться заранее, так и после вызова. Все зависит от того, кто работает со стеком сама процедура (функция) или нет. Подозреваю, что проще все сделать заранее.


Я, пожалуй, ещё позанимаюсь ликбезом.

То, как функция принимает, и возвращает аргументы называется «конвенцией вызова» (calling convention). Конвенция определяет то, в каком порядке и каким способом будут переданы входные аргументы, как и куда в зависимости от типа будет положено возвращаемое значение, кто (функция или вызывающий функцию код) и когда меняет стек, какие регистры функция не изменит за время своей работы и прочие, порой зависящие от архитектуры процессора, нюансы.

В x86 архитектуре распространены две конвенции: stdcall, cdecl. В паскале по умолчанию используется своя конвенция (я так полагаю, называется register). Эта конвенция предписывает возвращать результат функции через регистры, если умеющаются, а если не умещаются, то класть в специально подготовленную область памяти.

Рассмотрим для примера как возвращают значения следующие три функции, откомпилированные в 32-битном fpc:
Код: Выделить всё
function func_register_int(A, B: LongInt): LongInt;
begin
  Result := A + B;
end;

function func_register_single(A, B: LongInt): Single;
begin
  Result := A + B;
end;

function func_register_int64(A, B: LongInt): Int64;
begin
  Result := A + B;
end;


Первая функция самая простая — в ней результат возвращается через регистр EAX:
Код: Выделить всё
.section .text.n_p$program_$$_func_register_int$longint$longint$$longint,"x"
   .balign 16,0x90
.globl   P$PROGRAM_$$_FUNC_REGISTER_INT$LONGINT$LONGINT$$LONGINT
P$PROGRAM_$$_FUNC_REGISTER_INT$LONGINT$LONGINT$$LONGINT:
# [15] begin
   pushl   %ebp
   movl   %esp,%ebp
   leal   -12(%esp),%esp
# Var A located at ebp-4, size=OS_S32
# Var B located at ebp-8, size=OS_S32
# Var $result located at ebp-12, size=OS_S32
   movl   %eax,-4(%ebp)
   movl   %edx,-8(%ebp)
# [16] Result := A + B;
   movl   -4(%ebp),%edx
   movl   -8(%ebp),%eax
   leal   (%edx,%eax),%eax
   movl   %eax,-12(%ebp)
# [17] end;
   movl   -12(%ebp),%eax // <- Вот тут кладётся результат сложнения из памяти в регистр EAX
   leave
   ret


Вторая функция более интересна. Дело в том, что для арифметики чисел с плавающей точкой предусмотрен свой отдельный стек внутри процессора (или сопроцессора), и, как правило, результат с плавающей точкой возвращается через этот стек:
Код: Выделить всё
.section .text.n_p$program_$$_func_register_single$longint$longint$$single,"x"
   .balign 16,0x90
.globl   P$PROGRAM_$$_FUNC_REGISTER_SINGLE$LONGINT$LONGINT$$SINGLE
P$PROGRAM_$$_FUNC_REGISTER_SINGLE$LONGINT$LONGINT$$SINGLE:
# Temps allocated between ebp-16 and ebp-12
# [25] begin
   pushl   %ebp
   movl   %esp,%ebp
   leal   -16(%esp),%esp
# Var A located at ebp-4, size=OS_S32
# Var B located at ebp-8, size=OS_S32
# Var $result located at ebp-12, size=OS_F32
   movl   %eax,-4(%ebp)
   movl   %edx,-8(%ebp)
# [26] Result := A + B;
   movl   -4(%ebp),%edx
   movl   -8(%ebp),%eax
   leal   (%edx,%eax),%eax
   movl   %eax,-16(%ebp)
   fildl   -16(%ebp)
   fstps   -12(%ebp)
# [27] end;
   flds   -12(%ebp) // <- Загружаем результат в FPU стек
   leave
   ret


Наконец, третья функций. В ней возвращаемое значение имеет размер 64 бита. Это в два раза больше, чем может содержать в себе регистр в 32-битном x86 процессоре. Поэтому это число возвращается в двух регистрах — EAX и EDX:
Код: Выделить всё
.section .text.n_p$program_$$_func_register_int64$longint$longint$$int64,"x"
   .balign 16,0x90
.globl   P$PROGRAM_$$_FUNC_REGISTER_INT64$LONGINT$LONGINT$$INT64
P$PROGRAM_$$_FUNC_REGISTER_INT64$LONGINT$LONGINT$$INT64:
# [20] begin
   pushl   %ebp
   movl   %esp,%ebp
   leal   -16(%esp),%esp
# Var A located at ebp-4, size=OS_S32
# Var B located at ebp-8, size=OS_S32
# Var $result located at ebp-16, size=OS_S64
   movl   %eax,-4(%ebp)
   movl   %edx,-8(%ebp)
# [21] Result := A + B;
   movl   -4(%ebp),%edx
   movl   -8(%ebp),%eax
   leal   (%edx,%eax),%edx
   movl   %edx,%eax
   sarl   $31,%eax
   movl   %edx,-16(%ebp)
   movl   %eax,-12(%ebp)
# [22] end;
   movl   -12(%ebp),%edx // <- Одну половину числа кладём в EDX
   movl   -16(%ebp),%eax // <- Другую в EAX
   leave
   ret


Как видим, в трёх случаях ни разу значение не возвращалось через стек.

Это одна из причин, почему мне совершенно непонятно что имеется в виду в viewtopic.php?f=2&t=10858&start=15#p92264 под словами «данная (псевдо)переменная находится (после окончания работы функции) на вершине стека» (вторая причина — не объяснено чётко что такое «после окончания работы функции»).
Аватара пользователя
Дож
энтузиаст
 
Сообщения: 899
Зарегистрирован: 12.10.2008 16:14:47

Пред.След.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5

Рейтинг@Mail.ru