Важная информация

User Tag List

Страница 6 из 10 ПерваяПервая ... 2345678910 ПоследняяПоследняя
Показано с 51 по 60 из 99

Тема: Вызов функций через RST

  1. #51
    Veteran Аватар для Sinus
    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,279
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GriV
    2Sinus> очень оригинальный ответ на вопрос "кем и для чего" - "умными дядьками".
    ответ правильный

    Не использовать ZX-BASIC - это что оффтоп???? А меня ещё в писюканстве обвиняли
    ??? а что на ZX нет ничего кроме бейсика? ну всё, пойду топиться. а куда ж подевались C (аж две штуки есть, причём на одном ещё и писать можно), Pascal (ну так, поприкалываться), MegaBasic (там в wlile, и repeat и until), BetaBasic (т.е.) и толпа ассемблеров???

    И вообще, касательно GoTo ты сам себе противоречишь - то ты говоришь что GoTo транслируется в просто Jp <адрес>, то ты говоришь что лучше использовать циклы repeat until и do while и т.п., которые компилируются в такие жуткие конструкции, что просто ужасаешься. А тогда (если Goto быстрей) зачем вообще операторы циклов нужны???
    я себе не противоречу.
    да, в плане производительности выгоднее использовать Goto и писать на ассемблере. а в плане быстроты разработки, я лучше на перловке за 5 минут прогу напишу, чем на асме неделю колупать буду. и пофигу, что перловочный вариант вообще интерпретируется, дико неоптимален да ещё и тормозит- зато я остаток недели буду им пользоваться, а не колупать себе асмом мозг.
    [target] [zemu] [js8x] [pouet] KAY-1024, 5''FDD, 3''FDD, HDD

  2. #52
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию Ага

    я про спекк вообще то грю...
    Там где есть огромные вычислительные мощности и где платформа развивалась на больших деньгах в течение десяти двадцати лет глупо сранивать с плафтормой которая последний коммерческий проект имела лет 10-15 назад. К тому же я согласен с очень высокой оценкой экспертов об оптимизирующем компиляторе MSCPP, но это оффтоп. А вот ты возьми например Blast! - комилятор для ZX-BASIC и сделай это в нём, увидишь что будет именно так.

    И ещё раз напиши кроме чистого GoTo набор команд циклов - увидишь что у тебя и стек в дело пойдёт и память полетит в расход.
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  3. #53
    Activist Аватар для fk0
    Регистрация
    18.02.2005
    Адрес
    St. Petersburg
    Сообщений
    415
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sinus
    '?' - это и есть вариант оператора ветвления.
    Это не тот оператор. Это скорей фунция, вычисляющая
    одно либо другое выражение (подчёркиваю -- только
    выражение, ничего более) в зависимости от значения
    лог. условия. Это не оператор, как if.

    Другое дело, что и этот оператор может быть заменён
    другими логическими выражениями || и &&.

    сколько раз за последние лет 5 ты использовал goto в своих программах?
    $ grep -r goto . | wc -l
    12

    Где-то за года полтора.

    лично я - 0 (ноль).
    есть break, есть continue.
    1. завуавалированный goto хуже настоящего.

    2. while () {
    while () {
    for (; {
    switch() {
    ...
    break ?
    }}}}

    3. А как относиться к перловым next <метка>?

    во всех остальных случаях goto вредно и использовать его не стоит.
    "Заставь дурака богу молиться..." (C)

    перепрыгнуть через несколько блоков.
    ну так в таком случае есть Exceptions.
    В чистом C, вокруг longjmp. На 8-битной платформе.
    Такты считать не будем. Так ведь тоже вредно, между прочим,
    и грабельки подложены аккуратненько где надо.

    и вообще, грамотней всего поступили в java- там goto есть, но это вариация оператора break, только указывается куда надо этот break делать.
    Так ведь goto вреден? А раз в Java (это, несомненно очень модно) есть -- значит уже не вреден настолько, чтоб им
    пренебрегать?

    А более взрывоопасно сделано в bash: break <число>. Теперь
    попробуй правильно сосчитать скобочки...

    всё зависит от степени маразматичности писавшего эту программу.
    Вот это действительно верная мысль.

    однако существуют некие общепризнанные нормы, выверенные годами, как надо писать программы, а именно: использовать функции, for, while, и свести использование goto к минимуму.
    Да, да. И чтобы отступ от <Tab> именно на 4 пробела. А то
    работать не будет. С верой в goto, общепризнанные нормы, в
    богоугодную ширину табуляции и прочий бред -- это вам в церковь...
    Абсолютной истины нет. И спорить на эту тему мне -- только время
    терять.

  4. #54
    Activist Аватар для fk0
    Регистрация
    18.02.2005
    Адрес
    St. Petersburg
    Сообщений
    415
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sinus
    на самом деле умные дядьки приводят только первый аргумент, ибо если программа большая (большая, это с объёмом исходных текстов > 4mb), тогда
    Тогда ту программу, где goto по всем 4-м мегабайтам main() размазан,
    точно никакой компилятор не переварит...

  5. #55
    Activist Аватар для fk0
    Регистрация
    18.02.2005
    Адрес
    St. Petersburg
    Сообщений
    415
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Sinus
    ответ правильный
    "Умный дядька" -- это, несомненно, очень авторитетный источник.

    Повторюсь: в первоисточнике вопроса о goto утверждалось вовсе
    не то, что так любят повторять. На днях буквально натыкался в очередной раз. Просто некоторые граждане по-диагонали читают
    и воспринимать всё способны исключительно прямолинейно и
    буквально.

    Я не спорю, студенты изучающие паскаль склонны с помощью
    goto к созданию "спагетти-кода". Но это значит только то что
    это значит. Из этого не следует что goto плох или хорош, из
    этого следует только то, что goto -- инструмент которым
    можно пользоваться неправильно. И ничего более.

    Я могу выдвинуть другой критерий "читаемости" кода:
    если функция не умещается в один экран -- это плохая и
    негодная функция. За рядом специальных исключений, когда
    можно как-то обосновать почему именно так. Где тут место
    goto -- думай сам. Оно там есть.

  6. #56
    Vitamin C++ Аватар для Vitamin
    Регистрация
    14.01.2005
    Адрес
    Таганрог, Россия
    Сообщений
    4,259
    Спасибо Благодарностей отдано 
    9
    Спасибо Благодарностей получено 
    84
    Поблагодарили
    36 сообщений
    Mentioned
    7 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вот что нам рассказывали по поводу goto
    1) безусловный переход на х86 (оттуда все пошло...) неэффективен в силу потери времени на перезагрузку конвейера. Раньше было так, как сейчас- не в курсе
    2) в программах с goto труднее разбираться. вместо этого лучше табуляциями оформлять вложенности циклов и прочего. получается гораздо приятнее на вид
    3) в С++ есть неявный аналог goto: throw...catch. по сути дела, то же ухо только в профиль. если редактор с подсветкой синтаксиса, то разобраться в программе гораздо проще при таком раскладе.

  7. #57
    Master
    Регистрация
    20.01.2005
    Адрес
    Россия, Вологда
    Сообщений
    957
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Мужики, может подведем некую черту по теме?
    Напоминаю, она звучала как "Вызов функций через RST".
    Желательно "разложить" по полочкам все предложенные варианты. Ели этого никто не сделает, я попытаюсь это сделать сам, но, к сожалению, не скоро.
    axor/Perspective
    http://abzac.retropc.ru/

  8. #58
    Activist Аватар для fk0
    Регистрация
    18.02.2005
    Адрес
    St. Petersburg
    Сообщений
    415
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от captain cobalt
    Предлагается патчить адрес в команде CALL.
    Тогда вызов будет совершаться напрямую, а JP не нужен.
    Тогда патчить нужно будет в N раз больше, где N -- число вызовов
    функции. А длина списка адресов подлежащих исправлению станет
    астрономической...

    Также предлагается использовать не номера функций, а осмысленные символьные имена.
    Имя, номер -- какая, нафиг, разница? Уникальный, в пределах
    данного модуля, идентификатор. Номер короче и проще, и есть
    куда записывать (вместо адреса).

  9. #59
    Veteran Аватар для Sinus
    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,279
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GriV
    я про спекк вообще то грю...
    А вот ты возьми например Blast! - комилятор для ZX-BASIC и сделай это в нём, увидишь что будет именно так.
    Я не знаю ни что такое Blast! ни что такое Tobos.
    Я знаю что такое Alasm и мне этого хватает ^_~

    И ещё раз напиши кроме чистого GoTo набор команд циклов - увидишь что у тебя и стек в дело пойдёт и память полетит в расход.
    т.е. ты говоришь, что если Blast! не переваривает нормально цмклы, то их нигде не надо использовать?
    [target] [zemu] [js8x] [pouet] KAY-1024, 5''FDD, 3''FDD, HDD

  10. #60
    Veteran Аватар для Sinus
    Регистрация
    29.01.2005
    Адрес
    Belarus, Grodno
    Сообщений
    1,279
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    1
    Поблагодарили
    1 сообщение
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от fk0
    $ grep -r goto . | wc -l
    12
    Где-то за года полтора.
    да. против такого аргумента не поспоришь

    3. А как относиться к перловым next <метка>?
    так же как и к джавовским break <метка> и continue <метка>

    А более взрывоопасно сделано в bash: break <число>. Теперь
    попробуй правильно сосчитать скобочки...
    маразм крепчал. доизбавлялись от goto

    Абсолютной истины нет.
    воистину верная мысль!
    [target] [zemu] [js8x] [pouet] KAY-1024, 5''FDD, 3''FDD, HDD

Страница 6 из 10 ПерваяПервая ... 2345678910 ПоследняяПоследняя

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Подключение клона "Байт" к ТВ через RGB.
    от Surfin_Bird в разделе Изображение
    Ответов: 6
    Последнее: 11.03.2013, 16:59
  2. Ответов: 6
    Последнее: 09.12.2007, 22:02
  3. Ответов: 8
    Последнее: 01.05.2006, 01:38
  4. Принтер через 580ВВ55
    от Sonic в разделе Несортированное железо
    Ответов: 14
    Последнее: 08.06.2005, 09:26

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •