Jump to content

тонкийБазовый

ThinBasic
Логотип ThinBasic
Разработчик Эрос Олми
Стабильная версия
v1.12 / 28 января 2024 г .; 4 месяца назад ( 28.01.2024 )
ТЫ Окна
Лицензия Бесплатное / проприетарное ПО
Веб-сайт www .thinbasic
Диалекты
БАЗОВЫЙ
Под влиянием
PowerBasic

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

Основные возможности [ править ]

Синтаксис [ править ]

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

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

' Traditional syntax allowed in thinBASIC
DIM a AS INTEGER  ' a is initialized to 0
a = 1             ' a now contains 1
a = a + 1         ' a now contains 2

' C/C++ inspired syntax allowed in thinBASIC
INTEGER a = 1     ' a is initialized to 1
a += 1            ' a now contains 2

' New syntax introduced in 1.9.10.0 allows defining type from string expression
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 со специальной структурой. Это позволяет модулю содержать не только типичные функции и процедуры, но также, например, константы и определения пользовательских типов, которые сразу же доступны для сценария без необходимости использования заголовочного файла. Единственное, что нужно — это явно указать в коде использование модуля — для работы с файлами это будет выглядеть так:

' This loads the module for use
Uses "File"

' Function File_Load comes from the module, it returns the content of passed file in form of String
String sBuffer = File_Load("C:\text.txt")

Функции и процедуры [ править ]

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

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

Uses "Console"

' Program body starts in TBMain function
Function TBMain()

  MyFunction(10)        ' This will print 10 20 30, because unused optional parameters #2 and #3 are initialized to 20 and 30

  MyFunction(10, 3)     ' This will print 10 3 30, because unused optional parameter #3 is initialized to 30

  MyFunction(10, 3, 5)   ' This will print 10 3 5, because we specify all the parameters, so the defaults are discarded

  Console_WaitKey

End Function

' User defined function with optional parameters with default values
Function MyFunction( a As Number, Optional b As Number = 20, c As Number = 30)

    Console_PrintL(a, b, c)

End Function

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

Привязка к сторонним API [ править ]

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

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

Организация кода [ править ]

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

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

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

#include "MyDLLWrapper.tBasicI"
#include "MyRoutines.tBasicU"

#include "dialog_*.tBasicU"    ' This would include all files matching the wildcard dialog_*.tBasicU, when present

Function TBMain()
  
  ' -- Main code goes here, and can use functionality from #included files

End Function

Кастомизация [ править ]

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

Документация [ править ]

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

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

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

ThinAir, ThinBasic IDE

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

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


ThinAir также позволяет использовать отладчик.
Этот компонент называется ThinDebug. [10] и можно посмотреть на изображении по ссылке ниже.

Примеры кода [ править ]

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

' Specifies program will use functions from console module
uses "Console"

' TBMain represents main body of the program
function TBMain()
  ' Creates variable to hold user name
  local UserName as string

  ' Asks user for the name
  Console_Print("What is your name?: ")

  ' Stores it to variable
  UserName = Console_ReadLine

  ' If length of username is 0 then no name is specified, else program will say hello
  if len(UserName) = 0 then
    Console_PrintLine("No user name specified...") 
  else
    Console_PrintLine("Hello " + UserName + "!")  
  end if

  ' Waits for any key from user before program ends
  Console_WaitKey
end function

Плюсы и минусы [ править ]

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

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

Совместимость [ править ]

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

Ссылки [ править ]

  1. ^ Олми, Э. Справочное руководство ThinBASIC. Представляем тонкий БЕЙСИК . Проверено 21 сентября 2011 г.
  2. ^ Basic.mindteq.com. ТИНБЕЙСИК . Проверено 15 февраля 2013 г.
  3. ^ Олми, Э. Справочное руководство ThinBASIC. Числовые переменные . Проверено 21 сентября 2011 г.
  4. ^ Олми, Э. Справочное руководство ThinBASIC. Строковые переменные . Проверено 21 сентября 2011 г.
  5. ^ Олми, Э. Справочное руководство ThinBASIC. Тип . Проверено 21 сентября 2011 г.
  6. ^ ШРАЙБЕР, П.; ОНДРОУШЕК, В.; ВЕЧЕТ, С.; КРЕЙСА, Дж.. Распараллеливание метода предварительно вычисленного сканирования для обработки видеокарты . Материалы 1-й международной конференции «Робототехника в образовании», RiE2010. 2010. с. 202
  7. ^ Олми, Э. Справочное руководство ThinBASIC. Как использовать . Проверено 21 сентября 2011 г.
  8. ^ Олми, Э. Справочное руководство ThinBASIC. Как использовать . Проверено 21 сентября 2011 г.
  9. ^ Basic.mindteq.com. ТИНБЕЙСИК . Проверено 15 февраля 2013 г.
  10. ^ Олми, Э. Справочное руководство ThinBASIC. ThinTools/thinDebug . Проверено 21 сентября 2011 г.
  11. ^ Basic.mindteq.com. ТИНБЕЙСИК . Проверено 15 февраля 2013 г.
  12. ^ Олми, Э. Справочное руководство ThinBASIC. Что нового . Проверено 29 июля 2017 г.
  13. ^ http://www.powerbasic.com . Создано с помощью PowerBASIC! . Проверено 21 сентября 2011 г.

Внешние ссылки [ править ]

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9af598593ccae96bddc118f2ec7d3d09__1711029780
URL1:https://arc.ask3.ru/arc/aa/9a/09/9af598593ccae96bddc118f2ec7d3d09.html
Заголовок, (Title) документа по адресу, URL1:
thinBasic - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)