FutureBasic — бесплатный компилятор BASIC для Macintosh от Apple Inc.
Он состоит из интегрированной среды разработки (IDE), редактора, менеджера проектов и т. д. как для микропроцессоров PowerPC , так и для Intel . С 1 января 2008 года в пакет включен транслятор FBtoC, который преобразует синтаксис FutureBasic в C и автоматически вызывает коллекцию компиляторов GNU Apple (gcc). Никаких знаний C не требуется. FutureBasic поддерживает доступ к вызовам библиотеки Mac OS .
FutureBASIC (FB) начал свою жизнь в середине 1980-х годов [1] как ZBasic , который был создан Эндрю Гариепи и задумывался как кроссплатформенная система разработки. Вскоре от кроссплатформенных аспектов отказались в пользу разработки для Macintosh. ZBasic приобрел преданных поклонников среди разработчиков, которые хвалили его простоту использования и компактный и быстрый код, создаваемый компилятором (легендарный труд, включающий широкое использование вручную созданного кода на языке ассемблера размером 68 КБ). В 1992 году, в качестве следующего важного шага после ZBasic версии 5 [2] , Zedcor Inc., компания братьев Гариепи Энди, Майка, Питера и друзей, базирующаяся в Тусоне , штат Аризона, представила FutureBASIC (позже названный FBI). [3] В 1995 году Staz Software, [4] под руководством Криса Стасни, приобрела права на рынок FutureBASIC. Крис Стэсни начал этот бизнес с обновленной версии, а именно FBII, [5] и своей собственной разработки Program Generator [6] (PG PRO), CASE-инструмента.
Переход от 68k к центральному процессору (ЦП) PowerPC был длительным процессом, который включал полное переписывание редактора Крисом Стэсни и адаптацию компилятора Энди Гариепи. Результатом их усилий стала значительно улучшенная IDE под названием FB^3 [7] , выпущенная в сентябре 1999 года [8] и включающая, среди прочего, отдельное приложение-компилятор, различные открытые и, следовательно, модифицируемые среды выполнения, [9] встроенную ассемблерную систему PPC. , упрощенный доступ к интерфейсу прикладного программирования (API) Macintosh Toolbox, а также расширенная библиотека встроенных функций. В основных выпусках обновлений появилась полнофункциональная среда выполнения Appearance Compliant [10] , написанная Робертом Пёрвсом, а также соответствие создаваемых приложений требованиям Carbon . Когда-то интегрированная среда разработки FutureBASIC (FB IDE) была полностью преобразована для работы на Mac OS X и называлась FB4 и впервые была выпущена в июле 2004 года.
Компания Staz Software , базирующаяся в Даймондхеде , штат Миссисипи , сильно пострадала от урагана Катрина в августе 2005 года, и темпы разработки замедлились в то время, когда требовались серьезные усилия для поддержания IDE в курсе эволюции Apple в сторону Macintosh на базе Intel.
В 2007 году независимая группа программистов-добровольцев FB, известная как команда FBtoC, разработала транслятор (FBtoC), который позволяет FB генерировать приложения в виде универсальных двоичных файлов с помощью компилятора GCC с открытым исходным кодом , который включен в каждую копию Apple Mac. Системное программное обеспечение OS X.
1 января 2008 года Staz Software объявила, что отныне FB будет бесплатным, и стал доступен FB4 с FBtoC 1.0. [11]
Системные требования для исходной версии Macintosh: Motorola 68000. Системные требования для создания универсальных двоичных файлов с помощью FBtoC: Mac OS X v10.4 или выше, GCC 4.0 или выше, а также должны быть установлены SDK для перекрестной разработки.
Синтаксис FutureBasic поддерживает процедурные , модульные стили программирования с использованием вызовов функций и локальных переменных .
Пользовательские функции (также известные как ЛОКАЛЬНЫЕ FN в FutureBasic) во многом похожи на функции C или Pascal .
Определенные структуры (ENTERPROC/EXITPROC) используются для процедур обратного вызова при вызове Macintosh Toolbox .
Язык предоставляет программисту полный набор векторов для приложений, управляемых событиями, таких как ON MENU, ON MOUSE, ON DIALOG, ON APPLEEVENT, ON EDIT, ON TIMER и т. д.
Другие структурированные ключевые слова включают условные блоки, такие как:
Устаревшие команды языка BASIC, такие как GOTO и GOSUB /RETURN с номерами строк и метками, хотя и не рекомендуются, но поддерживаются в образовательных целях.
Ниже приведен пример простой программы для ввода числа и отображения «Hello World».
//Пример программы FutureBasicdim i,num,a$ //Это наши переменныеокно 1 //открываем стандартное окноввод «Количество петель»; a$ //БАЗОВЫЙ ввод от пользователяnum=val(a$) //конвертируем текст в числоlong if num>0 //Структурированный ЕСЛИ for i = 1 to num //БАЗОВЫЙ цикл напечатайте «привет, мир» //выводим текст следующий я //конец цикла xelse //Иначе напечатайте «Не сегодня» //номер не введенконец, еслиdo //Подождем, пока Apple-Q Обработка событийдо ( gFBQuit ) //чтобы мы могли увидеть результаты
FutureBasic поддерживает сложные типы данных, включая плавающие точки одинарной и двойной точности , целые числа двойной длины, массивы, строки и записи (аналогично структурам в C). Следует отметить структуры массивов DYNAMIC (размер занимаемой памяти увеличивается только при их использовании), включая массивы строк DYNAMIC, называемые INDEX$, и переменные-контейнеры, которые могут выполнять строковые операции с потоками данных размером до 2 ГБ.
Комментирование в коде является существенным, позволяя использовать операторы REMark и /* remark */
операторы стиля C. Разделы кода можно добавить в закладки для удобства использования.
Другой альтернативный синтаксис, заимствованный из C, позволяет использовать такие операторы, как ++ -- == != += -= || &&
.
Символы в строках Pascal доступны так же, как и элементы массива: a$[0]
(длина в байтах); a$[1]
(первый символ строки a$
).
Хотя язык FutureBasic по-прежнему поддерживает типизацию переменных в старом стиле с суффиксными идентификаторами, он предоставляет современную альтернативу с предложением as: ; , ; и т. д.dim b as byte
dim s as short
dim l as long
маршрут _toAppleScript print «верните мне путь в виде строки» маршрут _toScreenlong if usr ApplescriptRun ( message $ ) = _noErr напечатать сообщение $ end if
// распечатываем календарь на 2009 год открыть «UNIX», 1, «кал 2009»тусклый $ делать линейный вход №1, а$ напечатайте $ до конца(1) закрыть 1
BeginCFunction // Простая функция C для сложения двух целых чисел long simple_add ( long a , long b ) { long sum ; сумма = а + б ; возврат ( сумма ); } КонецC // Определить функцию C, чтобы FB мог видеть ее. Панель инструментов fn simple_add ( long a , long b ) = long // Создаем небольшую программу для сложения 2 + 2 с помощью функции Cокно 1 напечатайте fn simple_add ( 2 , 2 ) делайте HandleEvents до тех пор, пока ( gFBQuit )
FutureBasic поддерживает архитектуру Macintosh Intel, но не компилируется ни под какую версию Microsoft Windows. [1] и см. нижнюю часть страницы: [2]