W Cat - Описание языка PascalABC.NET
- Название:Описание языка PascalABC.NET
- Автор:
- Жанр:
- Издательство:неизвестно
- Год:неизвестен
- ISBN:нет данных
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
W Cat - Описание языка PascalABC.NET краткое содержание
PascalABC.NET — это язык программирования Паскаль нового поколения, включающий классический Паскаль, большинство возможностей языка Delphi, а также ряд собственных расширений. Он реализован на платформе Microsoft.NET и содержит все современные языковые средства: классы, перегрузку операций, интерфейсы, обработку исключений, обобщенные классы и подпрограммы, сборку мусора, лямбда-выражения, средства параллельного программирования.
PascalABC.NET является мультипарадигменным языком: на нем можно программировать в структурном, объектно-ориентированном и функциональном стилях.
PascalABC.NET — это также простая и мощная интегрированная среда разработки, поддерживающая технологию IntelliSense, содержащая средства автоформатирования, встроенный отладчик и встроенный дизайнер форм.
Описание языка PascalABC.NET - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
Раздел инициализации и р аздел финализации представляют собой последовательность операторов, разделяемых символом ;. Операторы из раздела инициализации модуля выполняются до начала основной программы, операторы из раздела финализации модуля - после окончания основной программы. Порядок выполнения разделов инициализации и разделов финализации подключенных модулей непредсказуем. Как раздел инициализации, так и раздел финализации могут отсутствовать.
Вместо разделов инициализации и финализации может присутствовать только раздел инициализации в виде
begin
последовательность операторов
end.
Например:
unitLib;
interface
usesGraphABC;
constDim = 5;
varColors: array[1..Dim] ofinteger;
functionRandomColor: integer;
procedureFillByRandomColor;
implementation
functionRandomColor: integer;
begin
Result := RGB(Random(255),Random(255),Random(255));
end;
procedureFillByRandomColor;
begin
fori: integer := 1 toDim do
Colors[i] := RandomColor;
end;
initialization
FillByRandomColor;
end.
Циклические ссылки между модулями возможны при определенных ограничениях.
Раздел uses
Раздел usesимеет вид
uses список имен ;
Имена в списке перечисляются через запятую и могут быть либо именами подключаемых внешних модулей PascalABC.NET, либо пространствами имен .NET. Например:
usesSystem, System.Collections.Generic, MyUnit;
Здесь MyUnit - модуль PascalABC.NET, представленный в виде исходного текста или откомпилированного .pcu-модуля, System и System.Collections.Generic - пространства имен .NET.
В модуле или основной программе, которая содержит раздел uses, можно использовать все имена из подключаемых модулей PascalABC.NETи пространств имен .NET. Основное отличие между модулями и пространствами имен .NET состоит в том, что модуль содержит код, а пространства имен .NET содержат лишь имена - для использования кода его необходимо подключить с помощью директивы компилятора {$reference ИмяСборки }, где ИмяСборки - имя dll-файла, содержащего .NET-код. Другое не менее важное отличие состоит в том, что в модуле или основной программе нельзя использовать имена, определенные в другом модуле, без подключения этого модуля в разделе uses. Напротив, если сборка .NET подключена директивой $reference, то можно использовать ее имена, явно уточняя их пространством имен, не подключая это пространство имен в разделе uses. Например:
begin
System.Console.WriteLine('PascalABC.NET');
end.
По умолчанию в каждой секции usesнеявно первым подключается системный модуль PABCSystem, содержащий стандартные константы, типы, процедуры и функции. Даже если секция usesотсутствует, модуль PABCSystem подключается неявно. Кроме того, по умолчанию с помощью неявной директивы $reference подключаются сборки System.dll, System.Core.dll и mscorlib.dll, содержащие основные .NET-типы.
Поиск глобальных имен осуществляется вначале в текущем модуле или основной программе, затем во всех подключенных модулях и пространствах имен, начиная с самого правого в секции usesи заканчивая самым левым. При этом считается, что пространство имен более правого модуля вложено в пространство имен более левого. Таким образом, конфликта имен не происходит. Если необходимо использовать имя из конкретного модуля или пространства имен, следует использовать запись
ИмяМодуля . Имя
или
ИмяПространстваИменNET . Имя
В качестве имени модуля может выступать также имя основной программы если у нее присутствует заголовок program.
Упрощенный синтаксис модуля
Упрощенный синтаксис модулей без разделов интерфейса и реализации имеет вид:
unitимя модуля;
раздел описаний
end.
или
unitимя модуля;
раздел описаний
begin
раздел инициализации
end.
В разделе описаний описываются константы, переменные, процедуры, функции, классы, интерфейсы. Все имена экспортируются. Упрощенный синтаксис модулей удобно использовать при начальном обучении - модуль отличается от программы только заголовком и, возможно, отсутствием раздела операторов.
Циклические ссылки между модулями
Циклические ссылки модулей в интерфейсных частях запрещены. Например, следующая ситуация ошибочна:
unitA;
interface
usesB;
implementation
end.
unitB;
interface
usesA;
implementation
end.
Таким образом, невозможно определить два общедоступных класса в разных модулях с объектными полями, ссылающимися друг на друга.
Однако, если одна ссылка находится в интерфейсной части, а вторая - в части реализации, или обе - в частях реализации, то циклические ссылки в этом случае разрешены:
unitA;
interface
implementation
usesB;
end.
unitB;
interface
usesA;
implementation
end.
Библиотеки dll
Библиотеки dll (dynamically linked libraries):
* содержат группу взаимосвязанных подпрограмм
* находятся в откомпилированном файле
* предназначены для обращения к ним из различных программ
Они находятся в файле с расширением .dll либо в текущем каталоге приложения ( локальные ), либо в системном каталоге ( глобальные библиотеки ). Глобальными библиотеками могут пользоваться одновременно несколько приложений.
По своему назначению библиотеки очень похожи на модули, однако, имеют ряд важных отличий.
* При создании из модулей исполняемого файла .exe программа-линковщик помещает в него только те подпрограммы, переменные, типы и константы, которые используются (вызываются) в основной программе. При компиляции же библиотеки в нее добавляются все подпрограммы, потому что неизвестно, какие подпрограммы потребуются конкретному приложению.
* Библиотеки .dll при выполнении программы полностью загружаются в оперативную память.
* Библиотеки .dll часто используются одновременно несколькими программами.
* Библиотека .dll может быть написана и откомпилирована на одном языке, а обращаться к ней можно из программ, написанных на других языках. Например, программа на PascalABC.NET может вызывать функцию из библиотеки, созданной на языке C# и наобороот. Таким образом, библиотеки обеспечивают межъязыковое взаимодействие .
Структура библиотеки
Библиотека имеет практически ту же структуру, что и модуль:
libraryимя библиотеки;
interface
раздел интерфейса
Читать дальшеИнтервал:
Закладка: