Evgeny972 Цитата: PL/M был язык среднего уровня для микроконтроллеров Intel - это их детище. Он никогда не был развитием PL/1
Конечно, термин "развитие" применен мной крайне неудачно - идея, что язык, спроектированный для разработки программ для 32-разрядного компьютера с мощной системой команд и мегабайтными ресурсами памяти, получил бы "дальнейшее развитие" в расчете на создание программ под четырехбитный ЦПУ с набором из 45 команд
, никогда не посещала мою голову. Но все же
Цитата: Гэри Килдалл ... эмулировал чип Intel 4004 на машине IBM-360, после чего разработал язык программирования PL/M (Programming Language / Microprocessor - "язык программирования для микропроцессора"). За основу был взят PL/I - основной язык программирования для IBM-360.
Хотя я, повторюсь, PL/M никогда не использовал (в отличие от PL/1), но имел возможность сравнить синтаксис языков, так что приведенная мной выше цитата у меня сомнений не вызывает.
А что касается
Цитата: первоначальная концепция языка С ... состояла в том, что "С-модуль - это одна функция" и что "первые компиляторы С генерировали ассеблерный код, который уже потом обрабатывался ассемлером, т.е. первоначально это был более продвинутый макропроцессор"
то тут я позволю себе высказать определенные сомнения. Язык С был разработан не для микропроцессоров, но для PDP-11 (более того, по некоторым сведениям Ритчи и (вот фамилию второго не припомню) разрабатывали переносимый язык программирования для поддержки другой своей разработки - UNIX, хотя в этом я могу ошибаться. Кроме того,
реализация конкретного компилятора и концепция языка - это, как говорят в Одессе, две большие разницы. Понятие же модуля в языке С, если я не ошибаюсь, четко не выражено. (Да и вообще, модуль - это скорее сущность, используемая компоновщиком/библиотекарем, а компиляторы и ассемблеры только поддерживают их, создавая модули из исходных текстов). Может быть, в первоначальных версиях под модулем подразумевался файл (или другая единица хранения исходного текста, "скармливаемая" компилятору), и накладывалось ограничение, что файл мог содержать лишь одну функцию (это - всего лишь мое предположние)? Если так, то я сомневаюсь, что среда программирования с такими в ее основу положенными
концепциями могла просуществовать достаточно долго, чтобы "убить" конкурирующую.
О реализации, при которой компилятор только генерирует ассемблерный текст: не сомневаюсь, что такая реализация в определенных условиях может быть оптимальным (промежуточным) решением. Но тут такой вот вопросик: если компилятор достаточно примитивен в вопросах генерации результата, то насколько сложно перевести генерируемый им текст на языке ассемблера, т.е на машинно-ориентированном языке, в собственно машинно-ориентированный объектный код? И в чем может заключаться порочность внутреннего, прозрачного для пользователя использования ассемблера для генерации ассемблерного кода? Ну, а если кто-то когда-то разработал среду программирования, в которой бедный программист должен был вручную заправлять перфоленточку с ассемблерным текстом в считывающее устройство, то надо не забывать о том, что программисты первых компьютеров сообщали свои программные идеи электронному мозгу путем соединения контактов на лицевой панели специальными перемычками и были счастливы
У защиты вопрос к обвинению: чем именно обвиняемый (язык С) нанес смертельное ранение пострадавшему (языку PL/M)?
Не сочти за ехидство, просто интересна твоя точка зрения.
По поводу 22 строк в функции (чтобы все сразу было видно на экране). В эпоху развития языков и методологии программирования было очень модным (и зачастую небесполезным) обсуждать стиль программирования (я бы сказал, кодирования, или еще точнее - оформления текста программы). Безусловно, намучавшись с конструкциями типа "IF(A451**SQRT(FUNC(357E-5*XYZ896))) 1,2,3456", светлые умы того времени призывали к такой записи программ, чтобы ее мог понять не только компилятор, но и автор спустя месяц после завершения своего титанического труда. Одной из идей была та, что продуманное разбиение программ на модули должно дать процедуры текстуально такого размера, чтобы их можно было охватить взглядом и, соответственно, проследить логику, не листая лихорадочно N страниц бумаги и уж тем более экрана (листы бумаги можно все же положить рядом, а рулон распечатки развернуть в длинном корридоре
). Но все же к концепции конкретного языка это имеет приблизительно такое же отношение, как гарнитура, которой напечатана Библия, к вести о спасении
И, наконец, к вопросу, "кто убил PL/M"
Аналогичный вопрос можно задать по отношению к DR-DOS и GEM (другим детищам Гэри Килдалла), по отношению к языку Ада (или Пентагон все еще поддерживает его использование?), к компьютерным и системным архитектурам, вышедшим из недр DEC. И почему все мы до сих пор пользуемся этими немного повзрослевшими, но все же примитивными калькуляторными процессорами I4004, пардон, I8086, нет, опять малость промахнулся, Core/K8 (но присутствие одного только
аккумулятора чего стоит!), а не переходим стройными рядами в число поклонников RISC или хотя бы архтектур с правильной, симметричной по отношению к регистрам системы команд? Кто виноват? И что делать?
P.S. Я слезно прошу модераторов простить мне этот маленький оффтоп.