tag:blogger.com,1999:blog-8224163229837394669.post1035905586468651357..comments2008-04-16T23:58:45.139+02:00Comments on The lonely compiler: Простота и сложность: завершениеzouevhttp://www.blogger.com/profile/09163739178551976623noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-8224163229837394669.post-27763068183791621512008-04-16T23:58:00.000+02:002008-04-16T23:58:00.000+02:00Виноват, совсем забыл про локальные статики. Каюсь...<I>Виноват, совсем забыл про локальные статики. Каюсь.</I><BR/><BR/>Зря извинялся.<BR/>Если к переменной нужен доступ не одной функции, а - как в твоем примере "влияния на мышление" - группы. статики не помогут.gourievhttp://gouriev.livejournal.com/noreply@blogger.comtag:blogger.com,1999:blog-8224163229837394669.post-45933455519695975362007-11-04T23:14:00.000+01:002007-11-04T23:14:00.000+01:00...что считается модулем...Там хорошо написано:htt...<I>...что считается модулем...</I><BR/><BR/>Там хорошо написано:<BR/>http://wiki.oberoncore.ru/index.php/%D0%9C%D0%BE%D0%B4%D1%83%D0%BB%D1%8CСергей Губановnoreply@blogger.comtag:blogger.com,1999:blog-8224163229837394669.post-37529336949739475192007-11-04T09:55:00.000+01:002007-11-04T09:55:00.000+01:00Спасибо за ответы.Согласен, что иногда лучше прерв...Спасибо за ответы.<BR/><BR/>Согласен, что иногда лучше прервать/приостановить выдыхающуюся дискуссию, чтобы освободить время для новых дел. :)<BR/><BR/>Постараюсь кратко высказать, что осталось для меня неясным.<BR/><BR/>Я так и не понял, почему Вы признаете иерархические отношения только за классами и отказываете в них модулям.<BR/>Возможно, Вы хотите сказать, что иерархия обязательно подразумевает включение или наследование, а не простое использование или делегирование. Но ведь существует еще и иерархия абстракций. (Замечу, что разбиение программы на модули вовсе не произвольно.)<BR/>Интересно, мог бы Вирт отказаться в ОС Оберон от понятия программы (замененного на понятие команды), если бы модульная система Оберона не была организована иерархически? (ОС Оберон представляет из себя расширяемую иерархию модулей, в которой новые модули могут быть добавлены <I>поверх</I> старых.)<BR/><BR/>Я не понял также, почему на Обероне "неудобно программировать объектно". (Насчет "адского" :) ООП ничего не могу сказать -- нет соответствующего опыта.)<BR/>Если Вы имели в виду отсутствие в Обероне-1 присоединенных к типу процедурных констант (методов класса), то они есть и в Обероне-2, и в Компонентном Паскале. Решает ли это проблему?<BR/>Пока не вижу, что принципиально необходимого для ООП может добавить выделение класса в отдельную языковую конструкцию.<BR/><BR/>С уважением,<BR/> AVCAVCnoreply@blogger.comtag:blogger.com,1999:blog-8224163229837394669.post-7614927649064912492007-11-02T21:47:00.000+01:002007-11-02T21:47:00.000+01:00Я прошу прощения, что вмешиваюсь. Не могли бы Вы д...Я прошу прощения, что вмешиваюсь. Не могли бы Вы дать определение того, что считается модулем. Во-первых, я для себя не могу ясно ответить на этот вопрос - и, думаю, другим будет интересно это прочитать. Во-вторых, если при обсуждении будет сформулирована единая точка зрения на то, что есть модуль, то легче будет классифицировать языки по модульности.<BR/><BR/>Я, например, могу сказать своим студентам, что тип (класс) в некотором смысле является модулем. Но только в некотором смысле. Во всех смыслах я бы говорить не рискнул. <BR/><BR/>Еще раз прошу прощения, что вмешиваюсь.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-8224163229837394669.post-89018703835788569032007-11-02T10:47:00.000+01:002007-11-02T10:47:00.000+01:00>> ...если бы Вы сделали тональность Ваших коммент...>> ...если бы Вы сделали тональность Ваших комментариев менее назидательной...<BR/><BR/>Да я действительно допустил типичную ошибку свойственную неофитам - выдал некую риторику в назидательном тоне не имея при этом власти заставить в неё поверить, прошу меня за это простить.<BR/><BR/>По поводу того почему тип не может быть модулем логика такова. Типы могут ссылаться друг на друга циклически. Следовательно единицей загрузки/выгрузки является не каждый тип по отдельности, а их взаимосвязанная совокупность (она вполне объективна). Вот эта совокупность и есть модуль. В частном случае, конечно, модуль может состоять всего из одного типа, но это не значит что тип вдруг превратился в модуль.Сергей Губановnoreply@blogger.comtag:blogger.com,1999:blog-8224163229837394669.post-55577896438086806482007-11-01T13:12:00.000+01:002007-11-01T13:12:00.000+01:00Уважаемый Сергей Губанов. Надеюсь, что «ноги вашег...Уважаемый Сергей Губанов. Надеюсь, что «ноги вашего непонимания» моего текста происходят всего лишь из его (текста) невнимательного прочтения, а также из горячности, обычно свойственной неофитам. Последнее тем более странно, что Вы, несомненно, являетесь весьма начитанным специалистом, особенно сильным в трактовке определений фундаментальных понятий и непримиримостью к тем, кто эти определения безответственно искажает. Тем не менее, я был бы Вам крайне признателен, если бы Вы сделали тональность Ваших комментариев менее назидательной.zouevhttp://www.blogger.com/profile/09163739178551976623noreply@blogger.comtag:blogger.com,1999:blog-8224163229837394669.post-42212065936592662652007-11-01T08:44:00.000+01:002007-11-01T08:44:00.000+01:00Ну вам же ещё в прошлый раз указали на то что неза...Ну вам же ещё в прошлый раз указали на то что независимая компиляция и раздельная - две совершенно разные вещи (отличаются как небо от земли). А вы опять их перепутали! В Си/Си++ компиляция независимая, а в модульных языках - раздельная. Очевидно, что как раз отсюда и растут ноги вашего непонимания того что такое модуль и почему class им быть не может.<BR/><BR/>Почитайте диссертацию Regis Crelier (ETH Th10650) Separate Compilation and Module Extension, и, всё таки, ознакомьтесь с BlackBox, будет весьма пользительно.Сергей Губановnoreply@blogger.com