Установка и настройка
Иногда создаётся впечатление, что все существующие задачи могут быть решены с помощью готовых программ. Во многом это действительно так, но опыт показывает, что всегда находятся задачи, которые не решаются или плохо решаются стандартными средствами. В этих случаях приходится писать собственную программу, которая делает всё так, как ты этого хочешь.
Чтобы создавать программы на фрибейсике тебе понадобятся:
- компилятор FreeBASIC;
- средства сборки;
- редакторы кода.
Компилятор
По умолчанию программы устанавливают в директорию программ %ProgramFiles%. Не будем отступать от этого правила.
Для Windows x86
FreeBASIC на основе GCC 5.2.0
Эта стандартная сборка FreeBASIC.
FreeBASIC-1.07.3-win32-gcc-5.2.0
Если требуется компилировать с опцией -gen gcc
, то дополнительно скачиваем и распаковывем в каталог с FreeBASIC:
FreeBASIC на основе GCC 8.1.0
Это экспериментальная сборка FreeBASIC, с ней исполняемые файлы получаются быстрее, однако стабильная работа не гарантируется.
FreeBASIC-1.07.3-win32-gcc-8.1.0
Если требуется компилировать с опцией -gen gcc
, то дополнительно скачиваем и распаковывем в каталог с FreeBASIC:
Для 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
Для Windows x64
Редакторы кода
Компилятор фрибейсика — это программа только для компиляции исходного кода. Предполагается, что исходный код программы будет создан в стороннем редаторе исходного кода или среде разработки. Поэтому придётся самому выбирать удобную для себя среду разработки или донастраивать уже имеющуюся.
С одной стороны это отпугивает новичков, привыкших к таким средам разработки как QBASIC или Visual Studio. С другой стороны, отсутствует привязка программиста к конкретной среде или редактору, исходный код можно писать в той программе, которая привычна и удобна.
Блокнот
В эту категорию отнесём обычный «Блокнот» и всё, чем можно открыть текстовый файл и исправить его на скорую руку.
Notepad++
Блокнот с подсветкой ключевых слов и некоторых встроенных функций и автоматической расстановкой отступов.
WinFBE
Хорошая среда разработки с подсветкой синтаксиса, отступами и всплывающими подсказками по функциям. Компилировать программы можно прямо из редактора, достаточно в настройках указать путь к компилятору.
FBEdit
Полноценная среда разработки, позволяет редактировать шаблоны оконных приложений мышкой.
Как работает FreeBASIC
FreeBASIC — это модульный компилятор, где компиляция разделена на две части: так называемые front-end (собственно FreeBASIC) и back-end:
- Front-end переводит исходный код программы не в машинный код конкретной платформы, а в некое промежуточное представление, соответствующее логике программы и не зависящее от языка и платформы;
- 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 — собственно компилятор фрибейсика