?

Log in

No account? Create an account

Новое - это хорошо забытое старое - Ваши рубидии уже у кобальта во ртути

May. 20th, 2011

02:02 pm - Новое - это хорошо забытое старое

Previous Entry Share Next Entry


Недавно выпущенный известным программистом Фабрисом Белларом эмулятор, написанный на джаваскрипте требует для своей работы новую версию джаваскрипта, поддерживающую так называемые typed arrays.

Небольшая цитата из спецификации:

This specification defines an ArrayBuffer type, representing a generic fixed-length binary buffer. It is not possible to manipulate the contents of an ArrayBuffer directly. Instead, a group of types are used to create views of the ArrayBuffer. ...
Any modification to one view is immediately visible in the other


Хотя компилятор джаваскрипта и делает проверки границ массивов, не давая настоящему программисту развернуться вовсю, более или менее интересные варианты оператора EQUIVALENCE (а ArrayBuffer view фактически он и есть) можно себе представить.

Да здравствует Фортран!
Отставить.
Long live FORTRAN!
(Я дико извиняюсь, но человек, переводящий "call by value-return" как "передача параметров по значению" - сосунок.)

Comments:

[User Picture]
From:ramlamyammambam
Date:May 20th, 2011 10:13 pm (UTC)
(Link)
Ой, а как это в моей копии? Сейчас исправлю.
(Reply) (Thread)
[User Picture]
From:spamsink
Date:May 20th, 2011 10:28 pm (UTC)
(Link)
У тебя (уже?) правильно. В первом десятке ссылок, находимых гуглом по "Никлаус Вирт сосунок", в большинстве - "по значению", и только в двух "call-by-value-return" (другой перевод). Так что Пяткину А. С. (Ленинград) незачет.
Я, собственно, с детства слегка недоумевал, чего ж такого забавного для настоящего программиста в передаче параметров исключительно по значению, и думал, что это описка, и имелось в виду "по ссылке", как это было принято в бэсмовских фортранах.
(Reply) (Parent) (Thread)
[User Picture]
From:ramlamyammambam
Date:May 20th, 2011 10:44 pm (UTC)
(Link)
Я уже успел поправить. Изначально этот перевод был вообще кошмарный, я причесал кое-как. В первый раз русский перевод мне попался где-то в середине 80-х, в виде распечатки. А оригинал как-то не приходилось читать. Теперь вижу, что перевод надо делать заново, половина смысла потеряна.

Место с передачей параметров мне тоже казалось странным. А ведь действительно, передавать параметр по значению и получать его обратно в том же месте стека более эффективно, чем по ссылке. Кроме массивов. Почему все так не делали?
(Reply) (Parent) (Thread)
[User Picture]
From:alextr98
Date:May 20th, 2011 10:49 pm (UTC)

чем по ссылке

(Link)
Это questionable ...
(Reply) (Parent) (Thread)
(Deleted comment)
[User Picture]
From:spamsink
Date:May 21st, 2011 02:40 am (UTC)

Re: Почему все так не делали?

(Link)
Обрати внимание, что функция
swap(a, b) { a ^= b; b ^= a; a ^= b; }
при передаче параметров по value-return в случае swap(i, i) сработает правильно, а при передаче по ссылке - нет.
(Reply) (Parent) (Thread)
[User Picture]
From:iime
Date:May 21st, 2011 05:47 am (UTC)
(Link)
Кстати, и про фруктовый пирог разъяснилось, мне всегда было непонятно, над чем смеяться про этот пирог.
(Reply) (Parent) (Thread)
[User Picture]
From:spamsink
Date:May 21st, 2011 05:56 am (UTC)
(Link)
Дикие люди были, не знали слова "киш".
(Reply) (Parent) (Thread)
[User Picture]
From:iime
Date:May 21st, 2011 06:26 am (UTC)
(Link)
Киш как раз нормально заменяется фруктовым пирогом, а про книжку - врядли кто-то тогда знал. (Да и американцы, наверное, уже не знают, судя по Амазону)
(Reply) (Parent) (Thread)
[User Picture]
From:alon_68
Date:May 21st, 2011 09:06 am (UTC)
(Link)
Так не в кише дело, а в целом пласте коннотаций, нам совершенно чуждых!
(Reply) (Parent) (Thread)
[User Picture]
From:grey_horse
Date:May 21st, 2011 10:30 am (UTC)
(Link)
Новое - это хорошо запрограммированное старое.
(Reply) (Thread)