Существует ли диалект BASIC, который использует == в качестве оператора сравнения?

Любому, кто вырос на Бейсике, а позже перешел на другой язык, было очень трудно привыкнуть к «(a == b)», а не к «(a = b)» для проверки на равенство.

Существует ли диалект BASIC, который использует оператор «==» для сравнения, а не перегружает «=» для присваивания и сравнения? Или — и, может быть, это натянуто — существует ли реализация, которую можно легко взломать, чтобы использовать это поведение (чтобы изменить токены, распознаваемые синтаксическим анализатором?)

Это может быть реализация для DOS/Windows/Linux, и она не обязательно должна быть полностью функциональной. (Я использую это в учебных целях.)


person poundifdef    schedule 15.02.2010    source источник
comment
Еще один комментарий.... Если вы хотите проинструктировать, мне нравится python. Это немного более снисходительно. Имеет концепции более высокого уровня и может использоваться для более сложных проектов по мере развития навыков учащегося.   -  person BnWasteland    schedule 15.02.2010


Ответы (1)


Разве не причина для двойного равенства в семействе алголов отличать равенство от присваивания? Что же тогда вы хотите, чтобы мы сделали с ключевым словом «LET»? Отказаться от этого? Это было мое любимое ключевое слово! Такой разрешительный...

http://www.freebasic.net/

Открытый исходный код, FTW!

person BnWasteland    schedule 15.02.2010
comment
Любые мысли о том, где в источнике (который я просматриваю, но сильно раскомментирован) я могу найти то, что ищу? - person poundifdef; 15.02.2010
comment
Он уже работает... См. ast-node-misc.bas в коде компилятора (вокруг строки 442) - person BnWasteland; 15.02.2010
comment
Я это вижу... но это не работает. Например, компилятор freebasic выдает синтаксическую ошибку, когда я пытаюсь использовать ==. (Кроме того... это не отключает = для использования в качестве компаратора). Я буду продолжать копаться в коде, но дайте мне знать, если вы что-нибудь придумаете! - person poundifdef; 15.02.2010