Интерпретатор команд

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Интерпретатор команд

Сообщение Хакер » 25.08.2010 (Ср) 16:01

Денис писал(а):
Хакер писал(а):если только один тип сущностей может начинаться на «О», то первый маршрутизатор (селектор) направит выполнение на другой маршрутизатор


Но, ведь "Если - то" это же и есть сравнение!! Как оно реализовано без if - then?

То «если», которые выделил курсивом лично ты, это действитеьно сравнение, но его производит программист, создающий механизм.

Программист сравнивает: если язык, для которого он пишет разборщик, такой-то, тогда программист пишет один код (проектирует один граф), если же язык, для которого он пишет разборщик, эдакий, то программист пишет другой код (проектирует другой граф).

Если же ты говоришь о том, как маршрутизаторы без сравнения выбирают дальнейший маршрут, то это другое дело :wink: .
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Интерпретатор команд

Сообщение Денис » 26.08.2010 (Чт) 8:10

В общем я отчаялся хоть что-то понять. Код - лучшее объяснение. Давай код.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Интерпретатор команд

Сообщение Хакер » 26.08.2010 (Чт) 8:18

Пропробую сделать. Ты прочитал подчёркнутый ответ? Почему ты не отреагировал на последнее сообщение?
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Интерпретатор команд

Сообщение Денис » 26.08.2010 (Чт) 10:04

Хакер писал(а):Пропробую сделать. Ты прочитал подчёркнутый ответ? Почему ты не отреагировал на последнее сообщение?

На самом деле моей реакцией была просьба показать кодом реализацию подчеркнутого текста...
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Интерпретатор команд

Сообщение Хакер » 26.08.2010 (Чт) 10:09

В оригинале?

Псевдокод оригинала:

Код: Выделить всё
...
current_element_value = ...извечение-значения-текущего-элеменнта-из-входной-цепочки...
next_router = read_dword_from_memory(address_of_jat_start + current_element_value*4)
...
jmp next_router


Где JAT — Jump Addresses Table — таблица адресов переходов, о которой я уже писал 3 года назад.

Теперь понял, как без сравнения определить, куда перейти? :)
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Интерпретатор команд

Сообщение Joo » 26.08.2010 (Чт) 17:51

Хакер писал(а):Все когда-то были грудничками и какались в штаны. И ты точно так же делал это в своё время. Разве это означает, что, по хорошему, тебе стоит делать это и сейчас?

Хм... Значит, если ты с возрастом перестал это делать, значит начнешь гнобить своего ребенка за это?
Ты привел крайне неудачный пример, или ты действительно так считаешь?
Я думаю стоит, более снисходительно относиться к новичкам.
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Интерпретатор команд

Сообщение Хакер » 26.08.2010 (Чт) 18:26

Joo писал(а):Хм... Значит, если ты с возрастом перестал это делать, значит начнешь гнобить своего ребенка за это?

Если ребёнок вырос, но сознательно срёт в штаны, да, буду гнобить ругать.

Ты привел крайне неудачный пример, или ты действительно так считаешь?

Ну другой пример: вот когда ты учился в школе и тебе вдруг (ну предположим) ставили плохие отметки, ты тоже так же права качал? Дескать, фига-ли ты, придираешься? Ты, мол, сама в мои годы те же ошибки делала: «2+2=5» и жи/ши через «ы» писала и двойки получала за это.

Если человек был наркоманом, алкоголиком, а потом прозрел и стал ярым борцом, значит ли, что он не имеет права на борьбу, поскольку борется с тем, чем сам раньше грешил?

Если А критикует Б за то, что Б делает Ц, тот факт, что А сам когда-то раньше делал Ц, не означает, что теперь он не имеет морального права критиковать Б за Ц.

Взять и найти мой старый пост, в котором я спрашиваю что-то не то, и ткнуть его мне в лицо — это удел неудачников, которым нужно хоть как-то оправдать свою неправоту; это их психологическая защитная реакция. И ещё это любимое занятие адвокатов, вроде тебя и Antonariy, видимо потому, что у вас в головах идеи пацифизма, да и сам процесс вам нравится.

Ну и что, что я когда-то просил нестандартный контрол? Тогда был глуп, а теперь поумнел и не прошу. Тогда не знал, почему этого плохо, но с тех пор много рассуждал и пришёл к выводу, что это плохо. И поэтому, когда теперь кто-то замыслит сделать нестандратную кнопку, скажу, что это плохо и мерзко. Хочешь заткнуть мне рот только потому, что я раньше тоже просил нестандартную кнопку? Не выйдет.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

tav
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 28.05.2010 (Пт) 6:48

Re: Интерпретатор команд

Сообщение tav » 26.08.2010 (Чт) 18:28

зачем же использовать слова "гнобишь"... помоему правильнее и корректнее будет сказать "пытается помочь понять и начать думать".
правильно ли такое "просветительское" поведение в массах которые часто не хотят думать это уже другой вопрос :)

по теме.
в VB в указателях goto или sub'ах можно название делать переменной ? как?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Интерпретатор команд

Сообщение Хакер » 26.08.2010 (Чт) 19:05

tav писал(а):в VB в указателях goto или sub'ах можно название делать переменной ? как?

Вопрос не понятен и вряд ли он по теме.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: Интерпретатор команд

Сообщение Antonariy » 26.08.2010 (Чт) 20:56

tav писал(а):в VB в указателях goto или sub'ах можно название делать переменной ? как?
Нет, и меня это обламывало еще когда ковырял бейсик на БК 0010-01. Там не было текстовых меток, но была жесткая нумерация строк, и мне казалось нелогичным отсутствие напрашивающейся возможности сделать GOTO X+Y.
Лучший способ понять что-то самому — объяснить это другому.

hclubmk
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 240
Зарегистрирован: 19.06.2009 (Пт) 14:23
Откуда: От-туда

Re: Интерпретатор команд

Сообщение hclubmk » 26.08.2010 (Чт) 22:00

[offtop]Сплошные назидания. :puker: [/offtop]
Научились ли Вы радоваться трудностям?

Mikle
Изобретатель велосипедов
Изобретатель велосипедов
Аватара пользователя
 
Сообщения: 4148
Зарегистрирован: 25.03.2003 (Вт) 14:02
Откуда: Туапсе

Re: Интерпретатор команд

Сообщение Mikle » 26.08.2010 (Чт) 22:08

Antonariy писал(а):мне казалось нелогичным отсутствие напрашивающейся возможности сделать GOTO X+Y.

На Atari это было!

Joo
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 762
Зарегистрирован: 14.08.2008 (Чт) 11:55
Откуда: Казахстан

Re: Интерпретатор команд

Сообщение Joo » 27.08.2010 (Пт) 5:42

Хакер писал(а):Если ребёнок вырос, но сознательно срёт в штаны, да, буду гнобить ругать.

Значит, пока он маленький, ты будешь к этому относиться снисходительно?

Хакер писал(а):Ну другой пример: вот когда ты учился в школе и тебе вдруг (ну предположим) ставили плохие отметки, ты тоже так же права качал? Дескать, фига-ли ты, придираешься? Ты, мол, сама в мои годы те же ошибки делала: «2+2=5» и жи/ши через «ы» писала и двойки получала за это.

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

Хакер писал(а):Если А критикует Б за то, что Б делает Ц, тот факт, что А сам когда-то раньше делал Ц, не означает, что теперь он не имеет морального права критиковать Б за Ц.

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

Хакер писал(а):Взять и найти мой старый пост, в котором я спрашиваю что-то не то, и ткнуть его мне в лицо — это удел неудачников, которым нужно хоть как-то оправдать свою неправоту; это их психологическая защитная реакция.

Твое поведении напоминает поведении некого "упыря", которого всегда обижали одноклассники в школе, отбирали деньги, который вырос и чтобы самоутвердиться начинает делать то же самое, причем в качестве жертв как правило выбирая слабых. (это конечно же не про тебя, но поведение похоже).
"Им будет не просто, тем кто полагается на истину авторитета, вместо того чтобы полагаться на авторитет Истины"
Джеральд Месси, Египтолог

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Интерпретатор команд

Сообщение alibek » 27.08.2010 (Пт) 8:05

Joo писал(а):Прежде чем ставить плохие отметки, мне дадут необходимый материал, покажут на примерах, как нужно делать, а вот потом, если я не чего не понял и продолжаю делать неправильно, мне станут ставить плохие отметки.

Примерно также говорят нерадивые студенты, когда путают школу и институт.
В школе — учат тебя, в институте — учишься сам.
Форум — это не школа и люди, которые все разжевывают — это исключение, а не правило.
Lasciate ogni speranza, voi ch'entrate.

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Интерпретатор команд

Сообщение Денис » 27.08.2010 (Пт) 8:49

Хакер писал(а):Теперь понял, как без сравнения определить, куда перейти?


В общих чертах, да. Сейчас еще про таблицу почитаем.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

tav
Начинающий
Начинающий
 
Сообщения: 17
Зарегистрирован: 28.05.2010 (Пт) 6:48

Re: Интерпретатор команд

Сообщение tav » 27.08.2010 (Пт) 12:49

Хакер писал(а):
tav писал(а):в VB в указателях goto или sub'ах можно название делать переменной ? как?

Вопрос не понятен и вряд ли он по теме.


пытаюсь представить реализацию указнаного вами способа на VB.

самое первое что приходит в голову как это сделать, определить кол-во возможных символов в строке обработке.
сделать столько же sub'ов или gоto... но если не использовать условия, тогда надо прыгать сразу по содержащемуся в переменной значению, а это как я знаю не получится.

есть какой то другой способ переходить от одного модуля к другому ?

djalex777
Постоялец
Постоялец
 
Сообщения: 461
Зарегистрирован: 23.03.2006 (Чт) 16:02

Re: Интерпретатор команд

Сообщение djalex777 » 27.08.2010 (Пт) 12:56

[offtopic]
alibek писал(а):Форум — это не школа и люди, которые все разжевывают — это исключение, а не правило.

Не совсем так. Никто не говорит о людях, которые разжовывают, говорят о тех, которые, как бы так сказать, гнобят, относятся неуважительно, высокомерно (даже если они и разбираются в каких-то вещах лучше) - это ничему не учит других людей, не указывает на их ошибки.
[/offtopic]

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Re: Интерпретатор команд

Сообщение Хакер » 27.08.2010 (Пт) 14:36

tav писал(а):самое первое что приходит в голову как это сделать, определить кол-во возможных символов в строке обработке.
сделать столько же sub'ов или gоto... но если не использовать условия, тогда надо прыгать сразу по содержащемуся в переменной значению, а это как я знаю не получится.


Чтобы проиллюстрировать принцип Денису я придумал два обходных манёвра:
1) Не можем вызвать функцию по указателю, но можем вызвать метод объекта класса по указателю на объект. Оборачиваем вызываемые функции в ООП-обёртку, проблема решена.
2) Не может сделать прыжок по указателю, но можем сделать вызов по указателю — используем посредника-диспетчера: вместо того, чтобы самому вызывать по указателю (этого делать нельзя, т.к. это приведёт к переполнению стека), мы возвращаем управление диспетчеру и вместе с тем возвращаем ему указатель на вызываемую процедуру, которую он вызывает.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

Пред.

Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: AhrefsBot и гости: 96

    TopList