Новые книги

Книга "Введение в QNX/Neutrino 2» откроет перед вами в мельчайших подробностях все секреты ОСРВ нового поколения от компании QNX Software Systems Ltd (QSSL) — QNX/Neutrino 2. Книга написана в непринужденной манере, легким для чтения и понимания стилем, и поможет любому, от начинающих программистов до опытных системотехников, получить необходимые начальные знания для проектирования надежных систем реального времени, от встраиваемых управляющих приложений до распределенных сетевых вычислительных систем

В книге подробно описаны основные составляющие ОС QNX/Neutrino и их взаимосвязи. В частности, уделено особое внимание следующим темам:

• обмен сообщениями: принципы функционирования и основы применения;

• процессы и потоки: базовые концепции, предостережения и рекомендации;

• таймеры: организация периодических событий в программах;

• администраторы ресурсов: все, что относится к программированию драйверов устройств;

• прерывания: рекомендации по эффективной обработке.

В книге представлено множество проверенных примеров кода, подробных разъяснений и рисунков, которые помогут вам детально вникнуть в и излагаемый материал. Примеры кода и обновления к ним также можно найти на веб-сайте автора данной книги, www.parse.com.
«Кибернетика» — известная книга выдающегося американского математика Норберта Винера (1894—1964), сыгравшая большую роль в развитии современной науки и давшая имя одному из важнейших ее направлений. Настоящее русское издание является полным переводом второго американского издания, вышедшего в 1961 г. и содержащего важные дополнения к первому изданию 1948 г. Читатель также найдет в приложениях переводы некоторых статей и интервью Винера, включая последнее, данное им незадолго до смерти для журнала «Юнайтед Стэйтс Ньюс энд Уорлд Рипорт».

Книга, написанная своеобразным свободным стилем, затрагивает широкий круг проблем современной науки, от сферы наук технических до сферы наук социальных и гуманитарных. В центре — проблематика поведения и воспроизведения (естественного и искусственного) сложных управляющих и информационных систем в технике, живой природе и обществе. Автор глубоко озабочен судьбой науки и ученых в современном мире и резко осуждает использование научного могущества для эксплуатации и войны.

Книга предназначена для научных работников и инженеров.

Вызов операций

5.4.3. Вызов операций

В языке Eiffel методы называются подпрограммами (routines). При вызове этих подпрограмм им передаются параметры, которые могут иметь простой тип (REAL, INTEGER, BOOLEAN, или CHARACTER) или быть объектами классов, определенных программистом. В подпрограмме не разрешается изменять значения формальных параметров путем присваивания им новых значений или применения к ним операции (такие, как Create, Clone, или Forget), которые могут менять значение объектной ссылки. В то же время остальные операции могут быть применены к объектам, являющимся формальными параметрами, что вызовет изменение состояния указанных объектов.

Синтаксис вызова операции в языке Eiffel такой же, как в языке C++, причем операция '.' языка Eiffel соответствует операции '->' языка C++:

	local
	  aShape: SHAPE;
	  dx, dy: REAL
	do
	  ...
	  aShape.move (dx, dy);
	end

В языке Eiffel определен неявный доступ к свойствам целевого объекта по имени соответствующего свойства. Идентификаторы x и y являются именами атрибутов целевого объекта SHAPE:

	move (deltax, deltay: REAL) is
	-- move a shape by delta
	do
	  x = x + deltax;
	  y = y + deltay
	end

В языке Eiffel имеется предопределенный идентификатор Current, который именует целевой объект операции (он аналогичен идентификаторам this языка C++ и self языка Smalltalk). Поэтому предыдущий фрагмент программы можно записать следующим эквивалентным образом:

	move (deltax, deltay: REAL) is
	-- move a shape by delta
	do
	  Current.x = Current.x + deltax;
	  Current.y = Current.y + deltay
	end

В языке Smalltalk все параметры и переменные являются объектами; все операции являются методами, связанными с этими объектами. Применить операцию к объекту - значит послать этому объекту сообщение, состоящее из имени операции и списка значений ее параметров. Сообщение связывается с объектом во время выполнения программы (динамически), рассматривается класс соответствующего объекта и находится соответствующая операция в этом классе или в его предках (по наследованию). Формальные параметры метода запрещено изменять внутри метода с помощью присваиваний. Синтаксис обращения к операции (посылки сообщения) следующий:

	aShape moveDelta: aPoint
	Этот метод можно реализовать следующим образом:
	class name Shape
	instance variables
	  x  y
	instance methods
	moveDelta: aPoint
	  x <- x + aPoint x
	  y <- y + aPoint y

Внутри метода разрешен непосредственный доступ по имени к атрибутам целевого объекта операции (в языке Smalltalk атрибуты называются переменными объекта (instance variables)).

Как уже упоминалось, в языке Smalltalk предопределена псевдо-переменная self, именующая целевой объект (получатель сообщения).

Назад | Содержание | Вперед