Важная информация
Показано с 1 по 1 из 1

Тема: Описание FreeBasic и вопросы миграции.

  1. #1 Описание FreeBasic и вопросы миграции. 
    Супер модератор Аватар для >Quiet Snow<
    Регистрация
    11.04.2011
    Адрес
    Планета земля
    Сообщений
    3,846
    Сказал(а) спасибо
    1,815
    Поблагодарили 945 раз(а) в 807 сообщениях
    Записей в блоге
    1

    FreeBASIC - что это?


    FreeBASIC
    - это современный, свободный и бесплатный диалект языка Бейсик
    (BASIC - Beginner’s All-purpose Symbolic Instruction Code) под Windows и Linux,
    который первоначально развивался как альтернатива QuickBasic'у, однако
    существенно превзошёл его в возможностях.

    Диалект интуитивно прост, логичен, полностью содержит в себе базис QB
    (они несовместимы по коду). Функционал богат - FB позволяет подключать
    сторонние библиотеки и имеет неплохие встроенные возможности.

    Оффициальный сайт:
    Official Website | FreeBASIC Programming Language
    Википедия: FreeBASIC — Википедия


    Миграция


    Основные вопросы, интересующие желающих перейти с другого диалекта:

    • Скорость выполнения программ
    • Мультимедиа возможности(графика\звук\ввод-вывод\коммуникации)
    • Возможности языка и поддерживаемые API.
    • Примеры программ\мануалы
    • Быстрая миграция
    • Лицензия


    Отвечаю по порядку.

    Скорость:

    Диалект весьма шустр, накрайняк можно использовать ASM вставки и
    оптимизировать "до усрачки", выжимая из процессора последние такты через
    MMX и SSE.

    Мультимедиа:

    Встроенная графика только 2D - очень неплохо, можно писать весьма
    насыщенные программы, есть спрайты с альфа наложением. FB заточен под
    OpenGL, есть библиотеки для визуализации через OpenGL и совместимые со
    встроенным функционалом (GL2D), используя PNGLib можно загружать *.PNG.
    Посредствам библиотек можно воспроизвести звук (FBSound), *.WAV, *.MP3
    и *.OGG файлы легко загружаются и воспроизводятся. Микшер на сотню
    каналов, DSP эффекты библиотеки, CALLBACK функции буфера - всё по
    высшему разряду. Есть примеры для простой работы с Midi(через WINMM).
    Ввод-вывод с клавиатуры прост: MyltiKey для анализа сканкодов нажатых клавиш,
    INKEY - для ASCII ввода. Работа с мышкой тоже проще некуда. Есть функции для
    джойстика(проверял лично). По поводу коммуникаций: пока не занимался этим
    вопросом [требуется дописать описание].

    Возможности языка(c wiki):


    • Поддержка Unicode.
    • Множество встроенных типов переменных (Byte, UByte, Short, UShort, Integer,

    UInteger, LongInt, ULongInt, Single, Double, String, ZString, WString). Типы
    данных определяемые пользователем (бесконечная вложенность, Union, тип поля
    (array, function, bit fields).

    • Пространства имён.
    • Перечислимый тип (Enum).
    • Новые возможности при работе с массивами (до 2 ГБ размером, Redim Preserve).
    • Указатели (указатели на любые типы данных, неограниченная косвенная адресация).
    • Перегрузка функций и операторов.
    • Необязательные аргументы функций.
    • Встроенный ассемблер (ассемблерные инструкции в исходном коде программы).
    • Препроцессоры.
    • Typedefs.
    • Конструкторы и деструкторы классов.
    • Улучшенная графическая библиотека.


    Поддерживаемые API (цитирую stabud'a):

    Примеры в поставке с компилятором:

    1. Для работы с архивацией (LibZip , QuickLZ , ZLIB )
    2. Примеры консольных программ
    3. Работа с базой данных (sqlite)
    4. Создание DLL
    5. Работа с файлами: PDF, JPEG, GIF , PNG , и др.
    6. Работа с графикой: Allegro, Cairo , FreeType , OpenGL (включая знаменитые адаптированные примеры из туториалов NEHE) , SDL , tinyptc , и просто с использованием встроенной библиотеки FreeBasic.
    7. GUI: CGUI, GTK+, IUP , WIN32 (API) , WX-C
    8. Просто множество примеров по технике программирования в FreeBasic
    9. Папка Math включает: CryptLib (криптография) , GSL , Newton и ODE (физика в графике)
    10. Работа с сетью: пример с win32 , curl
    11. Взаимодействие с другими языками: С++, LUA, JAVA, JavaScript, VB
    12. Звук: BASS, OpenAL, FMOD
    13. Работа с Unicode


    Отдельно папка Win32, в которой:
    Работа с COM интерфейсом: D3DX, DragDROP, WebBrouser , MoviePlayerДрайвер
    Примеры GDI+
    Звук WINMM
    работа с принтером
    DDRAW
    D3D9
    xml

    Примеры программ\мануалы:

    Пожалуй лучший сайт, который я видел - сайт Станислава Будинова (aka stabud на форуме)
    Обучаться языку можно по одному его сайту, ибо огромная кладезь знаний.
    Но есть также ещё ресурсы.
    Русскоязычное сообщество FreeBasic: Смотрим тут
    Архив с тулзами\библиотеками\туториалами: Смотрим тут
    Мануал по операторам\функциям: Смотрим тут

    Быстрая миграция:

    Язык позволяет быстро мигрировать, используя опции компиляции, есть 3 синтаксических режима:

    • QB - Режим синтаксической совместимости с QuickBasic

    Можно писать код почти как на QBasic\QuickBasic, разница совсем небольшая,
    При портировании учитываем плоскую модель памяти(выкидываем все ABSOLUT-ы, DEF SEG-и),
    не забываем ставить SLEEP перед завершением программы. Избавляемся от событий, эвенты
    FreeBasic не поддерживает. При данном подходе - будете быстро портировать проги.

    • FBLite - гибрид режима FB и QB

    Нет пространств имён(возьня с хедерами) и некоторых фишек полноценного FB режима.
    Огромный плюс в отсутствии необходимости декларации переменных.

    • FB - Полноценный режим со всеми возможностями

    Обязательное объявление переменных и массивов. Функции типа SCREEN трактуются
    по-другому(смотрим мануал).

    Лицензия:

    Компилятор FreeBASIC compiler (fbc) лицензирован как GNU GPLv2 или более поздняя.
    Runtime библиотека FreeBASIC (Обе версии libfb и libfbmt) и графическая библиотека (libfbgfx)
    лицензированиы как GNU LGPLv2 со следующим исключением при статическом линковании:

    В качестве особого исключения, владельцы авторских прав этой библиотеки
    дают вам разрешение линковать эту библиотеку с независимыми модулями
    для создания исполняемых файлов, вне зависимости от условий лицензии
    этих независимых модулей, копировать и распространять полученные в
    результате исполняемые файлы в соответствии с выбранными вами [условиями],
    при условии, что эти [правила и условия] выполняются для каждого связанного
    независимого модуля.
    Независимым модулем является модуль, который не построен на базе этой
    библиотеки. Если вы модифицируете эту библиотеку, то можете расширить это
    исключение на вашу версию библиотеки, но вы не обязаны это делать. Поэтому
    если вы не хотите этого делать, то удалите данное заявление об исключении
    из вашей версии библиотеки.

    Документация FreeBASIC лицензирована как GNU FDL

    Последние изменения:
    8 янв] Переведена лицензия.
    6 фев] Исправлена ссылка на сайт Станислава Будинова
    Последний раз редактировалось >Quiet Snow<; 06.02.2013 в 21:19.
    Обучение прикладному программированию(по skype), качественно, недорого, 18+, вопросы в личку.
    «Если вы ничего не сделаете, я уверяю вас, ничего и не произойдёт» © Жак Фреско
    Ограниченно модерирую.
    Ответить с цитированием  
     

Информация о теме
Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Вопросы от новичков по продвижению сайтов
    от Konstantin Shcherba в разделе Общие вопросы оптимизации
    Ответов: 23
    Последнее сообщение: 23.08.2016, 15:32
  2. Запуск FreeBasic в MacOS X
    от Konstantin Shcherba в разделе FreeBasic
    Ответов: 7
    Последнее сообщение: 09.01.2013, 17:51
  3. Установка FreeBasic в Linux
    от Dispetcher14 в разделе FreeBasic
    Ответов: 2
    Последнее сообщение: 05.01.2013, 14:20
  4. Вопросы
    от Sten52 в разделе Basic
    Ответов: 1
    Последнее сообщение: 10.06.2012, 02:24
  5. FreeBASIC
    от Uzix в разделе Софт
    Ответов: 1
    Последнее сообщение: 08.11.2010, 21:41
Ваши права
  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •