Читаем Язык программирования Euphoria. Справочное руководство полностью

В Euphoria имеется множество предопределённых (так сказать, заранее объявленных, а точнее, встроенных) процедур, функций и типов. Все они объявляются автоматически перед стартом любой программы. Редактор Euphoria отображает их имена в малиновом цвете. Эти предопределённые имена не являются занятыми словами, и вы можете переопределить их своими собственными подпрограммами.

Каждое новое имя в вашей программе перед его дальнейшим использованием должно быть объявлено, а структурная единица программы (переменная, подпрограмма, константа) фигурирующая под этим именем, должна быть вами определена. Такая дисциплина, действующая в Euphoria, позволяет вам читать программу последовательно от начала и до конца без необходимости забегания вперёд, чтобы раскрыть значение заинтриговавшего вас слова, которое уже вовсю используется автором программы, но действительный смысл которого ещё окутан тайной, которая скрывается где-то в дебрях кода, спутанного как итальянские макароны в кастрюле. Тем не менее, если необходимость в опережающей ссылке на подпрограмму существует и оправдана упрощением кода, вы можете предусмотреть вызов подпрограммы по особому её номеру, значение которого будет вычислено в вашей программе позже, но не по имени, которое ещё не объявлено. Для этого в Euphoria имеются специальная функция, routine_id(), и, соответственно, подпрограммы call_func() или call_proc(), одна для функций, а другая для процедур. См. Часть II - Библиотека подпрограмм - Динамические вызовы.

В процедурах, функциях и типах разрешены рекурсивные вызовы, когда подпрограмма вызывает саму себя. Взаимная рекурсия, где подпрограмма A вызывает подпрограмму B, которая прямо или косвенно вызывает подпрограмму A, также возможна, но требует использования механизма routine_id().

Имя считается известным интерпретатору от точки, в которой оно было объявлено, до границы его сцены. Сцена переменной, объявленной внутри подпрограммы (частной переменной) ограничена концом подпрограммы. Сцена всех других переменных, констант, процедур, функций и типов ограничена концом файла исходного кода, в котором они объявлены, и все они называются местными (локальными). Если объявлению на уровне файла предшествует ключевое слово global (глобальный), то сцена в этом случае может простираться за пределы файла, в котором записано объявление, но правила, по которым сцена ограничивается, становятся не слишком простыми.

Когда вы включаете библиотечный файл Euphoria в свой главный файл (см. 2.6 Специальные команды высшего уровня), то только переменные и подпрограммы, объявленные в библиотечном файле с использованием ключевого слова global, оказываются доступными или даже видимыми в вашем главном файле. Другие, не-глобальные, объявления в библиотечном файле видны интерпретатору только до конца библиотечного файла, и вы можете повторно использовать их имена, не опасаясь, что местные переменные, уже работающие в пределах библиотечного файла, будут в этом случае как-то задеты из вашего главного файла. И напротив, если вы попытаетесь обратиться к местной переменной или подпрограмме библиотечного файла по их именам из вашего главного файла, то получите аварийную остановку программы с сообщением об ошибке "not declared" - "не объявлено".

Имена, объявленные как global, могут действовать и вне того файла, где они объявлены. Но все другие имена действуют только внутри их собственного файла. Это обстоятельство очень полезно при сопровождении или усовершенствовании библиотечного файла или при изучении его работы и использования. Вы можете делать изменения в его внутренних (местных и частных) переменных и местных подпрограммах до тех пор, пока эти изменения не затрагивают работу глобальных переменных и подпрограмм, и вам не нужно будет заботиться о необходимости тестирования других файлов или извещать пользователей библиотеки.

Иногда, используя библиотеки, разработанные другими программистами, вы будете сталкиваться с возникающими конфликтами имён. Один из авторов библиотек, используемых вами совместно, может дать своей подпрограмме то же самое глобальное имя, которое уже было занято другими авторами. Если у вас имеется исходный код, вы можете просто отредактировать одну из библиотек и исправить ситуацию, но тогда вы должны будете повторять это редактирование снова и снова по мере выхода новых версий используемой вами библиотеки. В Euphoria имеется более простой путь для решения подобных проблем. Используя расширенную команду include, вы можете записать, например:


include johns_file.e as john

include bills_file.e as bill


john:x += 1

bill:x += 2


Перейти на страницу:

Все книги серии Euphoria

Язык программирования Euphoria. Справочное руководство
Язык программирования Euphoria. Справочное руководство

Euphoria (юфо'ри, также рус. эйфори'я, ра'дость) — язык программирования, созданный Робертом Крейгом (Rapid Deployment Software) в Канаде, Торонто. Название Euphoria — это акроним для «End-User Programming with Hierarchical Objects for Robust Interpreted Applications».Euphoria — интерпретируемый императивный язык высокого уровня общего назначения. C помощью транслятора из исходного кода на Euphoria может быть сгенерирован исходный код на языке Си, который в свою очередь может быть скомпилирован в исполнияемый файл или динамическую библиотеку при помощи таких компиляторов, как GCC, OpenWatcom и др. Программа Euphoria также может быть «связана» с интерпретатором для получения самостоятельного исполняемого файла. Поддерживается несколько GUI-библиотек, включая Win32lib и оберток для wxWidgets, GTK+ и IUP. Euphoria имеет встроенную простую систему баз данных и обертки для работы с другими типам баз данных.[Материал из Википедии]

Коллектив авторов

Программирование, программы, базы данных

Похожие книги

Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ
Эффективное использование C++. 55 верных способов улучшить структуру и код ваших программ

Эта книга представляет собой перевод третьего издания американского бестселлера Effective C++ и является руководством по грамотному использованию языка C++. Она поможет сделать ваши программы более понятными, простыми в сопровождении и эффективными. Помимо материала, описывающего общую стратегию проектирования, книга включает в себя главы по программированию с применением шаблонов и по управлению ресурсами, а также множество советов, которые позволят усовершенствовать ваши программы и сделать работу более интересной и творческой. Книга также включает новый материал по принципам обработки исключений, паттернам проектирования и библиотечным средствам.Издание ориентировано на программистов, знакомых с основами C++ и имеющих навыки его практического применения.

Скотт Майерс , Скотт Мейерс

Программирование, программы, базы данных / Программирование / Книги по IT