ThinBasic - ThinBasic

ThinBasic
Логотип ThinBasic
РазработчикЭрос Ольми
Стабильный выпуск
v1.10.5.0 / 15 октября 2018 г.; 2 года назад (2018-10-15)
Предварительный выпуск
v1.10.6.0 / 19 января 2019 г.; 22 месяца назад (2019-01-19)
Операционные системыWindows
ЛицензияБесплатное ПО / Проприетарный
Интернет сайтwww.thinbasic.com
Диалекты
БАЗОВЫЙ
Под влиянием
Powerbasic

thinBasic это БАЗОВЫЙ -любить компьютерное программирование язык переводчик[1] с центральной архитектурой ядра ядра, окруженной множеством специализированных модулей. Хотя изначально он был разработан в основном для автоматизации компьютеров, благодаря своей модульной структуре он может использоваться для решения широкого круга задач.

Основные особенности

Синтаксис

Как следует из названия, наибольшее влияние на синтаксис этого языка оказал язык BASIC. Но, в отличие от традиционных BASIC, известных из 8-битной эры, thinBASIC действительно отличается в нескольких важных моментах.

Например, он требует, чтобы программист объявил переменные, и в нем нет печально известных операторов GOTO и GOSUB. Некоторые аспекты синтаксиса даже вдохновлены языками, отличными от BASIC, например C /C ++.[2] Благодаря этому, thinBASIC дополнительно позволяет использовать неявное продолжение строки, упрощенное сложение, вычитание, умножение и деление, сокращенное объявление и инициализацию переменных:

'Традиционный синтаксис разрешен в thinBASICТусклыйаВ КАЧЕСТВЕЦЕЛОЕ'a инициализируется 0а=1'a теперь содержит 1а=а+1'a теперь содержит 2'Синтаксис, вдохновленный C / C ++, разрешен в thinBASICЦЕЛОЕа=1'a инициализируется 1а+=1'a теперь содержит 2'Новый синтаксис, представленный в 1.9.10.0, позволяет определять тип из строкового выраженияSTRINGsType="INTEGER"ТусклыйаПОДОБНОsType

Еще одним источником вдохновения являются современные версии BASIC, такие как Visual Basic или PowerBASIC.

ThinBASIC предлагает основные операторы управления потоком, такие как SELECT CASE, IF ... THEN / ELSEIF / ELSE / END IF, циклы (бесконечный, условный, ДЛЯ, WHILE / WEND, DO / LOOP WHILE ..., DO / LOOP UNTIL ...), а также прилагает очень большие усилия для предоставления широкого набора встроенных функций для обработки чисел и особенно обработки строк.

Переменные и типы данных

ThinBASIC поддерживает широкий диапазон числовых[3] и строка[4] типы данных.

Целое числоПлавающая точкаСтрокаДругой
БАЙТНЕ ЗАМУЖЕМSTRINGВАРИАНТ
СЛОВОДВОЙНОЙSTRING * nGUID
DWORDВАЛЮТАASCIIZ * nBOOLEAN
ЦЕЛОЕРАСШИРЕННЫЙ, EXTUDT (определяемый пользователем тип)
ДЛИННАЯСОЮЗЫ
QUADiDispatch

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

Особенности, связанные с пользовательскими типами в thinBASIC:[5]

  • возможность наследовать члены от одного или нескольких других определяемых пользователем типов
  • статические члены (члены, значение которых является общим для всех переменных данного UDT)
  • динамические строки

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

Модули

Элементарная функциональность языка обеспечивается так называемым Ядро модуль, который загружается по умолчанию, а также занимается синтаксическим анализом.

Помимо основного модуля, thinBASIC предлагает другие модули, каждый из которых охватывает определенную область функциональности, например:

  • Создание графического интерфейса
  • управление консолью
  • обработка файлов
  • 3D графика
  • сеть
  • ...

Каждый модуль представлен одной DLL с определенной структурой. Это позволяет модулю содержать не только типичные функции и процедуры, но также, например, константы и определения определяемых пользователем типов, которые немедленно становятся доступными для сценария без необходимости в файле заголовка. Единственное, что нужно, это явно упомянуть использование модуля в коде - для обработки файлов это будет выглядеть так:

'Это загружает модуль для использованияИспользует"Файл"'Функция File_Load исходит из модуля, она возвращает содержимое переданного файла в виде StringСтрокаsBuffer=File_Load("C:  text.txt")

Функции и процедуры

Чтобы лучше структурировать код, thinBASIC предоставляет функции и функциональные возможности процедур. Есть одна функция со специальной обработкой, называемая TBMAIN, которая гарантированно будет выполнена первой. Он представляет ту же функцию, что и функция main () в C язык программирования, но его использование необязательно.

Программист может определять собственные функции и процедуры (называемые подпрограммами); они могут иметь до 32 параметров. Обе функции и процедуры не нужно объявлять перед использованием. Параметры можно пометить как необязательные, а также их можно инициализировать значениями по умолчанию. Каждый параметр можно указать для передачи по значению (по умолчанию) или по ссылке.

Использует "Консоль"'Тело программы запускается в функции TBMainФункция TBMain()  Моя функция(10)        'Это напечатает 10 20 30, потому что неиспользуемые необязательные параметры # 2 и # 3 инициализируются значениями 20 и 30  Моя функция(10, 3)     'Будет напечатано 10 3 30, потому что неиспользуемый необязательный параметр # 3 инициализируется значением 30  Моя функция(10, 3, 5)   'Это напечатает 10 3 5, потому что мы указываем все параметры, поэтому значения по умолчанию отбрасываются  Console_WaitKeyКонец Функция'Пользовательская функция с дополнительными параметрами со значениями по умолчаниюФункция Моя функция( а Так как Число, Необязательный б Так как Число = 20, c Так как Число = 30)    Console_PrintL(а, б, c)Конец Функция

Функции можно вызывать напрямую, как в листинге выше, или путем составления их имени во время выполнения.

Привязка к сторонним API

ThinBASIC поддерживает вызов функций из сторонних DLL; программист должен сначала объявить их, чтобы получить доступ к функциям.

Благодаря этому механизму thinBASIC позволяет использовать такие технологии, как OpenGL, OpenCL,[6] XML, ODE и много других.

Код организации

ThinBASIC на данный момент не поддерживает какие-либо формы файлов проектов, но поощряет разделение кода на единицы, предоставляя несколько расширений файлов для различного использования:

  • .tBasic - основной код
  • .tBasicI - включаемый файл, содержащий, например, объявление функций из сторонних DLL
  • .tBasicU - кодовый блок, содержащий вспомогательные подпрограммы

Основной код может ссылаться на эти файлы с помощью директивы #include, которая может использовать подстановочные знаки:

#включают"MyDLLWrapper.tBasicI"#включают"MyRoutines.tBasicU"#включают"диалог _ *. tBasicU"'Это будет включать все файлы, соответствующие диалогу с подстановочными знаками _ *. TBasicU, если он присутствуетФункцияTBMain()'- Основной код находится здесь и может использовать функции из #included файловКонецФункция

Настройка

Язык может быть улучшен путем разработки модуля с использованием SDK для многих языков (PowerBASIC, FreeBASIC, C, MASM ).

Документация

Команда разработчиков уделяет большое внимание документации по языку и учебным ресурсам. Сам язык задокументирован в обширном файле справки.[7] а установка по умолчанию также содержит руководство и много примеров кода.

Были опубликованы различные статьи по использованию thinBASIC в виде ThinBasic Journal а также на домашней странице языка программирования (см. внешние ссылки).

Интегрированная среда разработки (IDE)

thinAir, thinBasic IDE

ThinBASIC поставляется с собственной IDE, называемой thinAir, при установке по умолчанию.[8]Это предлагает:

  • Настраиваемый подсветка синтаксиса
  • Шаблоны кода
  • Одновременное открытие нескольких исходных файлов во вкладках
  • Возможность просмотра одного источника с использованием нескольких представлений
  • Необязательная обфускация скрипта
  • Создание независимого исполняемого файла из скрипта[9]
  • Доступ к файлу справки


thinAir также позволяет использовать отладчик.
Этот компонент называется thinDebug.[10] и его можно увидеть на изображении, приведенном ниже.

Примеры кода

Консольная программа, которая спрашивает имя пользователя и приветствует его:

'Указывает, что программа будет использовать функции из модуля консолииспользует "Консоль"TBMain представляет собой основную часть программыфункция TBMain()  'Создает переменную для хранения имени пользователя  местный Имя пользователя так как нить  'Спрашивает у пользователя имя  Console_Print("Как вас зовут?: ")  'Сохраняет его в переменной  Имя пользователя = Console_ReadLine  'Если длина имени пользователя равна 0, тогда имя не указано, иначе программа скажет привет  если len(Имя пользователя) = 0 тогда    Console_PrintLine("Имя пользователя не указано ...")   еще    Console_PrintLine("Привет " + Имя пользователя + "!")    конец если  'Ожидает любого ключа от пользователя до завершения программы  Console_WaitKeyконец функция

За и против

ThinBASIC был разработан для Windows платформа, и именно поэтому она эффективно использует ресурсы, предоставляемые этой системой, такие как реестр, пользовательский интерфейс, работа с процессами, COM, DLL. Несмотря на интерпретацию, thinBASIC обычно имеет быстрое выполнение.[11] Когда интерпретаторский характер языка достигает пределов, можно выполнять оптимизацию, используя частичную JIT-компиляцию. Еще одна сильная сторона языка - это широкий набор команд, охватывающих различные области интересов, и традиционно для BASIC - сильная ориентация на обработку строк. Язык находится в постоянном развитии и поддержке.[12]

Тот факт, что thinBASIC разработан только для Windows, также может рассматриваться как недостаток для тех, кто ищет кроссплатформенные инструменты. Скорость выполнения без использования оптимизаций ниже по сравнению с выводом компиляторы, благодаря языку переводчик природа.

Совместимость

thinBASIC был разработан под Майкрософт Виндоус XP Professional с помощью PowerBASIC,[13] и требует Internet Explorer версия 5.50 или выше.

использованная литература

  1. ^ Олми, Э. Справочное руководство ThinBASIC. Представляем thinBASIC. Проверено 21 сентября 2011 г.
  2. ^ basic.mindteq.com. THINBASIC. Проверено 15 февраля 2013 г.
  3. ^ Ольми, Э. Справочное руководство ThinBASIC. Числовые переменные. Проверено 21 сентября 2011 г.
  4. ^ Ольми, Э. Справочное руководство ThinBASIC. Строковые переменные. Проверено 21 сентября 2011 г.
  5. ^ Ольми, Э. Справочное руководство ThinBASIC. Тип. Проверено 21 сентября 2011 г.
  6. ^ SCHREIBER, P .; ONDROUŠEK, V .; VĚCHET, S .; КРЕЙСА, Ю. Распараллеливание предварительно вычисленного метода согласования сканирования для обработки видеокарт. Материалы 1-й международной конференции «Робототехника в образовании», RiE2010. 2010. с. 202
  7. ^ Ольми, Э. Справочное руководство ThinBASIC. Как пользоваться. Проверено 21 сентября 2011 г.
  8. ^ Ольми, Э. Справочное руководство ThinBASIC. Как пользоваться. Проверено 21 сентября 2011 г.
  9. ^ basic.mindteq.com. THINBASIC. Проверено 15 февраля 2013 г.
  10. ^ Олми, Э. Справочное руководство ThinBASIC. thinTools / thinDebug. Проверено 21 сентября 2011 г.
  11. ^ basic.mindteq.com. THINBASIC. Проверено 15 февраля 2013 г.
  12. ^ Олми, Э. Справочное руководство ThinBASIC. Какие новости. Дата обращения 29 июля 2017.
  13. ^ http://www.powerbasic.com. Создан на PowerBASIC!. Проверено 21 сентября 2011 г.

внешняя ссылка