тонкийБазовый
![]() | Тема этой статьи Википедии может не соответствовать общему правилу по известности . ( июль 2012 г. ) |
Разработчик | Эрос Олми |
---|---|
Стабильная версия | v1.12
/ 28 января 2024 г |
ТЫ | Окна |
Лицензия | Бесплатное / проприетарное ПО |
Веб-сайт | www |
Диалекты | |
БАЗОВЫЙ | |
Под влиянием | |
PowerBasic |
ThinBasic — BASIC . подобный программирования, языка интерпретатор [1] с центральной архитектурой ядра, окруженной множеством специализированных модулей. Хотя изначально он был разработан в основном для компьютерной автоматизации, благодаря своей модульной структуре его можно использовать для решения широкого круга задач.
Основные возможности [ править ]
Синтаксис [ править ]
Как следует из названия, наибольшее влияние на синтаксис этого языка оказал язык BASIC. Но в отличие от традиционных BASICов, известных еще с 8-битной эпохи, ThinBASIC отличается по нескольким важным моментам.
Например, он требует от программиста объявления переменных и не содержит печально известных операторов GOTO и GOSUB. Некоторые аспекты синтаксиса даже созданы в языках, отличных от BASIC, таких как C / C++ . [2] Благодаря этому ThinBASIC опционально позволяет использовать неявное продолжение строки, упрощенные операторы сложения, вычитания, умножения и деления, сокращенное объявление и инициализацию переменных:
' Традиционный синтаксис разрешен в ThinBASIC
DIM a AS INTEGER ' a инициализируется значением 0
a = 1 ' a теперь содержит 1
a = a + 1 ' a теперь содержит 2
' Синтаксис, вдохновленный C/C++, разрешен в ThinBASIC
INTEGER a = 1 ' a is инициализировано значением 1
a += 1 ' a теперь содержит 2
' Новый синтаксис, представленный в версии 1.9.10.0, позволяет определять тип из строкового выражения
STRING sType = "INTEGER"
DIM a LIKE sType
Еще одним источником вдохновения являются современные версии BASIC, такие как Visual Basic или PowerBASIC .
ThinBASIC предлагает основные операторы управления потоком, такие как SELECT CASE, IF ... THEN/ELSEIF/ELSE/END IF, циклы ( бесконечные , условные , FOR , WHILE/WEND, DO/LOOP WHILE ..., DO/LOOP UNTIL ...), а также прилагаются очень большие усилия для предоставления широкого спектра встроенных функций для обработки чисел и особенно обработки строк.
Переменные и типы данных [ править ]
ThinBASIC поддерживает широкий спектр числовых [3] и строка [4] типы данных.
Целое число | Плавающая запятая | Нить | Другой |
---|---|---|---|
БАЙТ | ОДИНОКИЙ | НИТЬ | ВАРИАНТ |
СЛОВО | ДВОЙНОЙ | СТРОКА * н | ГУИД |
ДВОРД | ВАЛЮТА | ASCIIZ * н | БУЛЕВОЕ значение |
ЦЕЛОЕ ЧИСЛО | РАСШИРЕННЫЙ, РАСШИРЕННЫЙ | UDT (определяемый пользователем тип) | |
ДЛИННЫЙ | СОЮЗЫ | ||
КВАД | iDispatch |
Помимо упомянутых в таблице выше, программист может определять указатели, определяемые пользователем типы и объединения .
К особым функциям, связанным с пользовательскими типами в ThinBASIC, относятся: [5]
- возможность наследовать члены от одного или нескольких других пользовательских типов
- статические члены (члены, значение которых является общим для всех переменных данного определяемого пользователем типа)
- динамические строки
Переменные могут быть определены в глобальной, локальной или статической области видимости. ThinBASIC поддерживает массивы размером до трех измерений.
Модули [ править ]
Элементарная функциональность языка обеспечивается так называемым модулем Core , который загружается по умолчанию и также занимается синтаксическим анализом.
Помимо модуля Core, ThinBASIC предлагает другие модули, каждый из которых охватывает определенную область функциональности, например:
- создание графического интерфейса
- обработка консоли
- обработка файлов
- 3D графика
- сеть
- ...
Каждый модуль представлен одной DLL со специальной структурой. Это позволяет модулю содержать не только типичные функции и процедуры, но также, например, константы и определения пользовательских типов, которые сразу доступны для сценария без необходимости использования заголовочного файла. Единственное, что нужно — это явно указать в коде использование модуля — для работы с файлами это будет выглядеть так:
' Это загружает модуль для использования.
Использует "File"
' Функция File_Load поступает из модуля и возвращает содержимое переданного файла в виде строки
String sBuffer = File_Load ( "C:\text.txt" )
Функции и процедуры [ править ]
Чтобы лучше структурировать код, ThinBASIC предоставляет функциональные возможности функций и процедур. Есть одна функция со специальной обработкой, называемая TBMAIN, которая гарантированно выполняется первой. Она представляет ту же функцию, что и функция main() в языке программирования C , но ее использование не является обязательным.
Программист может определять собственные функции и процедуры (называемые Subs); они могут иметь до 32 параметров. И функции, и процедуры не нужно объявлять перед использованием. Параметры можно пометить как необязательные, а также их можно инициализировать значениями по умолчанию. Каждый параметр можно указать для передачи по значению (по умолчанию) или по ссылке.
Использует «Консоль»
' Тело программы начинается с функции TBMain.
Функция TBMain ()
MyFunction ( 10 ) ' Будет напечатано 10 20 30, поскольку неиспользуемые дополнительные параметры #2 и #3 инициализируются значениями 20 и 30
MyFunction ( 10 , 3 ) ' Это напечатает 10 3 30, поскольку неиспользуемый дополнительный параметр #3 инициализируется значением 30
MyFunction ( 10 , 3 , 5 ) ' Будет напечатано 10 3 5, поскольку мы указываем все параметры, поэтому значения по умолчанию отбрасываются
Console_WaitKey
End Function
' Определяется пользователем функция с дополнительными параметрами со значениями по умолчанию
Функция MyFunction ( a As Number , Необязательно b As Number = 20 , c As Number = 30 )
Console_PrintL ( a , b , c )
Конечная функция
Функции можно вызывать напрямую, как в листинге выше, или путем составления их имени во время выполнения.
Привязка к сторонним API [ править ]
ThinBASIC поддерживает вызов функций из сторонних DLL; программисту необходимо сначала объявить их, чтобы получить доступ к функциям.
Благодаря этому механизму ThinBASIC позволяет использовать такие технологии, как OpenGL , OpenCL , [6] XML , ODE и многие другие.
Организация кода [ править ]
ThinBASIC на данный момент не поддерживает какие-либо формы файлов проекта, но поощряет разделение кода на модули, предоставляя несколько расширений файлов для различного использования:
- .tBasic — основной код
- .tBasicI — включаемый файл, содержащий объявление функций, например, из сторонних DLL.
- .tBasicU — кодовый модуль, содержащий вспомогательные подпрограммы
Основной код может ссылаться на эти файлы с помощью директивы #include, которая может использовать подстановочные знаки:
# include "MyDLLWrapper.tBasicI"
# include "MyRoutines.tBasicU"
# include "dialog_*.tBasicU" ' Сюда будут включены все файлы, соответствующие подстановочному знаку Dialog_*.tBasicU, если он присутствует.
Function TBMain ()
' -- Здесь находится основной код, и может использовать функциональность из #included файлов.
End Function
Кастомизация [ править ]
Язык можно улучшить путем разработки модулей с использованием SDK для многих языков ( PowerBASIC , FreeBASIC , C , MASM ).
Документация [ править ]
Команда разработчиков уделяет большое внимание документации языка и учебным ресурсам. Сам язык описан в обширном файле справки. [7] а установка по умолчанию содержит руководство и множество примеров кода.
Различные статьи по использованию ThinBASIC были опубликованы в журнале ThinBasic Journal , а также на домашней странице языка программирования (см. внешние ссылки).
Интегрированная среда разработки (IDE) [ править ]
![](http://upload.wikimedia.org/wikipedia/en/thumb/c/c3/ThinBasic_ThinAir_IDE.png/300px-ThinBasic_ThinAir_IDE.png)
ThinBASIC поставляется с собственной IDE, называемой ThinAir, в установке по умолчанию. [8] Это предлагает:
- Настраиваемая подсветка синтаксиса
- Шаблоны кода
- Несколько исходных файлов, открытых одновременно во вкладках
- Возможность просмотра одного источника с использованием нескольких представлений
- Необязательная обфускация скрипта
- Создание независимого исполняемого файла из скрипта [9]
- Доступ к файлу справки
ThinAir также позволяет использовать отладчик.
Этот компонент называется ThinDebug. [10] и можно посмотреть на изображении по ссылке ниже.
Примеры кода [ править ]
Консольная программа, которая спрашивает пользователя об имени, а затем приветствует его:
' Указывает, что программа будет использовать функции из консольного модуля,
использует "Console"
программы
' TBMain представляет основную часть функции TBMain ()
' Создает переменную для хранения имени пользователя
local UserName в виде строки
' Запрашивает у пользователя имя
Console_Print ( "Как вас зовут? : " )
' Сохраняет его в переменной
UserName = Console_ReadLine
' Если длина имени пользователя равна 0, то имя не указано, иначе программа скажет привет,
если len ( UserName ) = 0 , то
Console_PrintLine ( «Имя пользователя не указано...» )
else
Console_PrintLine ( «Hello» + UserName + «!» )
end if
'Ожидает любого ключа от пользователя до завершения программы.
Console_WaitKey
завершения Функция
Плюсы и минусы [ править ]
ThinBASIC был разработан для платформы Windows , и именно поэтому он эффективно использует ресурсы, предоставляемые этой системой, такие как реестр , пользовательский интерфейс, работа с процессами, COM , библиотеки DLL . Несмотря на интерпретацию,thinBASIC обычно имеет быстрое выполнение. [11] Когда природа интерпретатора языка достигает предела, можно выполнить оптимизацию с использованием частичной JIT-компиляции. Еще одной сильной стороной языка является широкий набор команд, охватывающий различные области интересов, а для BASIC традиционно — сильная ориентация на обработку строк. Язык постоянно развивается и поддерживается. [12]
Тот факт, что ThinBASIC разработан только для Windows, также может рассматриваться как недостаток для тех, кто ищет кроссплатформенные инструменты. Скорость выполнения без использования оптимизаций ниже по сравнению с выводом компиляторов языка из-за природы интерпретатора .
Совместимость [ править ]
ThinBASIC был разработан под управлением Microsoft Windows XP Professional с использованием PowerBASIC . [13] и требуется Internet Explorer версии 5.50 или выше.
- Всесторонне протестировано: Windows 2000 и Server , XP , Vista , Windows 7 , Server 2003 , Windows 8 , Windows 10.
- Частично поддерживается: Windows 98 SE , Me.
- Не поддерживается: Windows 95.
Ссылки [ править ]
- ^ Олми, Э. Справочное руководство ThinBASIC. Представляем тонкий БЕЙСИК . Проверено 21 сентября 2011 г.
- ^ Basic.mindteq.com. ТИНБЕЙСИК . Проверено 15 февраля 2013 г.
- ^ Олми, Э. Справочное руководство ThinBASIC. Числовые переменные . Проверено 21 сентября 2011 г.
- ^ Олми, Э. Справочное руководство ThinBASIC. Строковые переменные . Проверено 21 сентября 2011 г.
- ^ Олми, Э. Справочное руководство ThinBASIC. Тип . Проверено 21 сентября 2011 г.
- ^ ШРАЙБЕР, П.; ОНДРОУШЕК, В.; ВЕЧЕТ, С.; КРЕЙСА, Дж.. Распараллеливание метода предварительно вычисленного сканирования для обработки видеокарты . Материалы 1-й международной конференции «Робототехника в образовании», RiE2010. 2010. с. 202
- ^ Олми, Э. Справочное руководство ThinBASIC. Как использовать . Проверено 21 сентября 2011 г.
- ^ Олми, Э. Справочное руководство ThinBASIC. Как использовать . Проверено 21 сентября 2011 г.
- ^ Basic.mindteq.com. ТИНБЕЙСИК . Проверено 15 февраля 2013 г.
- ^ Олми, Э. Справочное руководство ThinBASIC. ThinTools/thinDebug . Проверено 21 сентября 2011 г.
- ^ Basic.mindteq.com. ТИНБЕЙСИК . Проверено 15 февраля 2013 г.
- ^ Олми, Э. Справочное руководство ThinBASIC. Что нового . Проверено 29 июля 2017 г.
- ^ http://www.powerbasic.com . Создано с помощью PowerBASIC! . Проверено 21 сентября 2011 г.
Внешние ссылки [ править ]
- Официальный веб-сайт
- Форум сообщества
- Онлайн помощь
- Страница загрузки
- ThinAir, официальная среда разработки ThinBasic
- ThinDebug, ThinBasic Отладчик
- Уроки графики
- ThinBASIC Создатель приключений
- ПКОПИ! Выпуск № 40 , 16 ноября 2007 г., О ThinBasic, Эрос Олми.
- ПКОПИ! Выпуск №50 , 15 марта 2007 г., 3D-графика в ThinBASIC, Петр Шрайбер.
- Журнал ThinBasic № 1 , 5 июля 2008 г., PDF
- Журнал ThinBasic № 2 , 26 ноября 2008 г., PDF
- MovieFX: Объединение фотографии с 3D-объектом , 1 сентября 2010 г.
- MovieFX: смешивание боке на основе смешивания , 1 января 2011 г.
- Обзор ThinBasic на сайте Basics.mindteq.com