Tibbo BASIC/C

Это не учебник по 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
Второе исключение касается директив препроцессора. Их нельзя разбивать на несколько строк.