Самые важные особенности
 

BASIC совместимость
  • FreeBASIC не "новый" бейсик. Вам не нужно изучать много, если вы знакомы с Microsoft-BASIC вариантом. Вы можете использовать либо "-lang qb" для совместимости, или (по умолчанию) "-lang fb" для некоторых новых функций, но это внесет некоторые ограничения , а так же некоторое сходство с "C" языком программирования. См. также тему Диалекты компилятора.
  • FreeBASIC не регистрочувствительный язык; Явное указание функции "main" не требуется; большинство графических и консольных операторов и процедур, существующих в Microsoft QuickBASIC уже реализованы, или будут реализованы .
  • Только с опцией "-lang qb": скалярные переменные не нуждаются в определении размеров, и суффиксы могут использоваться; номера строк поддерживаются; GoSub поддерживается.

Чистый синтаксис
  • Было добавлено только небольшое количество ключевых слов. Все процедуры реализованы в виде библиотек, поэтому по большей части, нет новых внутренних процедур, и, следовательно, весьма низкий шанс дублирования имен со старым кодом.

Тонкие привязки (файлы заголовков) с существующими библиотеками C и API-интерфейсами
  • Нет оберток, просто портированы файлы заголовков, что делает использование внешних библиотек C очень простым
  • Официальный дистрибутив поставляется с несколькими заголовками к существующим библиотекам C , см. Внешние библиотеки ТОС для получения полного актуального списка.

Многоплатформенность
  • FreeBASIC в настоящее время работает на 32-битной Windows, Linux, и DOS , а также создает приложения для Xbox консоли. Другие платформы на очереди.
  • RunTime библиотека была написана как портабельная. Все сторонние библиотеки используют инструменты, которые уже существуют в большинстве операционных систем, так как они от GNU binutils. Код компилятора написан на FreeBASIC (т.е. FreeBASIC компилирует "сам себя".). Это делает сборку простым, и создает независимость от непереносимых инструментов.

Поддержка юникода
  • Кроме ASCII файлов с Unicode управляющими последовательностями (\u), FreeBASIC может разобрать UTF-8, UTF-16LE, UTF-16BE, UTF-32LE и UTF-32BE исходные файлы (.bas) или прочитать (.bi) файлы. Они могут быть свободно смешаны с другими исходниками/заголовками в том же проекте (также с другими файлами ASCII).
  • Литеральные строки могут быть введены в исходном нелатинском алфавите, просто использовать текстовый редактор, который поддерживает некоторые упомянутые выше форматы Unicode.
  • Тип WString используется для расширенных символов, все строковые процедуры (например Left, Trim, и др.) тоже будут работать с расширенными символами.
  • Open был расширен для поддержки UTF-8, UTF-16LE и UTF-32LE файлов со спецификатором Encoding. Input # и Line Input #, а также Print # и Write # можно использовать как обычно, и любое преобразование между Unicode и ASCII происходит автоматически при необходимости.
  • Print так же поддерживает Unicode для вывода (см. в разделе Требования).

Большое количество встроенных типов данных
  • Целые: Byte, UByte, Short, UShort, Integer, UInteger, Long, Ulong, LongInt, ULongInt
  • С плавающей точкой: Single, Double
  • Строковые: фиксированной длины, переменной длины или с завершающим нулем (ZString), до 2GB длиной
  • Unicode строки (WString), как и ZString, но с поддержкой расширенных символов. Используются Windows Unicode API функции непосредственно, и др.

Пользовательские типы (UDT)
  • Неограниченная вложенность.
  • BASIC Type поддерживаются, вместе с Union оператором (в том числе анонимные UNION).
  • Массивы могут использовать до восьми размерностей включительно.
  • Указатель на процедуры в полях
  • Битовые поля.

Перечисления (enum)
  • Легко объявить список констант с последовательными значениями с помощью Enum.

Массивы
  • Фиксированные и динамические массивы поддерживаются до 2 GB размером.
  • До восьми размерностей, включая массивы с неизвестными размерами.
  • Любые нижние и верхние границы массивов.
  • Данные элементов могут быть сохранены во время повторного переопределения размера массивов с ReDim используя оператор Preserve

Указатели
  • Указатели на любые типы данных, перечисленных выше, в том числе на массив символов строки, элементов массива и UDT.
  • Тот же синтаксис, как в C.
  • Неограниченная косвенная адресация  (например, указатель на указатель на ...).
  • Указатели на процедуры.
  • Индексация [] (включая строковую индексацию).
  • Преобразование типов.

Инициализация переменных, объектов и массивов
  • Для статических на уровне модуля или локальных переменных, массивов и UDT.

Значения параметров процедуры по умолчанию
  • Для числовых, строковых и UDT параметров.

Перегрузка процедур
  • Включая процедуры с параметрами по умолчанию.

Ассемблерные вставки
  • Intel синтаксис.
  • Ссылки на переменные непосредственно по имени; никакие "хитрости кода" не требуются.

Традиционная поддержка препроцессора
  • То же синтаксис, как и в C.
  • Однострочные макросы поддерживаются командой #define , включая параметры.
  • Многострочные макросы поддерживаются командой #macro.

Типы - псевдонимы (Alias)
  • Поддержка прямой ссылки как в C, включая UDT типы и указатели на процедуры.

C-подобные управляющие последовательности для строковых литералов
  • Так же, как в C (За исключением того, что числа интерпретируются как десятичные, не восьмеричные).

Поддержка отладки
  • Полная поддержка отладки с GDB (the GNU debugger) или Insight (a GDB GUI frontend).
  • Проверка границ массивов (только со включенной опцией -exx в командной строке).
  • Проверка нулевых указателей (так же, как выше).

Создание OBJ, LIB, DLL, и console или GUI EXE
  • Вы не ограничены на какой-то одной IDE или редакторе подобного рода.
  • Вы можете создать статические и динамические/разделяемые библиотеки добавив только один параметр командной строки (-lib или -dylib/-dll).

Как 32-разрядное приложение
  • FreeBASIC может компилировать файлы исходного кода до 2 ГБ.
  • Количество символов (переменных, констант, и так далее) ограничивается только размером общей памяти, доступной во время компиляции. (Вы можете, например, включить OpenGL, GTK / SDL, BASS, одновременно в исходном коде.)

Оптимизированная генерация кода
  • Хоть FreeBASIC не оптимизирующий компилятор, он делает много видов общих оптимизаций для создания максимально быстрого кода, указанного для x86 процессора, не уступая другим альтернативным Basic, в том числе коммерческим.

Полностью бесплатный
  • Все сторонние инструменты предоставляются бесплатно. Нет заброшенного или защищенного авторским правом программного обеспечения  (за исключением GORC на Win32). Ассемблер, компоновщик, создатель библиотек/архиватор и другие приложения командной строки поставляются из GNU Binutils инструментов программирования.