Главное меню
Мы солидарны с Украиной. Узнайте здесь, как можно поддержать Украину.

Бейсики

Автор Alone Coder, июля 18, 2012, 09:10

0 Пользователи и 1 гость просматривают эту тему.

Alone Coder

Подумалось: а ведь почти ничто не объединяет ВСЕ диалекты Бейсика.
С трудом нахожу только несколько пунктов:
1) условный оператор называется if (then есть не во всех диалектах, else тем более).
2) оператор цикла for var=n1 to n2 (step есть не во всех диалектах) и заканчивается next (бывает без параметров).
3) присваивание через = (let есть не во всех диалектах).
4) скалярные переменные отдельно не объявляются (массивы объявляются, кроме строковых переменных в ряде диалектов).

fujhi

Цитата: Alone Coder от июля 18, 2012, 09:10
Подумалось: а ведь почти ничто не объединяет ВСЕ диалекты Бейсика.
:+1:

IMHO тут важна историческая преемственность, а не реальная похожесть.

Цитата: Alone Coder от июля 18, 2012, 09:10
4) скалярные переменные отдельно не объявляются (массивы объявляются, кроме строковых переменных в ряде диалектов).
Не выполняется в «несовместимом» режиме FreeBASIC'а:
Цитата: http://www.freebasic.net/wiki/wikka.php?wakka=KeyPgDim
Variables must be declared before they can be used in the -lang fb dialect or when using Option Explicit in the other dialects. Only in the -lang qb and -lang fblite dialects variables may be used without first declaring them, in such a case they are called implicit variables.

[...]

Explicit Variables with Explicit Data Types
In the default dialect -lang fb, each variable must be explicitly declared with a desired data type. Type suffixes are not allowed.
Этот аккаунт официально заброшен. Связаться со мной можно по всё тому же адресу, [email]dmymd@yandex.ru[/email]. Всем пока!

Hellerick

Для меня, труЪ бейсик нужно обезательно писать через goto.

fujhi

Честно говоря, для меня загадка, какую нишу занимают бейсики в современном мире и кто ими теперь пользуется.
Этот аккаунт официально заброшен. Связаться со мной можно по всё тому же адресу, [email]dmymd@yandex.ru[/email]. Всем пока!

Python

Цитата: Alone Coder от июля 18, 2012, 09:10
Подумалось: а ведь почти ничто не объединяет ВСЕ диалекты Бейсика.
С трудом нахожу только несколько пунктов:
1) условный оператор называется if (then есть не во всех диалектах, else тем более).
2) оператор цикла for var=n1 to n2 (step есть не во всех диалектах) и заканчивается next (бывает без параметров).
3) присваивание через = (let есть не во всех диалектах).
4) скалярные переменные отдельно не объявляются (массивы объявляются, кроме строковых переменных в ряде диалектов).
Еще можно добавить (за небольшим исключением) goto и числовые метки (обязательные в каждой строке или опциональные).

Если отбросить вижуал-бейсик с клонами, добавится еще print и input,  а если не брать во внимание еще и старые бейсики с единственным типом данных, добавится статическая типизация переменных с использованием суффиксов для определения типа.

Вообще, там можно выделить несколько подсемейств, образующих между собой континуум по частичной совместимости.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Hellerick

Может быть, бейсики объединяет не столько то, что там есть, а то, чего там нет?

fujhi

Цитата: Hellerick от июля 18, 2012, 10:41
Может быть, бейсики объединяет не столько то, что там есть, а то, чего там нет?
Указательная арифметика есть (FreeBASIC), объектная ориентация есть...

IMHO характерна для бейсиков перегруженность = в присваиваниях.
Этот аккаунт официально заброшен. Связаться со мной можно по всё тому же адресу, [email]dmymd@yandex.ru[/email]. Всем пока!

Alone Coder

Цитата: Python от июля 18, 2012, 10:22
числовые метки (обязательные в каждой строке или опциональные).
Насколько помню, в висуал бейсике только символьные метки.

Python

Мне казалось, в вижуале они допускаются для сохранения совместимости.

P.S. Проверил. Действительно не поддерживаются. Видимо, с чем-то другим перепутал.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Python

Еще пара общих признаков:
• Конец строки — конец оператора; в первоначальном бейсике 1 оператор в строке, позже появились диалекты с переносами на несколько строк и несколькими операторами в строке.
• Оператор REM - комментарий
(если подумать, батники тоже представляют собой что-то бейсик-подобное)

• Оператор END — непоятно, зачем он нужен, но, кажется, есть везде.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Hellerick

Цитата: Python от июля 18, 2012, 16:46
• Оператор END — непоятно, зачем он нужен, но, кажется, есть везде.

В спектрумовском, кажись, не было.

RawonaM

Цитата: fujhi от июля 18, 2012, 09:43
Честно говоря, для меня загадка, какую нишу занимают бейсики в современном мире и кто ими теперь пользуется.
:???
Microsoft Office kagbe.

fujhi

Цитата: RawonaM от июля 18, 2012, 20:07
:???
Microsoft Office kagbe.
А, ну да. Т.к. я Офисом почти не пользуюсь, про VBA даже не подумал.
Этот аккаунт официально заброшен. Связаться со мной можно по всё тому же адресу, [email]dmymd@yandex.ru[/email]. Всем пока!

trilirium


Python

В VBA нет. Впрочем, вижуал отличается от обычного старого бейсика не меньше, чем бейсик от фортрана.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Python

Цитировать1) условный оператор называется if (then есть не во всех диалектах, else тем более).
Не является отличительным признаком: слово if используется в подавляющем большинстве языков программирования. Кроме того, следует различать if УСЛОВИЕ [then] ОПЕРАТОР (вариантом которого является if УСЛОВИЕ then МЕТКА) и добавленный позже в бейсик и фортран структурный оператор ветвления
if УСЛОВИЕ then
...
end if

В ранних бейсиках присутствует лишь первый, хотя в поздних диалектах вполне можно обойтись лишь вторым, в безгоутушных диалектах if с меткой теряет смысл.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

Python

Цитировать3) присваивание через = (let есть не во всех диалектах).
4) скалярные переменные отдельно не объявляются (массивы объявляются, кроме строковых переменных в ряде диалектов).
Также характерно для фортрана, где = используется для присваивания, а скалярные переменные объявлять необязательно, кроме того, в бейсиках поколения квикбейсика скалярные переменные можно объявлять явно (dim ПЕРЕМЕННАЯ as ТИП). Особенность бейсика в том, что = используется и для присваивания, и для сравнения.

Из всего сказанного получается, что цикл for...next — чуть ли не единственный признак, по которому можно узнать бейсик.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

kemerover

Visual Basic настолько же диалект Basic, насколько С# диалект C.

Python

Цитата: kemerover от июля  5, 2013, 08:48
Visual Basic настолько же диалект Basic, насколько С# диалект C.
Я бы сказал, даже в меньшей степени.
Пролетареві ніколи вчити європейських мов, бодай би свою знати добре і на ній принести до своєї хати світло знання (Гнат Хоткевич)
ÆC CASALI NAXI PRASQURI: AHOV CÆRU, MERTVÆRI TÆ SLAVUTÆT!
Вони просили його: «Скажи: кетум», а він говорив: «сатем», і не міг вимовити правильно.
Хотелось бы также отметить, что "Питон" - это "мышиный язык" : "пи+тон". © АБР-2

trilirium

Цитата: Hellerick от июля 18, 2012, 16:54
Цитата: Python от июля 18, 2012, 16:46
• Оператор END — непоятно, зачем он нужен, но, кажется, есть везде.

В спектрумовском, кажись, не было.

Верно, не было. Правда, там был STOP.

(Вот еще исторический Бейсиковский загиб: чем END отличается от STOP? )))

trilirium

И еще, кстати -- использование $ как суффикса строковых переменных.

Почти универсальная фича (хотя и не ручаюсь за ВСЕ бейсики).


antic

Я помню, когда с Atari развлекался, там END для чего-то в некоторых особых случаях был нужен, но уже не помню для чего
— Боже мой, боже мой, чем вы вынуждены заниматься! Но я спрашиваю вас, кто-то все-таки летит ведь к звёздам! Где-то строят мезонные реакторы! Где-то создают новую педагогику! Боже мой, совсем недавно я понял, что мы даже не захолустье, мы — заповедник! В глазах всего мира мы — заповедник глупости, невежества и порнократии.
АБС «Хищные вещи века»

Anixx

Цитата: Alone Coder от июля 18, 2012, 09:10
Подумалось: а ведь почти ничто не объединяет ВСЕ диалекты Бейсика.
С трудом нахожу только несколько пунктов:
1) условный оператор называется if (then есть не во всех диалектах, else тем более).
2) оператор цикла for var=n1 to n2 (step есть не во всех диалектах) и заканчивается next (бывает без параметров).
3) присваивание через = (let есть не во всех диалектах).
4) скалярные переменные отдельно не объявляются (массивы объявляются, кроме строковых переменных в ряде диалектов).

А какой смысл пытаться объединить ВСЕ диалекты, включая иторические?
Точнее, это уже даже не диалекты, а разные языки.

Anixx

Цитата: Python от июля 18, 2012, 10:22

Если отбросить вижуал-бейсик с клонами,

А почему нужно отбрасывать единственный современный бейсик? Все остальное - это история.

Быстрый ответ

Обратите внимание: данное сообщение не будет отображаться, пока модератор не одобрит его.

Имя:
Имейл:
Проверка:
Оставьте это поле пустым:
Наберите символы, которые изображены на картинке
Прослушать / Запросить другое изображение

Наберите символы, которые изображены на картинке:

√36:
ALT+S — отправить
ALT+P — предварительный просмотр