Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 3, 2015 21:49:39

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

как разделить данные по колонкам

Iskatel
В ассемблере есть функции.
Функций в ассемблере нет.

Офлайн

#2 Ноя. 4, 2015 08:28:44

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

как разделить данные по колонкам

Iskatel
Так и на сях можно функциями не пользоваться
Можно не пользоваться, но, если вы внимательно прочитаете пост, то заметите что я написал что вывод на терминал осуществляется функциями. Поэтому без функций вывод колонок не получится.



Офлайн

#3 Ноя. 4, 2015 08:31:15

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

как разделить данные по колонкам

Shaman
Функций в ассемблере нет.
Я всегда думал что есть. Есть инструкция call, она пихает sp и передает управление в друге место. Есть ret с обратными действиями.
http://www.cs.nyu.edu/courses/fall04/V22.0201-003/ia32_chap_03.pdf
Если быть точнее то это свойства не ассемблера а процессора.



Отредактировано doza_and (Ноя. 4, 2015 08:35:42)

Офлайн

#4 Ноя. 4, 2015 09:17:48

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

как разделить данные по колонкам

doza_and
Есть инструкция call, она пихает sp и передает управление в друге место. Есть ret с обратными действиями.
Бывает ещё пролог и эпилог. Это механизм вызова подпрограмм, которые в свете функциональной парадигмы я бы постеснялся называть функциями. Так что функций там нет.
В старых бейсиках даже DEF жил рядом с GOSUB.

Отредактировано Shaman (Ноя. 4, 2015 09:18:24)

Офлайн

#5 Ноя. 4, 2015 14:56:10

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

как разделить данные по колонкам

А что вы стесняетесь.
смотрим wiki:

"Фу́нкция в программировании — фрагмент программного кода (подпрограмма), к которому можно обратиться из другого места программы. В большинстве случаев с функцией связывается идентификатор, но многие языки допускают и безымянные функции. С именем функции неразрывно связан адрес первой инструкции (оператора), входящей в функцию, которой передаётся управление при обращении к функции. После выполнения функции управление возвращается обратно в адрес возврата — точку программы, где данная функция была вызвана."

То что есть в ассемблере не противоречит этому определению. Что вас собственно не устраивает в функциях языка Ассемблер?



Офлайн

#6 Ноя. 4, 2015 16:05:30

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

как разделить данные по колонкам

Пусть эту статью читают писавшие её школьники.
В ассемблере есть только подпрограммы, которые не тождественны функциям. Более того, вызов call не обязательно вызывает именно подпрограмму, а вызов ret не обязательно выходит из таковой. Так же нет общепринятых соглашений по возвращению значений из подпрограмм.

doza_and
Что вас собственно не устраивает в функциях языка Ассемблер?
Я не могу как-либо относиться к несуществующему.

Офлайн

#7 Ноя. 4, 2015 22:08:05

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

как разделить данные по колонкам

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

p.s.
Мы слишком удалились от основной темы этой ветки. А терминологические препирательства мало кому интересны.



Отредактировано doza_and (Ноя. 4, 2015 22:17:11)

Офлайн

#8 Ноя. 5, 2015 06:40:06

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

как разделить данные по колонкам

doza_and
Ваши претензии к низкому уровню содержания вики это претензии к вам. Если вы считаете что там неправильно написано и вы лучше знаете, то поправьте Вики и мне не куда будет ссылаться. А мы посмотрим сколько людей с вашей трактовкой согласится. Я согласен с текущей трактовкой. Главное переходы на новую последовательность команд и возвраты назад.
Я поступил проще: зашел с другой стороны, к другим авторам.
https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%B4%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B0#.D0.92.D0.B8.D0.B4.D1.8B_.D0.BF.D0.BE.D0.B4.D0.BF.D1.80.D0.BE.D0.B3.D1.80.D0.B0.D0.BC.D0.BC
Могу предположить, функции с подпрограммами отождествляют только те, которые ничего слаще C и производных не ели. Мне же, при осваивании ассемблера, нигде, ни единого раза не попалось на глаза слово “функция” и мне абсолютно понятно почему.
doza_and
А терминологические препирательства мало кому интересны.
Это не терминологические препирательства, это проблема правильного понимания сути, проблема выбора правильной абстракции (по Макконнеллу), если угодно.

Отредактировано Shaman (Ноя. 5, 2015 06:55:40)

Офлайн

#9 Ноя. 5, 2015 20:39:31

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  253  -
Профиль   Отправить e-mail  

как разделить данные по колонкам

Shaman
проблема выбора правильной абстракции
Да и еще раз да!!!. Конечно это вопрос типа выберите что вам ближе:
  • Функция это специальный вид подпрограммы которая возвращает значение.
  • Подпрограмма это специальный вид функции которая не возвращает значения.
И совершенно верно подмечено, это влияние С и его производных: c++, java, C#,…. и, кстати Python.
С другой стороны тоже уважаемые языки Pascal, FORTRAN, ADA…

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

Есть еще третья альтернатива. Выделить третий обобщающий функции и процедуры термин. Но такое вообще никто не поймет.

А по сути я даже затрудняюсь придумать пример где будет важно какой из взглядов использовать. Как я и отмечал все это это методы передачи управления, ну чуток разные.

p.s. Прошу извинить, последнее время стал замечать у себя черезмерную тягу к обобщениям, похоже в этом посте она сделала мои сообщения малопонятными.



Отредактировано doza_and (Ноя. 5, 2015 20:41:09)

Офлайн

#10 Ноя. 5, 2015 21:08:12

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

как разделить данные по колонкам

doza_and
А по сути я даже затрудняюсь придумать пример где будет важно какой из взглядов использовать. Как я и отмечал все это это методы передачи управления, ну чуток разные.
Вы упустили из поля зрения один момент: “Вызов функции является, с точки зрения языка программирования, выражением, он может использоваться в других выражениях или в качестве правой части присваивания.”. Идеологически чистая процедура не возвращает ничего, даже None.

Днём пришло на ум показать один пример для медитаций.
var
value : Integer;

function Sum(a, b : Integer) : Integer;
begin
Sum := a + b;
end;

procedure SumG(a, b : Integer);
begin
value := a + b;
end;

procedure SumR(var result : Integer; a, b : Integer);
begin
result := a + b;
end;

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version