Ada_Ru форум

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

туториал на ada-ru

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

Сообщения

Alexandre Makeev
туториал на ada-ru
2003-02-12 19:08:20

Aloha, forever people

 

Посмотрел я этот lovelace tutorial на ada-ru. ИМХО сакс. Если даже не учитывать исключительно мое идеологические и эстетические предпочтения, то все равно сакс. А потому, что "программа на Фортране может быть написана налюбом языке", вот именно там Ада и выглядит таким синтаксически улучшеным фортраном. Просто пересказываются

широко известные вещи на новом синтаксисе и все. Это все равно что если в языке используются фигурные скобки {} и предложения завершаются точкой с запятой, а декларации находятся где угодно и тип до имен, то язык ни что иное как несколько "улучшенный" C.

 

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

 

Система типов в Аде очень продвинутая и над скалярами очень долго думали, что получилось очень даже замечательно. Особенно вместе с идеями типов / подтипов и перегрузки. Только вот как такие богатые возможности правильно использоваться так и не понятно. Ну да, я знаю C, так там про скаляры вообще почти никто ничего долго не думал, а результатом вполне можно пользоваться. И на Аде применяются, как оказывается, только Integer / Natural / Positive и реже Unsigned_8 / Unsigned_32. И чем такое лучше C? Да и вообще, если возможности не используются, так их оказывается как бы и нету.

 

Когда-то давным давно, когда еще можно было делать код лучше

компилятора и на ассемблере писали вполне себе прикладные программы вышла книжка афайк "Структурное программирование", вот там была статья Хоара, не помню, но что-то про создание простых расписаний. Язык был Паскаль и в программе были использованы практически все типы и

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

 

Что-нибудь подобное для Ады есть?

 

 

--

Best regards,

Alexandre mailto:sonni@...

 

p.s. зря вы досюда дочитали

Есть небольшая рекомендация: не торопить события. Всего уроков (как я помню) более двух десятков.

 

И описывать возможность нужно потихоньку, что бы не было эффекта типа недавно заданного мне вопроса:

 

"А это тот язык, в котором переменные можно присваивать только если они описаны в одной строке?"

 

Какой то _умный_ человек неподготовленному разуму предложил пример:

 

A, B : array (1 .. 10) of Integer;

C : array (1 .. 10) of Integer;

 

Тут A := B - можно, а вот C := A - незя. Попробуйте, расскажите в двух словах, почему. И то, что во многих языках это вообще незя уже роли не играет, ибо разум заблокирован, ори не ори - тебя не услышат!

 

 

Когда-то давным давно, когда еще можно было делать код лучше

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

вышла книжка афайк "Структурное программирование", вот там была статья

Хоара, не помню, но что-то про создание простых расписаний. Язык был

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

использованы вполне себе подходящим способом. Вот только после ее

прочтения до меня и стало доходить как же все эти штуки правильно и

удобно использовать. Действительно.

 

Что-нибудь подобное для Ады есть?

 

Я не знаю, но _специальный_ курс на эту тему очень даже пригодился-бы. Опять-таки читать его неподготовленному человеку бесполезно - зачем мне определять отдельный тип для килограммов и отдельный для метров - ведь есть Float и хватит!

 

PS. Желающие могут ознакомиться с AI-302 - физические единицы измерения. Там много интересного можно почерпнуть на тему типизации.

А за кодировкой кто следить будет???

 

Но это - мелочи. А вот это - не мелочи:

 

Есть небольшая рекомендация: не торопить события. Всего уроков (как я помню) более двух десятков.

 

И описывать возможность нужно потихоньку, что бы не было эффекта типа недавно заданного мне вопроса:

 

"А это тот язык, в котором переменные можно присваивать только если они описаны в одной строке?"

 

Какой то _умный_ человек неподготовленному разуму предложил пример:

 

A, B : array (1 .. 10) of Integer;

C : array (1 .. 10) of Integer;

 

Тут A := B - можно, а вот C := A - незя. Попробуйте, расскажите в двух словах, почему. И то, что во многих языках это вообще незя уже роли не играет, ибо разум заблокирован, ори не ори - тебя не услышат!

 

 

Получи, фашист, гранату!

 

E:\customers\269\2003\C210-014\small_test>gcc -c -gnatl test.adb

 

GNAT 5.01w (20030203) Copyright 1992-2002 Free Software Foundation, Inc.

Compiling: test.adb (source file time stamp: 2003-02-12 20:17:22)

1. procedure Test is

2. A, B : array (1 .. 10) of Integer := (others =>1);

3. begin

4. A := B;

|

>>> expected type of A declared at line 2

>>> found type of B declared at line 2

 

5. end;

 

5 lines: 2 errors

 

E:\customers\269\2003\C210-014\small_test>

 

 

Это у нас в свое время на экзамене вопросом на "пять" было!

 

Получи, фашист, гранату!

 

Сами понимаете, пословица и поговорка, а вовсе не наглый наезд на уважаемого коллегу :)

Sergey I. Rybin wrote:

А за кодировкой кто следить будет???

 

Да вроде Mozilla следит. Сейчас KOI8-R. Или другая нужна?

 

 

"А это тот язык, в котором переменные можно присваивать только если они описаны в одной строке?"

 

 

Какой то _умный_ человек неподготовленному разуму предложил пример:

 

 

A, B : array (1 .. 10) of Integer;

C : array (1 .. 10) of Integer;

 

 

Тут A := B - можно, а вот C := A - незя. Попробуйте, расскажите в двух словах, почему. И то, что во многих языках это вообще незя уже роли не играет, ибо разум заблокирован, ори не ори - тебя не услышат!

 

 

 

Получи, фашист, гранату!

 

Рвануло не кисло. Спасибо. :) Срочно требуется реанимация: С чем это я мог перепутать? Может это в Ada83 зя было? Ну точно в одной из книг я этот бред читал.

А за кодировкой кто следить будет???

 

Да вроде Mozilla следит. Сейчас KOI8-R. Или другая нужна?

 

За моей Мозилой - глаз да глаз нужен! Очень любит молчком

на Western перейти. (А предыдущее письмо мне вот в Штирлиц

грузить пришлось)

 

 

Получи, фашист, гранату!

 

Рвануло не кисло. Спасибо. :) Срочно требуется реанимация: С чем это я мог перепутать? Может это в Ada83 зя было? Ну точно в одной из книг я этот бред читал.

 

Запросто могло быть бредом конкретной книги. Тут ведь дело такое:

1. A, B : array (1 .. 10) of Integer;

 

эквивалентно

A : array (1 .. 10) of Integer;

B : array (1 .. 10) of Integer;

 

2. Конструкция

 

A : array (1 .. 10) of Integer;

 

одновременно определяет объект и АНОНИМНЫЙ тип-массив.

 

3. Адская эквивалентности типов есть еквивалентность ОПРЕДЕЛЕНИЙ типов в смысле их вхождения в текст программы.

 

Так что разница типов A и B просто неизбежно вытекает из п.1

 

Если я правильно помню, в Аде83 сначала на это не обратили

внимания, а потом спохватились и в комментариях разъяснили-таки.

hi,

"Sergey I. Rybin" wrote:

А за кодировкой кто следить будет???

>

Да вроде Mozilla следит. Сейчас KOI8-R. Или другая нужна?

насколько помню по RFC-шным соглашениям для почты

именно KOI-8R/U - _стандарт_, а вот CP1251 хоть и

применяется/поддерживается (не везде) - приблуда

2. Конструкция

>

A : array (1 .. 10) of Integer;

>

одновременно определяет объект и АНОНИМНЫЙ тип-массив.

именно !!!

3. Адская эквивалентности типов есть еквивалентность ОПРЕДЕЛЕНИЙ типов в смысле их вхождения в текст программы.

угу...

в толстых и умных книжках такую эквивалентность называют "именная" то бишь равенство размеров объектов, как в других языках,

тут значения не имеет

Так что разница типов A и B просто неизбежно вытекает из п.1

>

Если я правильно помню, в Аде83 сначала на это не обратили

внимания, а потом спохватились и в комментариях разъяснили-таки.

imho, оно так и задумывалось, ибо это есть надежность

Alex

Здравствуйте,

 

Спасибо за Вашу критику.

Во-первых, загляните на http://www.adahome.com/Tutorials/Lovelace/master.htm и посмотрите на _полное_ содержание уроков. На мой взгляд, охват

возможностей

Ada в туториале достаточно широк, хотя, конечно же не полон. Да и где Вы видели учебник

по Ada, который бы в достаточной степени описывал _все_ возможности языка. Я такого не знаю. Если необходимо полное описание, то для этих целей существует RM.

Во-вторых, по словам самого автора, lovelace является книгой для

_начинающих_

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

в котором во вполне доступной форме объясняются базовые концепции языка, хотя

конечно, в некоторых местах одно и то же повторяется слишком часто. Ничего не поделаешь -

таков американский стиль изложения.

Я знаю одну книжку на русском языке, посвященную Ada 95. Не смотря на то, что

книга весьма поучительная во многих отношениях, научиться языку по ней _очень сложно_.

Что же касается lovelace, то по горазо менее "причесанной" версии перевода первых 12 уроков успешно учатся писать на Ada студенты моей родимой кафедры. В третьих, прошу не забывать, что я - всего лишь переводчик учебника, и, как переводчик, не могу

отвечать за содержание уроков. Все идеологические баги целиком на совести автора ;)))

Ну и наконец, урок 18 Lovelace представляет собой достаточно объемный пример с

подробнейшими коментариями. Может быть это то, что Вы ищите?

 

--

С уважением,

Юрий Королев

 

----- Original Message -----

From: "Alexandre Makeev" <sonni@...>

To: <ada_ru@yahoogroups.com>

Sent: Wednesday, February 12, 2003 9:08 PM

Subject: [ada_ru] туториал на ada-ru

hi,

Yury Korolyov wrote:

Здравствуйте,

>

Я знаю одну книжку на русском языке, посвященную Ada 95.

а что это за книжка? (похоже, что я что-то пропустил :( )

Alex

Здравствуйте,

 

----- Original Message -----

From: "Oleksandr Havva" <alex@...>

To: <ada_ru@yahoogroups.com>

Sent: Thursday, February 13, 2003 9:52 AM

Subject: Re: [ada_ru] туториал на ada-ru

 

 

 

Я знаю одну книжку на русском языке, посвященную Ada 95.

 

а что это за книжка? (похоже, что я что-то пропустил :( )

Корочкин А.В. Ада 95. Введение в программирование

 

--

С уважением,

Юрий Королев

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

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