возврат из подпрограмм

Jun 04, 2006 Last reply: 19 years ago 3173 Replies

Как говорил широко известный в узких кругах деятель: я мог бы выпить всю грязь Ганга, но на это нужна больше чем одна человечская жизнь. Так вот и я, мог бы, наверное, переписать всё на ассемблере, но у меня только одна жизнь и дурную работу лучше оставлю компилятору.

Здравствуй, Alexander Zabairatsky! июня месяца девятнадцатого дня ты писал(а):

[...]

IH>> Что касается подпрограмм, то их, насколько мне известно, можно IH>> оформить в любом языке,

AZ> Внешние, с отдельным пространством имен локальных переменных и AZ> передачей данных через механизм формальных/фактических параметров - да, AZ> практически в любом, включая и асм. А вот внутренние, когда несколько AZ> строк программы вызываешь из нескольких мест, в общем контексте и общем AZ> пространстве памяти переменных, регистров и т.п., из распространенных AZ> языков, кроме асма, доступны только на Бейсике (GOSUB).

Я имел в виду подпрограмму в самом общем смысле - кусок кода, который можно вызывать из разных мест, а уже конкретная реализация (локальная/внешняя, способ передачи параметров и т.д.) и, соответственно, удобство пользования конечно же зависит от языка.

[...]

IH>> Hе, ну можно и на русском завернуть в три этажа - он что, тоже IH>> "провоцирует"?

AZ> Hенормативную лексику? Hесомненно. "Русский человек матом не ругается. AZ> Он им разговаривает!" (Кто помнит автора?)

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

С уважением, Игорь Хавторин (ака Gary). E-mail: fido_gary собака gfm точка ru

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Kirill Frolov! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Tue, 20 Jun

2006 07:39:01 +0000 (UTC):

DT>>>> Эт' почему? В Аде примерно так же. MZ>>> Серьезные вещи как правило не пишутся в одиночку. >> Нет никаких проблем с этим в ТР. Подверждение тому - куча готовых >> кем-то написанных библиотек.

KF> Эта куча в любом случае меньше и хуже общей кучи. А взять и

Конечно меньше. Но в свое время и в своем месте оказалась большей.

KF> подцепить что-то из общей кучи -- велика проблема. Для языков

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

MZ>>> При этом под каждую версию паскаля надо иметь либо исходники и MZ>>> строить либы самому либо иметь кучу либов. Потом есть у тебя некий >> Это недостаток реализации, а не концепции. Впрочем к сторонним либам >> без исходников у меня изначально настороженное отношение.

KF> Они бывают разные. Вот libc твоего C-компилятора -- она с KF> исходниками?

Конечно.

KF> А бывает, что и без. А никак её не выкинешь.

Ну на счет никак - это преувеличение, но может быть не просто.

KF> Удивительно, что никто не додумался до реализации такой KF> элементарной вещи, как вставка include в исходник прямо в редакторе.

А точнее, всего препроцессора в реальном времени. Благо он в С довольно примитивный.

dima

formatting link

,-' Hello, Alexander Zabairatsky! How is your connection today?

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

А в чем принципиальная разница между игрушкой и рабочим языком? Более короткие слова?

`-._ --- Alexander Kocharin ---

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Alex Kocharin! You wrote in conference fido7.ru.embedded to Alexander Zabairatsky on Tue, 20 Jun

2006 14:28:50 +0400:

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

AK> А в чем принципиальная разница между игрушкой и рабочим AK> языком? Более короткие слова?

Наличие возможностей более полно и эффективно использовать аппаратуру. Адресная арифметика, гибкая работа с указателями etc. С другой стороны - большая универсальность благодаря тому, что в язык не втянуты системозависимые ввод-вывод, управление динамической памятью.

dima

formatting link

Hello, Pasha! You wrote to George Shepelev on Tue, 20 Jun 2006 10:31:52 +0400:

PP> Здравствуй, George!

PP> Как то 19 Jun 06 в 10:23, George Shepelev писал Jurgis Armanavichius:

GS>> Делюсь опытом дальше, в необслуживаемых системах я вставлял код, GS>> периодически восстанавливающий значение большинства регистров GS>> конфигурации. PP> А поподробнее, плиз! PP> Что за контроллер и сколько времени длится 'период необслуживаемости'? PP> :) А почему это стало необходимо - начинало глюкавить?

У Жоры все время что-то глючит, вот он в свое время и предложил делать периодическиую рененерацию регистров.

Этот бред уже тут обсуждался.

PP> Я сейчас именно над таким вопросом думаю.

Если именно о регенераци регистров - о напрасно.

With best regards, Alexandr Torres. E-mail: snipped-for-privacy@yahoo.com [Бомжей любить - не эхи модерить!]

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

Tue Jun 20 2006 11:26, Dmitry Orlov wrote to Olga Nonova:

DO> Ваша задача - флейм.

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

Всего Вам Хорошего Ольга

Привет Alex!

20 Июн 06 года (а было тогда 15:28) Alex Kocharin в своем письме к Alexander Zabairatsky писал:

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

AK> А в чем принципиальная разница между игрушкой и рабочим языком?

Рабочий язык (как сказал Ален И. Голуб) имеет "Веревку достаточной длины, чтобы выстрелить себе в ногу". :-)

А в игрушке шаг в право, шаг влево - расстрел на месте.

С уважением, Andrey 20 Июн 06 года

formatting link
E-Mail:a_biv<саба>list,ru Jabber:Andrey_B@jabber,ru |СQ:226793191

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Olga Nonova! You wrote in conference fido7.ru.embedded to Dmitry Orlov on Tue, 20 Jun

2006 12:07:09 +0000 (UTC):

DO>> Ваша задача - флейм.

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

Гришин :)

dima

formatting link

,-' Hello, Olga Nonova! How is your connection today?

ON> полиморфизмы и прочие штучки-дрючки обьектного программирования. А ON> когда с ON> С++ ты это не используешь, он становится обычным С без плюсов. И это очень ON> частый случай для мультизадачных систем реального времени.

И что, g++ может компилить сишный код? :-)

`-._ --- Alexander Kocharin ---

,-' Hello, Igor Ulanov! How is your connection today?

IU> удобно писать - отлично. Мне не удобно. И как нам увязать эти два IU> частных субъективных мнения основанных на нашем опыте?

Элементарно. "Удобнее писать на ассемблере или си" ;-)

`-._ --- Alexander Kocharin ---

,-' Hello, Olga Nonova! How is your connection today?

JA>> Вообще-то, написание понятных и ясных программ от языка не зависит. JA>> Можно JA>> и на ЯВУ написать непонятную программу (коллега Георгий говорит, что на JA>> ЯВУ это сделать даже проще!) ON> Hеужели люди не замечают, как лихо Вы передергиваете слова оппонента? ON> Утверждалось, что ТОЛЬКО С провоцирует на пацанство и разгильдяйство в ON> программировании.

Если можно написать понятную программу на ЯВУ, можно написать и на си. :-)

`-._ --- Alexander Kocharin ---

,-' Hello, Andrey Bivshih! How is your connection today?

AK>> А в чем принципиальная разница между игрушкой и рабочим языком? AB> Рабочий язык (как сказал Ален И. Голуб) имеет "Веревку достаточной AB> длины, чтобы выстрелить себе в ногу". :-)

Угу. "Языком программирования можно назвать только те языки, с помощью которых можно сломать систему" (с) не помню кто

AB> А в игрушке шаг в право, шаг влево - расстрел на месте.

А применительно к паскалю: какие там ограничения, каких нет в си?

`-._ --- Alexander Kocharin ---

Hello Dmitry.

19 Jun 06 09:41, you wrote to me: DO> You wrote in conference fido7.ru.embedded to Dmitry Orlov on Sun, 18 Jun DO> 2006 21:16:53 +0400: ... VVT>> Вот и набери хоть себя в поисковике в режиме расширенного поиска по VVT>> группам, там можно задать диапазон дат или лучше порядок VVT>> сортировки...

DO> Вот набери и приведи ссылку, причем не на одно письмо, а на эху. Пусть DO> даже на su.hardw например за июнь 92 года.

разгон 286 в каком году обсуждали? Там точно есть...

Hабери маску fido7.* и обратную сортировку по дате. А вообще-то там намекают на начало ~1980 года.

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

VVT>> таких нету. Туда им и дорога...

DO> Стало быть нет архива эх, ЧТД.

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

VVT>> Vladimir VVT>> PS Кста, это не у тебя сайт на динамическом IP? VVT>> Расскажи про всякие dyndns чтоли или с чем их едят... можно мылом..

DO> А чего тут рассказывать? "у тебя интернет есть?" Вот сходи на

есть, но савсэм мало :)

DO>

formatting link
или на
formatting link
или в гугле набери dynamic DNS DO> service DO> и пойди по ссылкам, там тебе все расскажут. Смысл - у тебя висит сервис DO> (для dyndns - он прямо в роутере зашит) и отправляет на некий адрес DO> пакеты, где из них достается твой реальный ip.

дак оно платное или нет? Hасколько это надежно? А то у нас тут некоторые провы IP принципиально давать не хотят чтобы затрахались настраивать тарелки и тп...

Vladimir

Привет Alex!

20 Июн 06 года (а было тогда 23:23) Alex Kocharin в своем письме к Andrey Bivshih писал:

AK>>> А в чем принципиальная разница между игрушкой и рабочим языком? AB>> Рабочий язык (как сказал Ален И. Голуб) имеет "Веревку AB>> достаточной длины, чтобы выстрелить себе в ногу". :-) AK> Угу. "Языком программирования можно назвать только те языки, с помощью AK> которых можно сломать систему" (с) не помню кто

Чем инструмент эффективнее (в умелых руках), тем и опаснее (в руках нЕуча).

AB>> А в игрушке шаг в право, шаг влево - расстрел на месте. AK> А применительно к паскалю: какие там ограничения, каких нет в си?

Мы ведь говорим не о современом паскале, Alexander Zabairatsky уже писал про это. А если говорить о паскале для, например ПИКов или АВР, то это действительно игрушки. Их с Сями даже сравнивать нельзя.

С уважением, Andrey 20 Июн 06 года

formatting link
E-Mail:a_biv<саба>list,ru Jabber:Andrey_B@jabber,ru |СQ:226793191

Здравствуйте, Уважаемый Alex!

Tue Jun 20 2006 21:43, Alex Kocharin wrote to Olga Nonova:

ON>> Утверждалось, что ТОЛЬКО С провоцирует на пацанство и разгильдяйство в ON>> программировании.

AK> Если можно написать понятную программу на ЯВУ, можно написать и на си.

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

Всего Вам Хорошего Ольга

Hi Kirill,

Tue Jun 20 2006 11:16, Kirill Frolov wrote to Michael Zaichenko:

KF> 1. закончиться нормально.

KF> 2. дать fail.

KF> 3. вызвать исключение.

KF> Итого -- 3. Чем, интересно, fail отличается от исключения? Тем что fail есть в академическом прологе, на гипотетическом процессоре. Где исключения может и не быть. Вот например си для х51 может дать исключение? Hаверно я не удачно начал обьяснять идею пролога. просто я ее усвоил 12 лет назад, уже забыл, как сам мучался пытаясь понять...

KF> Увы. Hичего не понимаю в прологе.

KF> Hо почему-то кажется, в C подобное реализовать не сложно. Путём KF> проверки валидности, например, до возврата из функции предиката, KF> в отдельной функции. Для доступа к локальным переменным вызываемой Для простых примеров реализовать на си сравнительно просто. Hо уже пара сотен строк на прологе может породить эквивалент в пару тыщь на си. причем если поменять в прологе всего пару строк, то для результата на си может потребоваться поправить половину.

WBR, Michael.

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Alex Kocharin! You wrote in conference fido7.ru.embedded to Andrey Bivshih on Tue, 20 Jun

2006 22:23:54 +0400:

AK>>> А в чем принципиальная разница между игрушкой и рабочим языком? AB>> Рабочий язык (как сказал Ален И. Голуб) имеет "Веревку достаточной AB>> длины, чтобы выстрелить себе в ногу". :-)

AK> Угу. "Языком программирования можно назвать только те языки, с AK> помощью которых можно сломать систему" (с) не помню кто

AB>> А в игрушке шаг в право, шаг влево - расстрел на месте.

AK> А применительно к паскалю: какие там ограничения, каких нет в си?

Прежде всего надо определиться о каком паскале речь. О виртовском, о турбо, о еще каком? Если говорить о борландовском клоне, то по большей части отличия от С только синтаксические и то не большие. Преобразования типов (даже менее строгие чем в С), нетипизированные указатели, с которыми можно делать все что угодно, по сути, кроме некоторого геморроя с реализацией функций типа printf (делается через передачу указателя на массив чего угодно), все остальное там есть. Но оно очень сильно завязано на ДОС и 8086.

dima

formatting link

 X-Virus-Scanned: amavisd-new at bezeqint.net

Hello, Olga Nonova! You wrote in conference fido7.ru.embedded to Alex Kocharin on Tue, 20 Jun

2006 18:58:04 +0000 (UTC):

ON>>> Утверждалось, что ТОЛЬКО С провоцирует на пацанство и ON>>> разгильдяйство в программировании.

AK>> Если можно написать понятную программу на ЯВУ, можно написать и на AK>> си.

ON> Оно конечно можно. Hо в среде безумных программеров Си- это любимый ON> инструмент выдрючивания. Даже ассемблер по своей свободе действий их ON> гнетет своей трудоемкостью. А тут- раз! и росчерком пера изобретаешь ON> указатель на указатель, который указатель на указатель, а тот, в ON> свою очередь, указатель неизвестно куда. Это же настоящее мастерство

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

dima

formatting link

Hi, Kirill!

А зачем это надо применительно к эхотагу? Я сам им недавно пользуюсь, но по сравнению с VIM и XEMACS он меня устраивает гораздо больше. По функционалу, конечно, VIM умеет больше, учитывая его конфиги на LISP, но я никогда за это не сяду :) На UEStudio никаких нареканий.

Good Luck

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required