FreeBASIC — язык программирования высокого уровня по синтаксису наиболее близкий к QuickBASIC, а также компилятор для него (FreeBASIC Compiler). Первоначально компилятор разрабатывался как свободная альтернатива Microsoft QuickBasic, но быстро оброс новыми возможностями и стал мощным средством разработки. Первые версии компилятора были написаны на Visual Basic, но теперь он может откомпилировать сам себя (написан
на FreeBASIC).
Компилятор
Транслятор языка компилирует тексты QBasic и FreeBASIC в 32-битные исполняемые модули Win32, DOS (в защищённом режиме) и Linux x86 модули.
Ассемблирование и компоновка производятся с помощью GNU Binary Utilities.
Компилятор распространяется на условиях GNU GPL, стандартная библиотека — на GNU LGPL.
Имеется несколько сред разработки для данного компилятора. В качестве отладчика может использоваться GNU Debugger (также поддерживается gprof).
Несмотря на то, что компилятор имеет совместимость с QuickBASIC, в язык FreeBASIC было добавлено множество расширений и возможностей для соответствия современным требованиям и стандартам и совместимости с библиотеками и API, написанными на C/C++. Начиная с версии 0.17 пользователь может выбрать три режима компиляции (опция -lang): режим совместимости с QuickBASIC (qb), старыми версиями FreeBASIC (deprecated), и стандартный режим, включающий в себя все последние изменения и возможности языка.
Новые возможности и расширения:
поддержка Unicode;
множество встроенных типов переменных (Byte, UByte, Short, UShort, Integer, UInteger, LongInt, ULongInt, Single, Double, String, ZString, WString);
типы данных определяемые пользователем (бесконечная вложенность, Union, тип поля (array, function, bit fields));
пространства имён;
перечислимый тип (Enum);
новые возможности при работе с массивами (до 2 ГБ, Redim Preserve);
указатели (указатели на любые типы данных, неограниченная косвенная адресация);
перегрузка функций и операторов;
необязательные аргументы функций;
встроенный ассемблер (ассемблерные инструкции в исходном коде программы);
препроцессоры;
Typedefs;
конструкторы и деструкторы классов;
улучшенная графическая библиотека.
Проект FreeBASIC является кроссплатформенным пакетом для интегрированных сред разработки, первоначально созданный Андре Виктором, состоящий из компилятора, ассемблера на базе ГНУ, компоновщика и архиватора, поддерживающим исполняемые библиотеки, включая программную графическую библиотеку. Компилятор f
bc к настоящему времени поддерживает процессоры на базе i386-архитектуры для ОС DOS, Linux, Windows и платформе Xbox. Проект также содержит тонкие связи (файлы заголовков) для некоторых популярных библиотек сторонних разработчиков, таких как, например, исполняемых библиотек C, Allegro, SDL, OpenGL, GTK+, Windows API и многих других, а также модулей, созданных для многих из этих библиотек.
FreeBASIC - высокоуровневый язык программирования, поддерживающий процедурное программирование, объектно-ориентированную парадигму и мета-программирование, с синтаксическим совместимым с майкрософтовским QuickBASIC. Фактически, проект FreeBASIC первоначально начинался, как попытка создания кодово-совместимой альтернативы для QuickBASIC, но он вырос в мощное средство разработки. Сегодня возможности FreeBASIC стали куда шире возможностей майкрософтовского QuickBASIC в множестве областей, поддержка большого количества данных в языке позволяет создавать программные стили, современные платформы и интерфейсы.
FbEdit - интегрированная среда разработки для FreeBASIC
Как и каждый программный продукт RAD, FbEdit делает прикладную разработку легкой и быстрой, обеспечивая умные функции и встроенные умные инструментальные средства:
синтаксическая подсветка характеристик;
более удобочитаемый код и лучший обзор;
темы;
легкая приспособляемость к вашим персональным настройкам;
визуальный диалоговый редактор;
быстрое wysiwyg создание диалоговых окон Microsoft Windows с помощью мыши;
заказная поддержка элементов управления;
многократно используемые, настраиваемые элементы управления подобно видеоиграм, окну просмотра internet или электронных таблиц;
автозавершение кода;
более быстрое занесение данных для более быстрой разработки;
подсказки “tooltips” по программированию, что минимизирует необходимость для просмотра руководства по языку;
умный отступ и автоматическое формирование блоков при редактировании создает хорошо организованный код и меньшее количество ошибок;
Знаете ли Вы, что cогласно релятивистской мифологии "гравитационное линзирование - это физическое явление, связанное с отклонением лучей света в поле тяжести. Гравитационные линзы обясняют образование кратных изображений одного и того же астрономического объекта (квазаров, галактик), когда на луч зрения от источника к наблюдателю попадает другая галактика или скопление галактик (собственно линза). В некоторых изображениях происходит усиление яркости оригинального источника." (Релятивисты приводят примеры искажения изображений галактик в качестве подтверждения ОТО - воздействия гравитации на свет) При этом они забывают, что поле действия эффекта ОТО - это малые углы вблизи поверхности звезд, где на самом деле этот эффект не наблюдается (затменные двойные). Разница в шкалах явлений реального искажения изображений галактик и мифического отклонения вблизи звезд - 1011 раз. Приведу аналогию. Можно говорить о воздействии поверхностного натяжения на форму капель, но нельзя серьезно говорить о силе поверхностного натяжения, как о причине океанских приливов. Эфирная физика находит ответ на наблюдаемое явление искажения изображений галактик. Это результат нагрева эфира вблизи галактик, изменения его плотности и, следовательно, изменения скорости света на галактических расстояниях вследствие преломления света в эфире различной плотности. Подтверждением термической природы искажения изображений галактик является прямая связь этого искажения с радиоизлучением пространства, то есть эфира в этом месте, смещение спектра CMB (космическое микроволновое излучение) в данном направлении в высокочастотную область. Подробнее читайте в FAQ по эфирной физике.