Установка и настройка

Иногда создаётся впечатление, что все существующие задачи могут быть решены с помощью готовых программ. Во многом это действительно так, но опыт показывает, что всегда находятся задачи, которые не решаются или плохо решаются стандартными средствами. В этих случаях приходится писать собственную программу, которая делает всё так, как ты этого хочешь.

Чтобы создавать программы на фрибейсике тебе понадобятся:

Компилятор

По умолчанию программы устанавливают в директорию программ %ProgramFiles%. Не будем отступать от этого правила.

Для Windows x86

FreeBASIC на основе GCC 5.2.0

Эта стандартная сборка FreeBASIC.

FreeBASIC-1.07.3-win32-gcc-5.2.0

Если требуется компилировать с опцией -gen gcc, то дополнительно скачиваем и распаковывем в каталог с FreeBASIC:

gcc-5.2.0-for-FB-win32

FreeBASIC на основе GCC 8.1.0

Это экспериментальная сборка FreeBASIC, с ней исполняемые файлы получаются быстрее, однако стабильная работа не гарантируется.

FreeBASIC-1.07.3-win32-gcc-8.1.0

Если требуется компилировать с опцией -gen gcc, то дополнительно скачиваем и распаковывем в каталог с FreeBASIC:

gcc-8.1.0-for-FB-win32

Для Windows x64

FreeBASIC на основе GCC 5.2.0

Эта стандартная сборка FreeBASIC.

FreeBASIC-1.07.3-win64-gcc-5.2.0

FreeBASIC на основе GCC 8.1.0

Это экспериментальная сборка FreeBASIC.

FreeBASIC-1.07.3-win64-gcc-8.1.0

Средства сборки

В средства сборки входят библиотеки, отладчик GDB и набор утилит.

Для Windows x86

mingw-x86-5.2.0

mingw-x86-8.1.0

Для Windows x64

mingw-64-5.2.0

mingw-64-8.1.0

Редакторы кода

Компилятор фрибейсика — это программа только для компиляции исходного кода. Предполагается, что исходный код программы будет создан в стороннем редаторе исходного кода или среде разработки. Поэтому придётся самому выбирать удобную для себя среду разработки или донастраивать уже имеющуюся.

С одной стороны это отпугивает новичков, привыкших к таким средам разработки как QBASIC или Visual Studio. С другой стороны, отсутствует привязка программиста к конкретной среде или редактору, исходный код можно писать в той программе, которая привычна и удобна.

Блокнот

В эту категорию отнесём обычный «Блокнот» и всё, чем можно открыть текстовый файл и исправить его на скорую руку.

Notepad++

Блокнот с подсветкой ключевых слов и некоторых встроенных функций и автоматической расстановкой отступов.

Домашная страница Notepad++

WinFBE

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

Домашная страница WinFBE

FBEdit

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

Как работает FreeBASIC

FreeBASIC — это модульный компилятор, где компиляция разделена на две части: так называемые front-end (собственно FreeBASIC) и back-end:

Почему же не сделать всё за один шаг? Такой ступенчатый процесс имеет преимущества: нет нужды делать компилятор полностью для каждой новой платформы, можно оставить front-end неизменным (он отвечает за синтаксис языка) и написать только новый back-end. Более того, FreeBASIC не использует собственную разработку back-end, но полагается на известные решения. В качестве такого известного решения FreeBASIC использует Gnu Compiler Collection (GCC) и Low Level Virtual Machine (LLVM).

Компиляция (трансляция)

Перевод текста программы в код промежуточного представления для Back-end. По умолчанию в роли Back-end выступает GCC, и FreeBASIC генерирует промежуточное представление кода на языке Си.

Трансляция в ассемблер

Back-end транслирует сгенерированный код в ассемблерный код.

На 32‐битной системе фрибейсик по умолчанию создаёт ассемблерный код непосредственно, без компиляции в промежуточное представление.

Ассемблирование

Программа‐ассемблер из ассемблерного кода создаёт объектные файлы.

Линковка

Компоновщик связывает все сгенерированные объектные файлы и код функций из статических библиотек в один исполняемый файл.

Очистка

Фрибейсик удаляет временные файлы.

Пакет компилятора

После того, как ты распаковал или установил FreeBASIC, ты можешь увидеть следующую структуру папок:

FreeBASIC
│
├───bin — утилиты для компиляции
│   │
│   ├───libexec — вспомогательные утилиты для GCC
│   │   │
│   │   └───…
│   │
│   └──win32 или win64
│       │
│       ├───ar.exe — архиватор объектных файлов в статические библиотеки функций
│       │
│       ├───as.exe — ассемблер
│       │
│       ├───dlltool.exe — утилита для создания библиотек импорта
│       │
│       ├───gdb.exe — отладчик
│       │
│       ├───gcc.exe — back-end GCC
│       │
│       ├───GoRC.exe — компилятор ресурсов
│       │
│       ├───gprof.exe — профилировщик
│       │
│       └───ld.exe — компоновщик
│
├───examples — примеры программ
│   │
│   └───…
│
├───inc — заголовочные файлы для библиотек
│   │
│   └───…
│
├───lib — статические библиотеки с функциями
│   │
│   └───…
│
├───changelog.txt — список изменений по сравнению с предыдущей версией компилятора
│
└───fbc.exe — собственно компилятор фрибейсика