Вопрос по Алгол 60

User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Вопрос по Алгол 60

Post by Dmitry67 »

Посмотрите пример в начале.
Я не понимаю как это работало
Тип третьего параметра процедуры не описан. Какой код будет сгенерен? Ведь вызвана эта процедура может быть с integer, real, Boolean.
20151231_112125-1.jpg
You do not have the required permissions to view the files attached to this post.
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
thinker
Уже с Приветом
Posts: 26871
Joined: 29 Aug 2000 09:01

Re: Вопрос по Алгол 60

Post by thinker »

Dmitry67 wrote:Тип третьего параметра процедуры не описан. Какой код будет сгенерен? Ведь вызвана эта процедура может быть с integer, real, Boolean.
Возможно, что тип третьего параметра, раз он явно не указан, будет выбран компилятором по умолчанию (whatever it is).
All rights reserved, all wrongs revenged.
User avatar
flip_flop
Уже с Приветом
Posts: 4379
Joined: 20 Jun 2001 09:01

Re: Вопрос по Алгол 60

Post by flip_flop »

Thunk, call by name evaluation, dispatch table.

Интересные вещи делались на заре разработки языков программирования и компиляторов, недавно заинтересовался. По идее знание таких вещей и многого другого из синтаксиса и семантики программирования должно отличать специалистов по "computer science" от нас с вами, вроде бы успешно программирующих, но без знания фундаментальных основ.
User avatar
perasperaadastra
Уже с Приветом
Posts: 20128
Joined: 21 Feb 2009 22:55
Location: Лох Онтарио

Re: Вопрос по Алгол 60

Post by perasperaadastra »

Кажется, пора переименовывать раздел в "Ретро ИТ" :)
User avatar
flip_flop
Уже с Приветом
Posts: 4379
Joined: 20 Jun 2001 09:01

Re: Вопрос по Алгол 60

Post by flip_flop »

Точно! Надо ещё завести дискуссии по Фортрану и Лиспу и полный ретро охват :D

Всех с Новым Годом!
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: Вопрос по Алгол 60

Post by Dmitry67 »

flip_flop wrote:Thunk, call by name evaluation, dispatch table.

Интересные вещи делались на заре разработки языков программирования и компиляторов, недавно заинтересовался. По идее знание таких вещей и многого другого из синтаксиса и семантики программирования должно отличать специалистов по "computer science" от нас с вами, вроде бы успешно программирующих, но без знания фундаментальных основ.
Вот именно
Я листаю старую книгу, и вдруг вижу, что-то странное, такого быть не может. Вот как оно оказывается...
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
adb
Уже с Приветом
Posts: 9275
Joined: 14 Dec 2001 10:01
Location: Российская Федерация

Re: Вопрос по Алгол 60

Post by adb »

Темнота. В Алголе параметры передаются по имени. Погуглите трюк Йенсена.
Миру мир
User avatar
geek7
Уже с Приветом
Posts: 20297
Joined: 01 Dec 2003 23:16
Location: Russia->USA

Re: Вопрос по Алгол 60

Post by geek7 »

flip_flop wrote:Точно! Надо ещё завести дискуссии по Фортрану и Лиспу и полный ретро охват :D

Всех с Новым Годом!
Всех с Новым Годом!
Я за паскаль. причем отдельно классику и борландовский обжет
Говори что думаешь, думай что говоришь!
Маразм крепчал и скрепы гнулись
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: Вопрос по Алгол 60

Post by Dmitry67 »

adb wrote:Темнота. В Алголе параметры передаются по имени. Погуглите трюк Йенсена.
Но это же очень накладно!
Особенно в то время
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: Вопрос по Алгол 60

Post by Dmitry67 »

А вот действительно пишут:
Эта особенность языка Алгол 60, в остальном довольно разумно организованного, примечательна удивительным сочетанием полной практической бесполезности с чрезвычайной сложностью и неэффективностью реализации. Поэтому в дальнейшем развитии языков программирования от передачи параметров по имени отказались. 
Неудивительно что у меня bullshit detector сработал
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
flip_flop
Уже с Приветом
Posts: 4379
Joined: 20 Jun 2001 09:01

Re: Вопрос по Алгол 60

Post by flip_flop »

Ну, Паскаль - это скорее винтаж, тогда как труЪ ретро - Фортран, Лисп, Алгол и Кобол. Но, тем не менее, рады всем языкам старичкам.

Я всё время вспоминал (икая, причём) Паскаль, когда работал с VHDL одно время. Там вроде был язык Ада (хорошее название, да :D ?) между ними.
User avatar
f_evgeny
Уже с Приветом
Posts: 10367
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Re: Вопрос по Алгол 60

Post by f_evgeny »

flip_flop wrote:Точно! Надо ещё завести дискуссии по Фортрану и Лиспу и полный ретро охват :D

Всех с Новым Годом!
Протестую! Лисп вполне современный язык, вполне себе испольуется и еще переживет нас с вами.
С Новым Годом!
Дальше, все будет только хуже. Оптимист.
User avatar
flip_flop
Уже с Приветом
Posts: 4379
Joined: 20 Jun 2001 09:01

Re: Вопрос по Алгол 60

Post by flip_flop »

f_evgeny wrote:
flip_flop wrote:Точно! Надо ещё завести дискуссии по Фортрану и Лиспу и полный ретро охват :D

Всех с Новым Годом!
Протестую! Лисп вполне современный язык, вполне себе испольуется и еще переживет нас с вами.
С Новым Годом!
Протест отклоняется. И Лисп и Фортран и даже Кобол (см соседнюю ветку он "Brave New World" :D ) живые, вполне себе используются, и переживут много кого. Что не отменяет факта их появления в ретро-эпоху со всеми ретро-признаками.

С наступившим Новым Годом!
User avatar
f_evgeny
Уже с Приветом
Posts: 10367
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Re: Вопрос по Алгол 60

Post by f_evgeny »

flip_flop wrote: Что не отменяет факта их появления в ретро-эпоху со всеми ретро-признаками.

С наступившим Новым Годом!
Я то сам в лиспе постольку поскольку он в емаксе, а вот сын в качестве хобби пишет на лиспе. С его слов, в Лиспе есть такие передовые фишки, которых до сих пор нет в других передовых языках.
Дальше, все будет только хуже. Оптимист.
User avatar
fruit6
Уже с Приветом
Posts: 4207
Joined: 10 Jan 2004 01:22
Location: n-sk -> MD -> VA

Вопрос по Алгол 60

Post by fruit6 »

f_evgeny wrote:
flip_flop wrote: Что не отменяет факта их появления в ретро-эпоху со всеми ретро-признаками.

С наступившим Новым Годом!
Я то сам в лиспе постольку поскольку он в емаксе, а вот сын в качестве хобби пишет на лиспе. С его слов, в Лиспе есть такие передовые фишки, которых до сих пор нет в других передовых языках.
Какие языки он ещё знает, и, самое главное, писал ли он на них?
User avatar
f_evgeny
Уже с Приветом
Posts: 10367
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Вопрос по Алгол 60

Post by f_evgeny »

fruit6 wrote:
f_evgeny wrote:
flip_flop wrote: Что не отменяет факта их появления в ретро-эпоху со всеми ретро-признаками.

С наступившим Новым Годом!
Я то сам в лиспе постольку поскольку он в емаксе, а вот сын в качестве хобби пишет на лиспе. С его слов, в Лиспе есть такие передовые фишки, которых до сих пор нет в других передовых языках.
Какие языки он ещё знает, и, самое главное, писал ли он на них?
Он профессионально писал на C++ и Python, сейчас работает на Python. Ну и немножко цеплял вроде Java и что-то делал на JS.
Чтобы не быть голословным, что-то из того, что он говорил; при работе в интерактивной консоли можно менять методы на лету. Это дает то, что можно программировать полностью в интерактивном режиме. Скормил методу данные, посмотрел, что вышло, подправил метод, опять скормил данные. И так далее.
Дальше, все будет только хуже. Оптимист.
User avatar
flip_flop
Уже с Приветом
Posts: 4379
Joined: 20 Jun 2001 09:01

Вопрос по Алгол 60

Post by flip_flop »

f_evgeny wrote: Он профессионально писал на C++ и Python, сейчас работает на Python. Ну и немножко цеплял вроде Java и что-то делал на JS.
Чтобы не быть голословным, что-то из того, что он говорил; при работе в интерактивной консоли можно менять методы на лету. Это дает то, что можно программировать полностью в интерактивном режиме. Скормил методу данные, посмотрел, что вышло, подправил метод, опять скормил данные. И так далее.
Разве Python/IPython не позволяет это же делать?

Я работал в своё время в автоматизации проектирования электронных схем (CAD/EDA: Cadence, Mentor, proprietary tools) и общее впечатление, по производительности программирования и по совокупности - Python удобнее Tcl, Tcl удобнее SKILL (версия Lisp). Что не отменяет наличие отдельных "штучек" в отдельных языках.

Ещё помню стародавний спор LISP vs PROLOG for AI :D Хотя у них как бы разные аспекты и области предпочтительного использования.

А современный LISP это Clojure, так?

Кстати, Algol умер, или вечно живой?
User avatar
f_evgeny
Уже с Приветом
Posts: 10367
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Вопрос по Алгол 60

Post by f_evgeny »

flip_flop wrote:
f_evgeny wrote: Он профессионально писал на C++ и Python, сейчас работает на Python. Ну и немножко цеплял вроде Java и что-то делал на JS.
Чтобы не быть голословным, что-то из того, что он говорил; при работе в интерактивной консоли можно менять методы на лету. Это дает то, что можно программировать полностью в интерактивном режиме. Скормил методу данные, посмотрел, что вышло, подправил метод, опять скормил данные. И так далее.
Разве Python/IPython не позволяет это же делать?

Я работал в своё время в автоматизации проектирования электронных схем (CAD/EDA: Cadence, Mentor, proprietary tools) и общее впечатление, по производительности программирования и по совокупности - Python удобнее Tcl, Tcl удобнее SKILL (версия Lisp). Что не отменяет наличие отдельных "штучек" в отдельных языках.

Ещё помню стародавний спор LISP vs PROLOG for AI :D Хотя у них как бы разные аспекты и области предпочтительного использования.

А современный LISP это Clojure, так?

Кстати, Algol умер, или вечно живой?
Питон так делать не позволяет то есть функции можно на лету изменять, а вот методы объектов - нет. Поэтому полностью интерактивно программировать не совсем получается.
А так, Питон для меня лично удобнее всего. Про всякие ретро не очень в курсе, я начинал что-то програмировать на бейсик и ассемблер ZX Spectrum, потом Си, С++, TCL, Perl, C++, eLisp (только простые функции), Python. Python, IMHO, самый удобный.
Но вообще, Питон, имхо из современных самый удобный.
В Лиспе я не большой спец, но вроде главный - Common Lisp. Хотя могу ошибаться.
Дальше, все будет только хуже. Оптимист.
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Re: Вопрос по Алгол 60

Post by Dmitry67 »

А я любил язык Planner
И сам для него написал интерпретатор
Вначале на Rsx11m, на паскале, а потом на VAX
Причем начинал я писать в колхозе перед первым курсом. И это была суходрочка, то есть я писал в тетрадке. А какие там были девушки... А я писал программы...
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
flip_flop
Уже с Приветом
Posts: 4379
Joined: 20 Jun 2001 09:01

Вопрос по Алгол 60

Post by flip_flop »

f_evgeny wrote: Питон так делать не позволяет то есть функции можно на лету изменять, а вот методы объектов - нет. Поэтому полностью интерактивно программировать не совсем получается.
Можно. Можно определить новую функцию: e.g. def func(self): print("func") а затем переопределить метод, e.g. MyMethod класса MyClass: MyClass.MyMethod=func; Проверил, работает :D

Но вообще, Питон, имхо из современных самый удобный.
Категорически согласен :fr:

Хотя и проблем в его, Питоне, расширенной инфраструктуре (за пределами, собственно, базового языка) "полна попа огурцов"
User avatar
flip_flop
Уже с Приветом
Posts: 4379
Joined: 20 Jun 2001 09:01

Re: Вопрос по Алгол 60

Post by flip_flop »

Dmitry67 wrote:А я любил язык Planner
И сам для него написал интерпретатор
Вначале на Rsx11m, на паскале, а потом на VAX
Причем начинал я писать в колхозе перед первым курсом. И это была суходрочка, то есть я писал в тетрадке. А какие там были девушки... А я писал программы...
Тихий ужас :evil:, программы не стоили таких жертв :umnik1: В крайнем случае можно было в оставшееся от выпивки, компании, девушек, время, но никак не вместо того. Я вспоминаю свои два первых курса как самое буйное/интересное время.
User avatar
Dmitry67
Уже с Приветом
Posts: 28294
Joined: 29 Aug 2000 09:01
Location: SPB --> Gloucester, MA, US --> SPB --> Paris

Вопрос по Алгол 60

Post by Dmitry67 »

Как я сейчас понимаю, отчасти это было троллингом публики с моей стороны. Но только отчасти. Поэтому я вынужден согласиться с
perasperaadastra wrote:Интроверты должны быть уничтожены, так как они ответственны за появление ботанов. :umnik1:
Зарегистрированный нацпредатель, удостоверение N 19719876044787 от 22.09.2014
User avatar
f_evgeny
Уже с Приветом
Posts: 10367
Joined: 12 Apr 2001 09:01
Location: Lithuania/UK

Вопрос по Алгол 60

Post by f_evgeny »

flip_flop wrote:Проверил, работает :D
И правда, работает. Был неправ.
Дальше, все будет только хуже. Оптимист.
User avatar
flip_flop
Уже с Приветом
Posts: 4379
Joined: 20 Jun 2001 09:01

Вопрос по Алгол 60

Post by flip_flop »

f_evgeny wrote:
flip_flop wrote:Проверил, работает :D
И правда, работает. Был неправ.
Ничего страшного :fr:

С другой стороны, Python не имеет powerfull macros для metaprogramming, и медленный, по сравнению с LISP. Я поглядываю на Julia в этом контексте.
User avatar
fruit6
Уже с Приветом
Posts: 4207
Joined: 10 Jan 2004 01:22
Location: n-sk -> MD -> VA

Вопрос по Алгол 60

Post by fruit6 »

f_evgeny wrote:
fruit6 wrote:
f_evgeny wrote:
flip_flop wrote: Что не отменяет факта их появления в ретро-эпоху со всеми ретро-признаками.

С наступившим Новым Годом!
Я то сам в лиспе постольку поскольку он в емаксе, а вот сын в качестве хобби пишет на лиспе. С его слов, в Лиспе есть такие передовые фишки, которых до сих пор нет в других передовых языках.
Какие языки он ещё знает, и, самое главное, писал ли он на них?
Он профессионально писал на C++ и Python, сейчас работает на Python. Ну и немножко цеплял вроде Java и что-то делал на JS.
Чтобы не быть голословным, что-то из того, что он говорил; при работе в интерактивной консоли можно менять методы на лету. Это дает то, что можно программировать полностью в интерактивном режиме. Скормил методу данные, посмотрел, что вышло, подправил метод, опять скормил данные. И так далее.
Похоже на случай 'пишу то незная что', для чего REPL среды подходят лучше чем промышленные языки с их виртуальными машинами. Для жабы кстати есть dce vm, решающая проблему перезагрузки классов в рантайме.

Return to “Вопросы и новости IT”