Tibbo BASIC/C

Две сцепленные шестерёнки с надписями «C» и «BASIC».

Это не учебник по BASIC/C

Что же тогда?

Это краткое введение в Tibbo BASIC и Tibbo C: что в них есть, чего нет и чем они отличаются от других популярных реализаций BASIC/C.

Самая распространённая реализация C - стандарт ANSI C, который приобрёл популярность благодаря классической книге Кернигана и Ритчи 1978 года The C Programming Language («Язык программирования C»). Её до сих пор можно купить на Amazon.

С «популярной» версией BASIC сложнее. У многих разработчиков есть своё представление о современном BASIC, и часто оно складывается из нескольких реализаций BASIC сразу.

BASIC и C равноправны

BASIC не проще. C не быстрее. Выбор между ними - во многом дело личных предпочтений и привычки.

Единственное исключение - арифметика указателей: если нужны указатели, придётся выбрать C.

Не Tibbo BASIC или C, а Tibbo BASIC и C

Tibbo BASIC и Tibbo C - два независимых языка программирования. У каждого свой компилятор, а компоновщик у них общий.

Приложения можно разрабатывать на Tibbo BASIC, на Tibbo C или на обоих языках сразу.

Если Tibbo BASIC и C сосуществуют в одном приложении, обмениваться данными они могут только через простые типы переменных (byte, word и т. д.).

Оба языка поддерживают массивы и структуры, но реализованы они в BASIC и C по-разному.

Событийно-управляемая среда

Приложения на Tibbo BASIC и C управляются событиями: весь код выполняется в обработчиках событий, которые вызываются в ответ на события.

Это называется событийной моделью выполнения.

Статическая модель памяти

Tibbo BASIC и C используют статическую модель памяти: вся оперативная память распределяется при компиляции, кучи нет.

Плюсы: никаких ситуаций «нехватки памяти» - никогда! Не нужна сборка мусора, и нет связанных с ней накладных расходов.

Минусы: нельзя динамически менять размер структур в памяти. Нельзя динамически создавать и уничтожать объекты. Нет рекурсии и реентерабельных вызовов.

Сначала объяви, потом используй

В Tibbo BASIC/C все переменные, процедуры (функции) и прочее нужно объявить до того, как их использовать.

Здесь нет «вариантных» типов и допущений вида «раз я это использовал, значит, оно существует».

Никаких нянек

Некоторые среды разработки опекают сверх меры: на вас сыплется поток предупреждений по мелочам.

В Tibbo так не любят. Вы не получите предупреждения, если переменная «переполнится» или если вы присвоите 16-битное значение 8-битной переменной.

Считается, что так и задумано - как часто и бывает!

Tibbo BASIC и C «чистые»

...в том смысле, что в обоих языках есть лишь минимальный набор операторов, конструкций и т. п., необходимый для работы.

Весь ввод-вывод и всё, что связано с конкретным устройством, обрабатывают объекты, набор которых зависит от выбранной целевой платформы.

Например, в Tibbo BASIC или C нет оператора PRINT (или printf), потому что нет устройства вывода по умолчанию, на которое можно было бы печатать.

Вместо этого есть объект lcd. с методом lcd.print для вывода на ЖК-экран. Если в целевом устройстве нет ЖК-дисплея, то нет и объекта lcd., а значит, и вывода на ЖК-дисплей.

Далее, есть объект sys. с методом sys.debugprint для вывода на панель вывода TIDE.

И так далее. Думаем, суть ясна.

BASIC и C безразличны строки (и переводы строк)

Именно так. Всё содержимое файла можно записать в одну строку, и это будет нормально.

Переводы строк (или их отсутствие) не несут в коде никакого смысла.

Для совместимости со многими другими вариантами BASIC в Tibbo BASIC можно разделять операторы двоеточиями.

Это исключительно для вашего удобства. Компилятору всё равно, ставите вы двоеточия или нет.

s="Over the limit" x=10 'no colon, compiler is OK with this
s="Over the limit" : x=10 'colon added, compiler doesn't care

Из этого правила есть два исключения.

Первое - однострочная конструкция if-then_else в BASIC.

По своему устройству она должна располагаться и целиком помещаться на отдельной строке:

if x>10 then s="Over the limit" x=10 else s="Within limit" 'this must be on a separate line

Второе исключение касается директив препроцессора. Их нельзя разбивать на несколько строк.

Исходный материал Tibbo обновлён 11 июля 2022Оригинал на docs.tibbo.com · Сообщить об ошибке