shikhalev.org

Последние записи

ТехнологииПрограммированиеFPC

2013.11.14 • Иван Шихалев

«Обернутые» функции в Free Pascal

Бывает, требуется множество подпрограмм единообразно обернуть — добавить им всем одинаковое начало и завершение или, что более интересно, выполнить их в блоке „try ... except“ с каким-нибудь фильтром на исключения… Вообще, понятно, что FPC поддерживает процедурные типы, но как раз типы тут могут быть самые разные, а нетипизированный вызов с руч­ной установкой стека — это потенциальный неиссякаемый источник трудноуловимых ошибок.

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

Соответственно, можно вынести все действия подпрограммы во вложенную процедуру без па­ра­мет­ров, а в ос­нов­ной блок вставить вызов «оборачивателя» с этой вложенной процедурой. Далее пример.


Читать далее »

замыканияметапрограммирование

ТехнологииПрограммированиеFPCСофт

2012.08.24 • Иван Шихалев

FPC-Notes: И с чем его едят...

Программное обеспечение используется нами не в вакууме, а в некотором окружении. Одни программы необходимы для работы других, третьи могут быть полезны для совместного использования, четвертые позволяют решать смежные задачи…

Давайте рассмотрим различный софт, с которым нам, возможно, придется взаимодействовать при программировании на Free Pascal.


Читать далее »

IDEPascalbinutilsредакторысвободное ПО

ТехнологииПрограммированиеFPC

2011.11.01 • Иван Шихалев

FPC-Notes: Начало работы

Окно установщика FPC для Win32

Предварительно хочу сказать, что данная заметка является непосредственным продолжением «Что такое Free Pascal?», а не «Hello, World!»

Очевидно, чтобы использовать Free Pascal, первым делом нам надо откуда-то его взять и установить на свой компьютер. Для этого нужно зайти на официальный сайт в раздел «Download» [1] и выбрать дистрибутив для своей системы. Далее следовать инструкциям на сайте. Для разных систем предусмотрены различные адекватные системы установки (на врезке показан установщик для Win32), в том числе deb- и rpm-пакеты для распространенных дистрибутивов Linux, dmg-образ для Mac OS X и т.д.

Таким образом вы получите последний стабильный релиз. Пользователям Linux имеет смысл предварительно выяснить, нет ли пакета fpc в репозиториях родного дистрибутива… Скорее всего он там найдется, но далеко не факт, что свежей версии1.

  1. Так, например, на момент написания этих строк в основном дереве портежей Gentoo самая новая версия — 2.4.0, 


Читать далее »

Pascalкомпиляторысвободное ПОустановкаязыки программирования

ТехнологииПрограммированиеFPC

2011.10.12 • Иван Шихалев

FPC-Notes: «Hello, World!»

program Hello;

begin
 WriteLn('Hello, World!')
end.
$ fpc hello
Target OS: Linux for x86-64
Compiling hello.pp
Linking hello
5 lines compiled, 0.9 sec
$ ./hello
Hello, World!
$

Начнем по традиции с простейшей программы, делающей хоть что-то… Кто сказал «что-то полезное»? До чего-то полезного нам еще пилить и пилить. Достаточно типовой «Hello, World!» можно увидеть во врезке. Теперь можно сохранить этот текст в файл (например, hello.pp1), скомпилировать командой fpc hello и запустить. См. консольный фрагмент — если вы работаете в Linux или FreeBSD, результат должен быть похож. Да и в других системах отличия не особо существенны. Еще тут может выпасть предупреждение от компоновщика — на него внимания обращать не надо. Получилось? Теперь будем разбираться, что именно.

В действительности, это не самый минимальный пример — я таки оставил одну необязательную строку, а именно — первую… Но давайте по порядку. Исходный код программы начинается с необязательного заголовка, состоящего из ключевого слова program и идентификатора. Заканчиваться идентификатор заголовок2 должен точкой с запятой, как и любое предложение языка. Впрочем, не совсем так.

  1. FPC ищет исходные тексты по имени, подставляя расширения .pas, .pp и .p. Второй вариант указывает, что исходник предназначен именно для FPC, а не для произвольного компилятора Pascal. Именно его мы и будем использовать. 

  2. Исправил грубую ошибку при переносе поста на shikhalev.org. Была бы не столь грубая, оставил бы. 2021.04.14. 


Читать далее »

Hello, World!Pascalкомпиляторысвободное ПОязыки программирования

ТехнологииПрограммированиеFPC

2011.10.11 • Иван Шихалев

Что такое Free Pascal?

Скриншот IDE Lazarus

Free Pascal [1], точнее Free Pascal Compiler aka FPC — это свободный1 кроссплатформенный компилятор языка программирования Pascal. В отличие от другой свободной реализации этого языка — GNU Pascal, FPC ориентирован не на стандарт, а на популярные диалекты — то, что когда-то называлось Object Pascal, а теперь Delphi Language.

Существует также проект Lazarus [2] — основанная на FPC свободная среда программирования, реализующая значительную часть функционала собственно среды Borland Delphi (см. врезку). Простые проекты можно переносить практически без ру­ч­ной работы, после чего они могут быть скомпилированы для систем, отличных от Win32.

  1. GNU General Public License, см. подраздел «Лицензии»


Читать далее »

Pascalкомпиляторылицензиисвободное ПОязыки программирования