Обсуждение:Алгол
Проект «Информационные технологии» (уровень II, важность для проекта средняя)
Эта статья тематически связана с вики-проектом «Информационные технологии», цель которого — создание и улучшение статей по темам, связанным с информационными технологиями. Вы можете её отредактировать, а также присоединиться к проекту, принять участие в его обсуждении и поработать над требуемыми статьями. |
Обсуждения
правитькакие войска в дореволюционной России назывались инфантерией?
- А какое это отношение имеет к Алголу? --Рязанцев Александр 20:35, 26 июля 2009 (UTC)
Алгол в Америке
правитьИстория с Алголом в Штатах, мягко говоря, странная. Ну да, у IBM версия алгола была неудачной. Как, кстати, и первый PL/I, который был сделан "по мотивам". Но при чем тут IBM? Был и Burroughs и Univac. Burroughs справедливо упоминается в статье. Чья это, если не американская, фирма? Если посмотреть на список компиляторов начала 60-х, то там больше половины американские. Коммерчески Алогол не был распространен и в Европе. Чисто академический язык, полюбившийся математиками. 99.151.0.67 08:11, 7 февраля 2012 (UTC)
Слишком быстрая разработка
правитьАлгол был разработан в 1958 году, на недельной конференции в ETH (Цюрих, Швейцария) ...))))
Т. Е. автор статьи хочет сказать язык был разработан всего за неделю на конференции.... Thebeatles84 05:52, 10 сентября 2012 (UTC)
Передача параметров по имени
правитьПередача параметров по имени удивительно похожа на макросы препроцессора C, без всяких безумных функциональных сложностей. Демонстрация (программа аналогична приведённой, добавлена инициализация массива и контрольный вывод):
/* begin */ #include <stdio.h> /* procedure p (a, b); name a, b; integer a, b; begin for a:=1 step 1 until 10 do b := 0 end p; */ #define p(a,b) { for(a=0; a<10; a++) b=0; } /* the difference 1->0, 10->9 is due than C indexes are always started with zero */ int main() { /* integer i; integer array s [1:10]; */ int i, s[10]; for (i=0; i<10; i++) s[i]=3+i*i; /* fill with some values */ puts("before:"); for (i=0; i<10; i++) printf("%d->%d; ", i, s[i]); printf("\n"); /* p (i, s[i]) */ p(i, s[i]); puts("after:"); for (i=0; i<10; i++) printf("%d->%d; ", i, s[i]); printf("\n"); return 0; } /* end */
- Ну, да, похоже. И что? Как это относится к теме статьи? Кстати, про реализацию "того же другими средствами" там сказано. --dm обсужд. 19:35, 21 октября 2012 (UTC)
- Да, но макросы ограничены по управляющим конструкциям и отрабатываются при компиляции, а процедуры с параметрами, передаваемыми по имени, отрабатываются при выполнении программы. Например, вы не сможете написать в Си рекурсивный вызов макроса. Поэтому функциональность того примера, который использовал сам Йенсен для иллюстрации своего трюка, Вы воспроизвели, но, если бы он закрутил свою процедуру p посложнее, то этого сделать бы не удалось. 178.130.38.224 07:24, 6 сентября 2017 (UTC)
Отличие в том, что я привёл конкретный пример, а не абстрактные рассуждения сомнительной достоверности со ссылками на несуществующие статьи. Fidoman 15:55, 23 октября 2012 (UTC)
Добавил ремарку в текст, надеюсь она не вызывает возражений Fidoman 16:20, 23 октября 2012 (UTC)