Ada_Ru форум

Обсуждение языка Ада

Quick_ADA V 0.1 (обновлено)

Оставить новое сообщение

Сообщения

Oleksandr Havva
Quick_ADA V 0.1 (обновлено)
2002-06-27 18:28:03

Новая версия (обозвал как V 0.1),

с учетом тучи замечаний...

изменения:

1) по структуре творения:

параграфы под названием "Обзор" почти везде убраны

есть идея разделить на две части

часть 1 главы 1-16

часть 2 с главы 17... сочинять надо будет

2) NEW!!! дописан параграф 5.1 по оператору блока

3) по замечательствам:

- ляпа с ISO 1984 поправлена (не моя, списал у автора :)))

- поправлен раздел 4.6 (был 4.7) о совпадающих перечислимых литералах

- " Порожденный тип как перевод "derived type"... "

переписал везде "порожденный тип" в "производный тип"

и "порождение типа" в "произведение/производство типа"

при этом оставил "переменные/исключения порождаются"

больно пинать не будете?

- раздел 4.7 (был 4.8)

'and then' 'or else' на "and then" "or else"

И далее везде следуем этому правилу

- раздел 4.13 (был 4.14) для float, fixed убрал pos

pred, succ (Ada95) оставил. правильно?

- раздел 5.6 (был 5.7) "цикл for"

- раздел 5.8 (был 5.9) "Именованные (или помеченные) циклы"

именованные - оставил

помеченные - убрал

- раздел 6.7 (был 6.8) "Типы неограниченных массивов(unconstrained array)"

оставил как есть, ибо, imho, "регулярный тип" и "комбинированный тип" -

шибко завУмно, и

" "Тип запись" и "тип массива" - оно, конечно, ближе к технической сути... "

(C)С.И.Рыбин

- "Гнусная придирка из области русского словоупотребления: не

"присвоение"

( это из области морали и юриспруденции ), а "присваивание" ( это из вычислительной техники )." (С)Cyril Sazonov

исправлено

PS

в оригинале тоже полно ляп :(

 

 

PS

в оригинале тоже полно ляп :(

 

Так они ж тоже люди!

 

Жаль, меня не хватило на всю первую версию. Как всегда - то понос, то золотуха...

 

Кстати, если автор не будет возражать: я вот вознамерился адский сапецкурс в МГУ сделать постоянным. Можно ли будет распространять данный перевод среди слушателей? И если можно - на каких условиях?

 

При ответе призываю отбросить ненужные тут абсолютно щедрость и благородство - студент нынче пошел шустрый и коммерчески-ориентированный. Так что надо вперед всего СВОИ права защитить!

А может отдать это дело в типографию.

 

А Сергей своим студентам порекомендует приобретать.

А часть доходов от продажи автору.

 

Нужны ли для этого какие-нибудь вложения,

и какие,

кто нибудь знает ?

 

PS

в оригинале тоже полно ляп :(

 

Так они ж тоже люди!

 

Жаль, меня не хватило на всю первую версию. Как всегда - то понос, то золотуха...

 

Кстати, если автор не будет возражать: я вот вознамерился адский сапецкурс

в

МГУ сделать постоянным. Можно ли будет распространять данный перевод среди слушателей? И если можно - на каких условиях?

 

При ответе призываю отбросить ненужные тут абсолютно щедрость и

благородство -

"Sergey I. Rybin" wrote:

 

 

PS

в оригинале тоже полно ляп :(

 

Так они ж тоже люди!

 

дык я не спорю :)

просто при "первом проходе" все аглицкие ляпы один-в-один

переносятся, и получается: чужие_ляпы + свои_ляпы

 

Жаль, меня не хватило на всю первую версию. Как всегда - то понос, то золотуха...

 

а че жаль-то?

че сказали, я подправил, остальной текст не изменился (пока)

список коррекций есть.

просто, imho, мне легче вносить изменения по-немногу, а не засесть за тотальную правку на месяц, а то и больше

 

кстати, предложения по добавлению дополнительных объяснений/описаний весьма приветствуются, а то мне одному скакать по N аглицких бук

не так просто, тем более, что практика программирования в Аде

у меня не такая уж и богатая как у некоторых (пальцем показывать не буду :))

Кстати, если автор не будет возражать: я вот вознамерился адский сапецкурс в МГУ сделать постоянным.

 

помнится, Сергей, ты мне ужо об этом говаривал...

забыл что-ли? :)

 

Можно ли будет распространять данный перевод

среди слушателей?

 

imho, даже нужно, тока из этого творенья надо "полную икибану" сотворить сначала...

пока, это только поделка

 

И если можно - на каких условиях?

 

а о каких условиях речь?

чес.слово я как-то даже не задумывался и че сказать не знаю :(

 

При ответе призываю отбросить ненужные тут абсолютно щедрость и благородство - студент нынче пошел шустрый и коммерчески-ориентированный. Так что надо вперед всего СВОИ права защитить!

 

видать чего-й-то я в энтой жизни точно перестал понимать :(

от кого, сидя во Львове, я должен защищать свои права?

Hello!

 

On Fri, 28 Jun 2002, Havva Oleksandr wrote:

 

Жаль, меня не хватило на всю первую версию. Как всегда - то понос, то золотуха...

 

а че жаль-то?

 

Я, кстати, тоже не успел еще все прочитать...

 

Можно ли будет распространять данный перевод

среди слушателей?

 

imho, даже нужно, тока из этого творенья надо "полную икибану" сотворить сначала...

пока, это только поделка

 

Я бы хотел включить это в Ru.Ada.Community CD ROM. Можно?

 

И если можно - на каких условиях?

 

а о каких условиях речь?

чес.слово я как-то даже не задумывался и че сказать не знаю :(

 

При ответе призываю отбросить ненужные тут абсолютно щедрость и благородство - студент нынче пошел шустрый и коммерчески-ориентированный. Так что надо вперед всего СВОИ права защитить!

 

видать чего-й-то я в энтой жизни точно перестал понимать :(

от кого, сидя во Львове, я должен защищать свои права?

 

Copyright, со всеми вытекающими.

 

Sincerely yours Cyril Sazonov

Cyril Sazonov wrote:

 

Hello!

 

On Fri, 28 Jun 2002, Havva Oleksandr wrote:

 

Жаль, меня не хватило на всю первую версию. Как всегда - то понос, то золотуха...

 

а че жаль-то?

 

Я, кстати, тоже не успел еще все прочитать...

 

Можно ли будет распространять данный перевод

среди слушателей?

 

imho, даже нужно, тока из этого творенья надо "полную икибану" сотворить сначала...

пока, это только поделка

 

Я бы хотел включить это в Ru.Ada.Community CD ROM. Можно?

 

можно, тока давайте сначала это дело допинаем до более

содержательного состояния, ладно???

 

по сути, есть только описание синтаксиса

(не уверен, что достаточное по полноте)

 

с терминологией тоже пока есть грабли...

пример? пжалста:

X : aliased Integer;

как такое _правильно_ называть???

дык... пык... и паламались :(

 

"как всеми этими адскими делами пользоваться?" - описано

весьма скудно, а отличий от других языков программирования

предостаточно...

вообще, идея в том, чтобы собрать в кучу информацию из разных

аглицких книжек, "причесать" ее, и сделать краткой, ясной и понятной.

"по толстости" моему творенью до таких дядек как:

M.B.Feldman & E.B.Koffnan "Ada 95 Problem solving and program design"; M.A.Smith "Object-oriented software in Ada 95";

J.English "Ada 95: The craft of object-oriented programming" ешо "пилить и пилить"...

("Rationale..." к приведенному списку тоже можно добавить)

 

"Quick ADA" в оригинале - это, скорее всего, _набросок_ лекций,

(еще и с тучей багов... даже в английском)

ибо автор, D.Stanbrough, тоже какой-то профЭссор...

 

или такие планЫ слишком Наполеоновские?

(вообще-то, я на все эти "упражнения" только 2 недели потратил)

 

imho, месяца два с этими делами еще повозиться - "самое оно"

и получится (как раз к осени)

 

И если можно - на каких условиях?

 

а о каких условиях речь?

чес.слово я как-то даже не задумывался и че сказать не знаю :(

 

При ответе призываю отбросить ненужные тут абсолютно щедрость и благородство - студент нынче пошел шустрый и коммерчески-ориентированный. Так что надо вперед всего СВОИ права защитить!

 

видать чего-й-то я в энтой жизни точно перестал понимать :(

от кого, сидя во Львове, я должен защищать свои права?

 

Copyright, со всеми вытекающими.

 

э-э-э... млин... ассоциации... тут стока всяких разных "защитников прав" развелось, что я вообще не об этом подумал...

 

imho, в том виде в котором оно сейчас есть оно закрыто Copyright автора первоисточника:

-----------------------------------------------------------------------------------------------

 

Copyright Dale Stanbrough

They may be used freely, but they must not be resold, either in part or in whole,

without permisssion.

-----------------------------------------------------------------------------------------------

 

или я опять чего-то не понимаю?

 

кстати, просветите: на каком заборе мне этот свой Copyright накарябать, шоб он какое-нить действо возымел, я вполне серьезно(!)

а то в нашем колхозе на все эти Copyright .......

 

Alex

 

PS

а образы адских сидюков по тырнету хапнуть как-нить можно,

а то Питер ---> Львов = ( 2 таможни ) + ( 2 валюты ),

в общем одни минингиты :(

 

 

Dmitriy Anisimkov wrote:

 

А может отдать это дело в типографию.

 

Рано. Текст сырой. Тут же, как с программированием - написание

первой версии кода - 10% усилий, доведение до состояния продукта - остальные 90%

А Сергей своим студентам порекомендует приобретать.

А часть доходов от продажи автору.

 

Этого хорошо если на бутылку хватит :(

Нужны ли для этого какие-нибудь вложения,

и какие,

кто нибудь знает ?

 

Я бы поптался узнать - на каких условиях издательства заключают

договоры на издание книг. О, мой бывший шеф на пару с моим бывшим аспирантом недавно сдали перевод толстой книжки

по тестированию. А позвоню-ка я им!....

кстати, предложения по добавлению дополнительных объяснений/описаний весьма приветствуются, а то мне одному скакать по N аглицких бук не так просто, тем более, что практика программирования в Аде

у меня не такая уж и богатая как у некоторых (пальцем показывать не буду :))

 

"Вы мне это прекратите!" ((С) Профессор Выбегалло) Я ж честно жаловался, что временнЫм ресурсом не обладаю :(

 

Можно ли будет распространять данный перевод

среди слушателей?

 

imho, даже нужно, тока из этого творенья надо "полную икибану" сотворить сначала...

пока, это только поделка

 

В том-то и дело, что студентам "полную икибану" - вовсе не обязательно! Обойдутся, а то и полезную реакцию в виде ругани породят.

И если можно - на каких условиях?

 

а о каких условиях речь?

чес.слово я как-то даже не задумывался и че сказать не знаю :(

 

При ответе призываю отбросить ненужные тут абсолютно щедрость и благородство - студент нынче пошел шустрый и коммерчески-ориентированный. Так что надо вперед всего СВОИ права защитить!

 

видать чего-й-то я в энтой жизни точно перестал понимать :(

от кого, сидя во Львове, я должен защищать свои права?

 

На это народ уже отозвался. Я лишь добавлю: была сделана работа. И надо застолбить за собой права на результат. Чтоб никто другой от себя не пытался публиковать/распространять. Как это грамотно сделать - не знаю. Минимум - поставить в преамбулу свой копирайт, и если выкладывать в сеть -

то с такой приамбулой.

Hello!

 

On Fri, 28 Jun 2002, Havva Oleksandr wrote:

 

Можно ли будет распространять данный перевод

среди слушателей?

 

imho, даже нужно, тока из этого творенья надо "полную икибану" сотворить сначала...

пока, это только поделка

 

Я бы хотел включить это в Ru.Ada.Community CD ROM. Можно?

 

можно, тока давайте сначала это дело допинаем до более

содержательного состояния, ладно???

 

Естественно!

 

с терминологией тоже пока есть грабли...

пример? пжалста:

X : aliased Integer;

как такое _правильно_ называть???

дык... пык... и паламались :(

 

А мы чем здесь занимаемcя? !)

 

"как всеми этими адскими делами пользоваться?" - описано

весьма скудно, а отличий от других языков программирования

предостаточно...

вообще, идея в том, чтобы собрать в кучу информацию из разных

аглицких книжек, "причесать" ее, и сделать краткой, ясной и понятной.

"по толстости" моему творенью до таких дядек как:

M.B.Feldman & E.B.Koffnan "Ada 95 Problem solving and program design"; M.A.Smith "Object-oriented software in Ada 95";

J.English "Ada 95: The craft of object-oriented programming"

ешо "пилить и пилить"...

("Rationale..." к приведенному списку тоже можно добавить)

 

"Quick ADA" в оригинале - это, скорее всего, _набросок_ лекций,

(еще и с тучей багов... даже в английском)

ибо автор, D.Stanbrough, тоже какой-то профЭссор...

 

Есть такой приём -- примечание переводчика. !) И это лишний повод им воспользоваться. Можно практически целую книгу написать в виде примечаний к основному тексту.

 

или такие планЫ слишком Наполеоновские?

(вообще-то, я на все эти "упражнения" только 2 недели потратил)

 

imho, месяца два с этими делами еще повозиться - "самое оно"

и получится (как раз к осени)

 

 

Copyright, со всеми вытекающими.

 

э-э-э... млин... ассоциации... тут стока всяких разных "защитников прав" развелось, что я вообще не об этом подумал...

 

В принципе авторское право ( и Copyright ) возникают сами собой при возникновении объекта авторского права. Поставив Copyright, ты как бы официально подтверждаешь свои права и, тем самым, подтверждаешь способность защищать их в судебном порядке. Но никто кроме тебя не берёт на себя труд проверять нарушение твоих прав.

 

Это очень грубое и приблизительное описание ситуации. Подробнее надо трясти людей, которые с этим работают ( юристов ) и этим пользуются ( писателей, например ).

 

 

imho, в том виде в котором оно сейчас есть оно закрыто Copyright автора первоисточника:

-----------------------------------------------------------------------------------------------

 

Copyright Dale Stanbrough

They may be used freely, but they must not be resold, either in part or in whole,

without permisssion.

-----------------------------------------------------------------------------------------------

 

Так это ж что-то вроде General Public License. Тоже вещь полезная.

 

или я опять чего-то не понимаю?

 

кстати, просветите: на каком заборе мне этот свой Copyright накарябать, шоб он какое-нить действо возымел, я вполне серьезно(!)

 

В выходных данных на этот документ, что, мол, автор (с) такой-то, перевод и комментарии (с) тако-то, условия тиражирования такие-то.

 

а то в нашем колхозе на все эти Copyright .......

 

Да во всём мире так же, можно по суду что-то вытрясти из нарушителей ( старичок Носов за Незнайку кого-то сравнительно недавно хорошо придушил !) ).

PS

а образы адских сидюков по тырнету хапнуть как-нить можно,

а то Питер ---> Львов = ( 2 таможни ) + ( 2 валюты ),

в общем одни минингиты :(

 

Всё, что есть на ASE и Ru.Ada.Community CD ROM разложено роным слоем по Ada-сайтам.

 

Насчёт Львова -- не знаю, а в какой-то гораздо менее известный населённый пункт в Литве диски дошли без заморочек. Правда обратно денежный перевод ( компенсация моих расходов ) шёл почти месяц ( аж через Москву !) ).

 

Sincerely yours Cyril Sazonov

"Sergey I. Rybin" wrote:

 

кстати, предложения по добавлению дополнительных объяснений/описаний весьма приветствуются, а то мне одному скакать по N аглицких бук не так просто, тем более, что практика программирования в Аде

у меня не такая уж и богатая как у некоторых (пальцем показывать не буду :))

 

"Вы мне это прекратите!" ((С) Профессор Выбегалло) Я ж честно жаловался, что временнЫм ресурсом не обладаю :(

 

знач "надо изыскивать унутренние резервы!" ( (С) не помню ) :)

 

imho, даже нужно, тока из этого творенья надо "полную икибану" сотворить сначала...

пока, это только поделка

 

В том-то и дело, что студентам "полную икибану" - вовсе не обязательно! Обойдутся,

 

а маленьких обижать - не хорошо!!!

 

а то и полезную реакцию в виде ругани породят.

 

а вот об этом, вы нам потом и расскажете :)

 

от кого, сидя во Львове, я должен защищать свои права?

 

На это народ уже отозвался. Я лишь добавлю: была сделана работа.

 

imho, работа пока _не_ сделана, она только делается

 

И надо

застолбить за собой права на результат. Чтоб никто другой от себя не пытался публиковать/распространять. Как это грамотно сделать - не знаю. Минимум - поставить в преамбулу свой копирайт, и если выкладывать в сеть - то с такой приамбулой.

 

в _текущем_ состоянии выкладывать это дело в сеть я как-то не планировал, поэтому, наверное, и вопросы copyright меня слегка в расплох застали - даже не понял о чем речь. сейчас весь этот материал видят только участники данного списка рассылки. imho, не сильно умно будет если кто-нить из участников вывалит недоделку в сеть на общее обозрение.

собственно говоря, поэтому я и не лепил никаких copyright, преамбул/постамбул и прочих атрибутов в то, что слал в список рассылки. думал, что тогда когда будет

чего народу показать, тогда все эти "бантики" и попривязываю.

 

Alex.

Cyril Sazonov wrote:

 

Hello!

 

On Fri, 28 Jun 2002, Havva Oleksandr wrote:

 

с терминологией тоже пока есть грабли...

пример? пжалста:

X : aliased Integer;

как такое _правильно_ называть???

дык... пык... и паламались :(

 

А мы чем здесь занимаемcя? !)

 

в данный момент мы меня пинаем/просвещаем

на тему copyright

 

Есть такой приём -- примечание переводчика. !) И это лишний повод им воспользоваться. Можно практически целую книгу написать в виде примечаний к основному тексту.

 

ну млин... это что-то из области каких-то околонаучных изысканий, когда для диссера нужна печатная работа, а своих мозгов нет...

мы таким приемам не обучены, да и нафиг такой огород городить

если проблема в том, что на русском языке по программированию

на Аде просто _ничего_ нет?

 

Это очень грубое и приблизительное описание ситуации. Подробнее надо трясти людей, которые с этим работают ( юристов ) и этим пользуются ( писателей, например ).

 

ага... "уголовный кодекс надо чтить!" ( (С) О.Бендер )

 

-----------------------------------------------------------------------------------------------

 

Copyright Dale Stanbrough

They may be used freely, but they must not be resold, either in part or in whole,

without permisssion.

-----------------------------------------------------------------------------------------------

 

Так это ж что-то вроде General Public License. Тоже вещь полезная.

 

а есть еще Open Doc License и туча всяких прочих, каждая со своими нюансами и закавырками...

вообче, я собирался над этими делами думать после того как

"икибана" будет готова...

 

В выходных данных на этот документ, что, мол, автор (с) такой-то, перевод и комментарии (с) тако-то, условия тиражирования такие-то.

 

все, в следующей редакции (V-0.2) переделок/правок, прикручу

 

Alex.

Hello!

 

Поехали дальше:

 

1. На мину "оператор/операция" ты таки ж наступил:

 

---------------------------------------------

4.7.

Следующие операторы могут быть использованы для переменных типа boolean (и производных от него типов):

and or not xor /= = "and then" "or else"

---------------------------------------------

5.1 Оператор блока

 

Оператор блока содержит последовательность операторов, перед которой может располагаться раздел описаний (все описания локальны для блока и не доступны вне блока) и за которой могут следовать обработчики исключений (обработка исключений рассматривается позже). В общем случае оператор блока имеет вид:

declare

 

-- локальные описания

 

begin

 

-- последовательность операций

 

exeption

 

-- обработчики исключений

 

end;

---------------------------------------------

 

И ещё в нескольких местах.

 

Слово оператор -- забыть как сташный сон, а того, кто впервые перевёл statement так, подвергнуть проклятию. Ж8-F

 

 

2. При описании массивов ни слова не сказано о такой удобной и специфической для Ada'ы вещи как отрезки ( aka вырезки ).

 

 

3. При описании записей с дискриминантами надо бязательно обратить внимание на то, что дискриминанту значение присваивать нельзя, а можно только всей записи ( или я это по старой памяти с Ada'83 путаю ). Хотя это логически следует из всего, что написано про записи, это должно быть проговорено.

 

type vehicle is (bicycle, car, truck, scooter);

 

type transport (vehicle_type: vehicle := car) is

record

owner : string(1..10); -- владелец

description : string(1..12); -- описание

case vehicle_type is

when car =>

petrol_consumption : float; -- расход бензина

when truck =>

diesel_consumption : float; -- расход солярки

tare : real; -- вес тары

net : real; -- вес нетто

when others => null;

end case;

end record;

 

TRANSP : TRANSPORT ;

......................................

 

TRANSP.vehicle_type := CAR ; -- недопустимо TRANSP := ( CAR , "Fantomas " , "Citroen DS19" , 6.0E0 ) ; --допустимо

 

4. При описании процедур сразу надо оговориться, что процедура-функция через список параметров только получать данные, но не может их менять, а процедура-подпрограмма может передавать данные через список параметров в обе стороны.

 

 

5. Ошибка, однако:

------------------------------------------

8.1 Процедуры

 

Процедуры языка Ада подобны процедурам в языке Паскаль. Процедура может содержать предложение возврата значения - return.

 

------------------------------------------

 

В данном случае return -- предложение _возврата из процедуры_ в отличие от _возврата значения_, применимого только в функциях.

 

6. В списке параметров инициализированные параметры могут быть опущены только в направлении от справа-налево и без дыр или должна быть использована форма вызова с явным именованием параметров:

 

procedure AIM_RECOGNITION

( AIM : out AIM_TYPE ;

SIGNATURE : in SIGNATURE_TYPE ;

SPEED : in REAL := 0.0E0 ;

ALTITUDE : in ALTITUDES := 0 ;

DISTANCE : in DISTANCES := RADAR_DIST_max ;

AZIMUTH : in ANGLES := 0 ) ;

 

AIM_RECOGNITION ( THE_AIM , SIGN , 250.0E0 , 10_000 ) ;

-- Воздушная цель на высоте 10_000 м, движущаяся со скоростью 250 м/с, -- находящаяся прямо по курсу на предельной дальности обнаружения

AIM_RECOGNITION ( THE_AIM , SIGN , DIRECTION => 30 , DIST => 12 ) ; -- Наземная неподвижная цель на расстоянии 12 км на азимуте 30 град.

 

Sincerely yours Cyril Sazonov

Cyril Sazonov wrote:

 

Hello!

 

Поехали дальше:

 

1. На мину "оператор/операция" ты таки ж наступил:

 

уж больно качественная мина, однако

 

---------------------------------------------

4.7.

Следующие операторы могут быть использованы для переменных типа

boolean (и производных от него типов):

and or not xor /= = "and then" "or else"

 

тут понятно - надо менять на "операции для переменных типа boolean"

---------------------------------------------

5.1 Оператор блока

 

Оператор блока содержит последовательность операторов, перед

 

как я понял, "последовательность операторов" надо заменить

на "последовательность операций"...

или "оператор блока" тоже смущает???

 

которой может располагаться раздел описаний (все описания локальны для блока и не доступны вне блока) и за которой могут следовать

обработчики исключений (обработка исключений рассматривается

позже). В общем случае оператор блока имеет вид:

declare

 

-- локальные описания

 

begin

 

-- последовательность операций

 

exeption

 

-- обработчики исключений

 

end;

---------------------------------------------

 

И ещё в нескольких местах.

 

Слово оператор -- забыть как сташный сон, а того, кто впервые перевёл statement так, подвергнуть проклятию. Ж8-F

 

2. При описании массивов ни слова не сказано о такой удобной и специфической для Ada'ы вещи как отрезки ( aka вырезки ).

 

допишем

 

3. При описании записей с дискриминантами надо бязательно обратить внимание на то, что дискриминанту значение присваивать нельзя, а можно только всей записи ( или я это по старой памяти с Ada'83 путаю ). Хотя это логически следует из всего, что написано про записи, это должно быть проговорено.

 

type vehicle is (bicycle, car, truck, scooter);

 

type transport (vehicle_type: vehicle := car) is

record

owner : string(1..10); -- владелец

description : string(1..12); -- описание

case vehicle_type is

when car =>

petrol_consumption : float; -- расход бензина

when truck =>

diesel_consumption : float; -- расход солярки

tare : real; -- вес тары

net : real; -- вес нетто

when others => null;

end case;

end record;

 

TRANSP : TRANSPORT ;

......................................

 

TRANSP.vehicle_type := CAR ; -- недопустимо TRANSP := ( CAR , "Fantomas " , "Citroen DS19" , 6.0E0 ) ; --допустимо

 

тут мне надо будет почитать/разобраться и расписать разъяснения

получше

 

4. При описании процедур сразу надо оговориться, что процедура-функция через список параметров только получать данные, но не может их менять, а процедура-подпрограмма может передавать данные через список параметров в обе стороны.

 

5. Ошибка, однако:

------------------------------------------

8.1 Процедуры

 

Процедуры языка Ада подобны процедурам в языке Паскаль. Процедура может содержать предложение возврата значения - return.

 

------------------------------------------

 

В данном случае return -- предложение _возврата из процедуры_ в отличие от _возврата значения_, применимого только в функциях.

 

да уж... чиста моя ашипка

 

6. В списке параметров инициализированные параметры могут быть опущены только в направлении от справа-налево и без дыр или должна быть использована форма вызова с явным именованием параметров:

 

и это поправим

 

procedure AIM_RECOGNITION

( AIM : out AIM_TYPE ;

SIGNATURE : in SIGNATURE_TYPE ;

SPEED : in REAL := 0.0E0 ;

ALTITUDE : in ALTITUDES := 0 ;

DISTANCE : in DISTANCES := RADAR_DIST_max ;

AZIMUTH : in ANGLES := 0 ) ;

 

AIM_RECOGNITION ( THE_AIM , SIGN , 250.0E0 , 10_000 ) ;

-- Воздушная цель на высоте 10_000 м, движущаяся со скоростью 250 м/с, -- находящаяся прямо по курсу на предельной дальности обнаружения

AIM_RECOGNITION ( THE_AIM , SIGN , DIRECTION => 30 , DIST => 12 ) ; -- Наземная неподвижная цель на расстоянии 12 км на азимуте 30 град.

 

уважаемый, а вы часом не радиолокационными задачками

для нужд ПВО забавляетесь, а???

("азимут/дальность, свой/чужой, экстраполяция, триангуляция"

- как мне это все знакомо! :))))

 

Sincerely yours Cyril Sazonov

 

Alex.

Hello!

 

On Sun, 30 Jun 2002, Havva Oleksandr wrote:

 

Cyril Sazonov wrote:

 

Hello!

 

Поехали дальше:

 

1. На мину "оператор/операция" ты таки ж наступил:

 

уж больно качественная мина, однако

 

---------------------------------------------

4.7.

Следующие операторы могут быть использованы для переменных типа

boolean (и производных от него типов):

and or not xor /= = "and then" "or else"

 

тут понятно - надо менять на "операции для переменных типа boolean"

---------------------------------------------

5.1 Оператор блока

 

Оператор блока содержит последовательность операторов, перед

 

как я понял, "последовательность операторов" надо заменить

на "последовательность операций"...

или "оператор блока" тоже смущает???

 

Ннет. В данном случае просто приведены два фрагмента как образцы совершенно разного по смыслу использования слова "оператор".

 

 

 

 

которой может располагаться раздел описаний (все описания локальны для блока и не доступны вне блока) и за которой могут следовать

обработчики исключений (обработка исключений рассматривается

позже). В общем случае оператор блока имеет вид:

declare

 

-- локальные описания

 

begin

 

-- последовательность операций

 

exeption

 

-- обработчики исключений

 

end;

---------------------------------------------

 

И ещё в нескольких местах.

 

Слово оператор -- забыть как сташный сон, а того, кто впервые перевёл statement так, подвергнуть проклятию. Ж8-F

 

Во многих случаях вполне приемлемо пользоваться словом "предложение" для перевода "statement", хотя иногда гораздо привычнее и благозвучнее "оператор" ( как, например, здесь -- "последовательность операторов" ).

Я же писал об этой мине...

 

AIM_RECOGNITION ( THE_AIM , SIGN , 250.0E0 , 10_000 ) ;

-- Воздушная цель на высоте 10_000 м, движущаяся со скоростью 250 м/с, -- находящаяся прямо по курсу на предельной дальности обнаружения

AIM_RECOGNITION ( THE_AIM , SIGN , DIRECTION => 30 , DIST => 12 ) ; -- Наземная неподвижная цель на расстоянии 12 км на азимуте 30 град.

 

уважаемый, а вы часом не радиолокационными задачками

для нужд ПВО забавляетесь, а???

 

В последние три месяца -- почти.

 

Летающий радиолокатор Ка-31 знаешь? Вот меня и взяли в качестве мальчика для битья за его навигационный комплекс ( Разрабатывало много народу, а вести доработки и доводить до удовлетворения заказчика должен кто-то один. Угадай, кто? ).

 

Но тянется наследие изначально кривых проектных решений -- писано это чудо на C++. Кошмар!! Ж8-( )

 

("азимут/дальность, свой/чужой, экстраполяция, триангуляция"

- как мне это все знакомо! :))))

 

Sincerely yours Cyril Sazonov

Извиняйте, братцы, совсем нет сил читать...

 

Зато поговорил, как обещал, со знакомыми профессиональными переводчиками.

Вот что они сказали:

 

- что касается защиты переводческих прав - тут при только электронной версии перевода и впрямь дело скушное. Ничего умнее преамбулы со словами, что мол это я перевел, и достаточного количества

свидетелей, готовых подтвердить, что перевод опубликован тогда-то, не придумать. Да и от этого толку чуть - любой и каждый может взять текст, заменить пяток терминов и издать от своего имени. И замучаешься с ним потом в судах воевать.

 

- можно пытаться издавать на бумаге. Я даже могу попытаться узнать в "знакомом" (правда, опосредованно) издательстве. Для этого нужны выходные данные оригинала (включая издательство у них и год издания) В случае бумажного варианта я бы поучаствовал серьезнее (не корысти ради, сами понимаете)

 

Такие вот дела,

 

С.Рыбин

hi,

 

"Sergey I. Rybin" wrote:

 

Извиняйте, братцы, совсем нет сил читать...

 

зато Сазонов все читает и замечает :)

 

Зато поговорил, как обещал, со знакомыми профессиональными переводчиками.

 

ну, мы... эта... не профессиональныя... а чиста, кульные хацкеры

тут собрались :)

 

Вот что они сказали:

 

- что касается защиты переводческих прав - тут при только электронной версии перевода и впрямь дело скушное. Ничего умнее преамбулы со словами, что мол это я перевел, и достаточного количества

свидетелей, готовых подтвердить, что перевод опубликован тогда-то, не придумать. Да и от этого толку чуть - любой и каждый может взять текст, заменить пяток терминов и издать от своего имени. И замучаешься с ним потом в судах воевать.

 

- можно пытаться издавать на бумаге. Я даже могу попытаться узнать в "знакомом" (правда, опосредованно) издательстве. Для этого нужны выходные данные оригинала (включая издательство у них и год издания) В случае бумажного варианта я бы поучаствовал серьезнее (не корысти ради, сами понимаете)

 

Такие вот дела,

 

С.Рыбин

 

ну а ежели серьезно, то почему бы не сотворить свой собственный букварь? че мы все так уцепились: "перевод-перевод!"

че, самим придумать/сочинить слабО?

ну, попользовали мы буржуйский перевод (сами сотворили, сами и

попользовали),

ну и че?

все равно, в оригинале "зап.частей" не хватает, а пользовать его

как начальную основу - самое оно...

чего/куда спешить-то?

 

Alex.

 

PS

 

ктати, а как там "Ada distilled" поживает?

Hello!

 

1. Я, наверное, консерватор но по-моему слова слова "verification", "installation", _"ellaboration"_ переводятся однозначно и одним словом. !)

2. По поводу

 

-----------------------------------------------------

14. Объектно-ориентированные свойства языка Ада

 

.................................

 

Во многих случаях типы - подобны классам.

-----------------------------------------------------

 

ехидно позволю себе пару цитат из моей любимой книжки ( С.Янг "Алгоритмические языки реального времени" ):

 

"Класс, таким образом, является более чистой реализацией абстрактного типа, чем то, чего можно добиться с помощью модуля, но он является менее общим и несколько увеличивает время работы программы." / стр. 145 /

 

"Практически модуль полностью отвечает требованиям реализации абстрактных типов данных и, разумеется, имеет по сравнению с классом много других примененний."

 

3. Об использовании tagged records.

 

Есть одна не бросающаяся в глаза тонкость: в пакете объявляется, если не ошибаюсь, _один_ тип и его примитивные операции.

 

Надо будет мне глянуть в FIDO'шой конференции, там эта вещь проскакивала не более полугода назад.

 

 

Sincerely yours Cyril Sazonov

1. Я, наверное, консерватор но по-моему слова слова "verification", "installation", _"ellaboration"_ переводятся однозначно и одним словом. !)

 

Каким? Что-й-то я проблему не понял.

2. По поводу

 

-----------------------------------------------------

14. Объектно-ориентированные свойства языка Ада

 

.................................

 

Во многих случаях типы - подобны классам.

-----------------------------------------------------

 

ехидно позволю себе пару цитат из моей любимой книжки ( С.Янг "Алгоритмические языки реального времени" ):

 

"Класс, таким образом, является более чистой реализацией абстрактного типа, чем то, чего можно добиться с помощью модуля, но он является менее общим и несколько увеличивает время работы программы." / стр. 145 /

 

"Практически модуль полностью отвечает требованиям реализации абстрактных типов данных и, разумеется, имеет по сравнению с классом много других примененний."

 

Опять не догоняю, но фраза "типы - подобны классам" у меня тоже вызывает, скажем так, опасания. Проблема в том, что Ада использует понятие "класс", но несколько не в том смысле, как это традиционно принято в ООП. В Аде есть derivation class (RM95, 3.4.1). В глоссарии понятие "класс" определяется как

Class. A class is a set of types that is closed under derivation, which means

that if a given type is in the class, then all types derived from that

type are also in the class. The set of types of a class share common properties, such as their primitive operations.

 

Так что я бы никогда тип классом ни в каком смысле не называл, напротив. я бы постарался объяснить адскую разницу между адским типом, адским классом и традиционным

(или - С++-ным) смыслом понятия класс.

3. Об использовании tagged records.

 

Есть одна не бросающаяся в глаза тонкость: в пакете объявляется, если не ошибаюсь, _один_ тип и его примитивные операции.

 

Надо будет мне глянуть в FIDO'шой конференции, там эта вещь проскакивала не более полугода назад.

 

Да нет, в пакете можно наобъявлять сколько угодно типов. Только и того, что примитивная операция не может сразу относиться к двум (и более) теговым типам.

Т.е.

 

package P

 

type T1 is tagged record ... end record;

type T2 is tagged record ... end record;

 

-- это пожалуйста, а вот

 

procedure Proc (X : T1; Y : T2);

 

-- это нельзя

 

end P;

hi,

"Sergey I. Rybin" wrote:

2. По поводу

>

-----------------------------------------------------

14. Объектно-ориентированные свойства языка Ада

>

.................................

>

Во многих случаях типы - подобны классам.

-----------------------------------------------------

>

ехидно позволю себе пару цитат из моей любимой книжки ( С.Янг "Алгоритмические

языки реального времени" ):

>

"Класс, таким образом, является более чистой реализацией абстрактного типа, чем то, чего можно добиться с помощью модуля, но он является менее общим и несколько увеличивает время работы программы." / стр. 145 /

>

"Практически модуль полностью отвечает требованиям реализации абстрактных типов данных и, разумеется, имеет по сравнению с классом много других примененний."

>

Опять не догоняю, но фраза "типы - подобны классам" у меня тоже вызывает, скажем так, опасания. Проблема в том, что Ада использует понятие "класс", но несколько не в том смысле, как это традиционно принято в ООП. В Аде есть derivation class (RM95, 3.4.1). В глоссарии понятие "класс" определяется как >

Class. A class is a set of types that is closed under derivation, which means

that if a given type is in the class, then all types derived from that type are also in the class. The set of types of a class share common properties, such as their primitive operations.

>

Так что я бы никогда тип классом ни в каком смысле не называл, напротив. я бы постарался объяснить адскую разницу между адским типом, адским классом и традиционным

(или - С++-ным) смыслом понятия класс.

>

imho, адская концепция типа, как таковая, уж очень далеко

убежала вперед от всех остальных. с Си-образием тут ва-аще

нечего сравнивать. но Ада и от Паскаля ушла вперед.

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

по отношению к C++ и/или Object Pascal.

imho, конечно :)

Рассмотрим две вещи в ООП:

- инкапсуляция

- полиморфизм

Инкапсуляция (связь данных с методами)

в Аде достигается на уровне типа, и это свойственно

_уже_ в Ada-83(!).

Ни С/С++, ни Паскаль к концепции типа, как таковой, так не подходят. Посему, в С++ и Паскале, инкапсуляция - составная часть ООП.

Едем дальше - полиморфизм.

В С++ и Паскале решается за счет механизма виртуальных методов,

в Аде - тэговые типы (Ada-95).

Если посмотреть на это "под микроскопом", то,

для С++ и Объектного Паскаля, виртуальность обеспечивается

наличием в структуре объекта таблицы виртуальных методов,

которая обеспечивает возможность косвенного вызова

подпрограмм-методов конкретного класса/объекта.

Другими словами - при оформлении/генерации бинарного кода,

обращение к виртуальному методу формируется как косвенный

вызов подпрограммы по _постоянному_ смещению

в таблице виртуальных методов. Разные объекты/экземпляры

будут по _фиксированному_ смещению в таблице виртуальных

методов иметь _разные_ указатели на _разные_ подпрограммы-методы. Для Ады ("под микроскопом" :)), тэговый тип внутри себя таскает

табличку "dispatch table", которая необходима для формирования

_косвенного_ вызова подпрограмм-методов по _фиксированному_

смещению в этой "dispatch table".

По сути, "dispatch table" - то же самое, что и таблица виртуальных методов, работает все абсолютно одинаково, а называется по-разному.

Вообще, все разночтения/разноназвания больше относятся

к философии/концепции понятия типа в языкотворчестве.

Хотя, в результате, все это сбивает с толку

Alex.

 

imho, адская концепция типа, как таковая, уж очень далеко

убежала вперед от всех остальных. с Си-образием тут ва-аще

нечего сравнивать. но Ада и от Паскаля ушла вперед.

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

по отношению к C++ и/или Object Pascal.

 

Я бы не стал _расхваливать_ реализацию принципов ООП в Аде.

Все-таки многим класс (как способ подать "в одном флаконе" все,

что предполагается наследовать - и данные, и операции) нравится

больше, чем Адская "размазанность" этого по типу и определяющему

пакету. Отсутствие в Аде синтексической конструкции для типа, понимаемого как "данные + ОПЕРАЦИИ", по-моему, не есть достоинство. Концепция типа - да, круче всех. Но вот выразительные средства ООП - специфические, и причина той специфики - в той самой концепции типа. Точнее, в том, что не захотели городить новый синтаксис и попытались обойтись связкой "тип + пакет". В результате набор "методов" в Аде определяется не столько синтаксически, сколько семантически: операция должна

быть лпределена в правильном месте с правильными параметрами.

В С++ в этом смысле проще - раз внутри синтаксической конструкции "класс" - значит, наследуемый метод.

 

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

hi,

"Sergey I. Rybin" wrote:

imho, адская концепция типа, как таковая, уж очень далеко

убежала вперед от всех остальных. с Си-образием тут ва-аще

нечего сравнивать. но Ада и от Паскаля ушла вперед.

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

по отношению к C++ и/или Object Pascal.

>

Я бы не стал _расхваливать_ реализацию принципов ООП в Аде.

Меня явно не так пойняли :(

Я ничего не расхваливал. Просто порассуждал на тему ООП,

различий/похожестей и откуда у этих различий/похожестей "ноги" растут.

Все-таки многим класс (как способ подать "в одном флаконе" все, что предполагается наследовать - и данные, и операции) нравится больше, чем Адская "размазанность" этого по типу и определяющему пакету. Отсутствие в Аде синтексической конструкции для типа, понимаемого как "данные + ОПЕРАЦИИ", по-моему, не есть достоинство. Концепция типа - да, круче всех. Но вот выразительные средства ООП - специфические, и причина той специфики - в той самой концепции типа. Точнее, в том, что не захотели городить новый синтаксис и попытались обойтись связкой "тип + пакет". В результате набор "методов" в Аде определяется не столько синтаксически, сколько семантически: операция должна

быть лпределена в правильном месте с правильными параметрами.

В С++ в этом смысле проще - раз внутри синтаксической конструкции "класс" - значит, наследуемый метод.

>

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

Синтаксическая реализация ООП в Аде - весьма отлична... от других, и, imho, это не есть гуд, поскольку честных людей с толку сбивает. (хотели чтоб я поругался? получите :))) )

Причины такой реализации - другой вопрос, но думаю что их там есть. "Можно-ли такой синтаксической реализацией "воевать"?", наверное, да, но только опосля некоторого изнасилования своих концептуальных

стереотипов.

Что касается low-level бинарной реализации, то она _везде_ (С++, Паскаль, Ада)

одна и та же - таблица косвенного вызова подпрограмм (в терминах ассемблера), и по барабану как эта таблица в "hight level language" обзывается "dispatch table" или "virtual method table",

"химический" смысл этой таблицы один и тот же, и работает оно

абсолютно одинаково.

Новое сообщение:
Страницы: 1 2 3 4

Чтобы оставить новое сообщение необходимо Зарегистрироваться и Войти