thinBasic - thinBasic

редактировать
ThinBasic
Логотип ThinBasic
Developer Eros Olmi
Стабильный выпуск v1.10.5.0 / 15 октября, 2018; 2 года назад (2018-10-15)
Предварительный выпуск v1.10.6.0 / 19 января 2019 г.; 21 месяц назад (19.01.2019)
OS Windows
Лицензия Бесплатное ПО / Собственное
Веб-сайтwww.thinbasic.com
Диалекты
BASIC
Испытанный
Powerbasic

thinBasic - это BASIC -подобный язык программирования интерпретатор с центральной архитектурой ядра, окруженной множеством специализированных модулей. Хотя изначально он был разработан в основном для компьютерной автоматизации, благодаря своей модульной структуре он может использоваться для решения широкого круга задач.

Содержание
  • 1 Основные возможности
    • 1.1 Синтаксис
    • 1.2 Переменные и типы данных
    • 1.3 Модули
    • 1.4 Функции и процедуры
    • 1.5 Привязка к сторонним API
    • 1.6 Код организация
    • 1.7 Настройка
    • 1.8 Документация
  • 2 Интегрированная среда разработки (IDE)
  • 3 Примеры кода
  • 4 Плюсы и минусы
  • 5 Совместимость
  • 6 Ссылки
  • 7 Внешние ссылки
Основные возможности

Синтаксис

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

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

'Традиционный синтаксис, разрешенный в thinBASIC DIM a AS INTEGER' a инициализируется значением 0 a = 1 'a теперь содержит 1 a = a + 1' a теперь содержит 2 'Синтаксис, вдохновленный C / C ++, разрешенный в thinBASIC INTEGER a = 1' a инициализируется значением 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...), а также прилагает очень большие усилия для обеспечения широкого набора встроенных функций для n хруст умбры и особенно обработка струн.

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

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

Целое числоПлавающая точкаСтрокаДругое
БАЙТОДИНСТРОКАВАРИАНТ
WORDDOUBLESTRING * nGUID
DWORDCURRENCYASCIIZ * nBOOLEAN
INTEGEREXTENDED, EXTUDT (определяемый пользователем тип)
LONGUNIONS
QUADiDispatch

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

. К особым функциям, связанным с определяемыми пользователем типами в thinBASIC, относятся:

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

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

Модули

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

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

  • создание графического интерфейса пользователя
  • обработка консоли
  • обработка файлов
  • Трехмерная графика
  • сеть
  • ...

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

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

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

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

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

Использует «Консоль» 'Тело программы начинается в функции TBMain Function 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 как число, необязательно b как число = 20, c как число = 30) Console_PrintL (a, b, c) End Function

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

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

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

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

Организация кода

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

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

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

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

Customization

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

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

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

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

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

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

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

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

Примеры кода

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

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

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

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

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

thinBASIC был разработан под Microsoft Windows XP Professional с использованием PowerBASIC и требует Internet Explorer версии 5.50 или выше.

Ссылки
Внешние ссылки
Последняя правка сделана 2021-06-11 08:49:10
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте