Re[2]: Нетленные ценности
От: Qbit86 Кипр
Дата: 25.03.09 16:00
Оценка:
Здравствуйте, Шахтер, Вы писали:

Ш>Законы механики могут быть сформулированы в разных формах. Как уравнения движения, как уравнения Лагранжа, в форме Гамильтона...


Все три формулировки механики — Ньютонова, Лагранжева и Гамильтонова — по своему важны, и каждая из них может быть предпочтительнее других в разных задачах. Вряд ли, пойди человечество по альтернативному пути, оно не дошло бы до осознания необходимости этих трёх формулировок.

Ш>есть ещё вариационнный принцип.


Зачем его выделять отдельно? Как раз на его основе строится Лагранжева механика.
Глаза у меня добрые, но рубашка — смирительная!
Re: Сухой остаток или нетленные ценности
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.03.09 18:17
Оценка: +7
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>А что в сухом остатке ? Предлагаю обсудить.


Знаешь что мне не нравится что в упомянутой тобой дисскуссии, что в твоем сообщении — ты пытаешься делать выводы на основании аналогии. Ценность этого — нулевая. И развернуть аналогию можно как угодно. К примеру, без Вирта да, не было бы Паскаля, но императивный язык был бы.
Все аналогии ложны.
... << RSDN@Home 1.2.0 alpha 4 rev. 1138 on Windows Vista 6.1.7000.0>>
AVK Blog
Re[5]: Сухой остаток или нетленные ценности
От: Sinclair Россия https://github.com/evilguest/
Дата: 25.03.09 18:39
Оценка: +5
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Я не математик, давать точные определения не буду. Но ИМХО дифференциальное и интегральное исчисление и все то, что есть в учебнике матанализа — это 99..9%, а запись dy/dx или загогулины интеграла — это 0.0..1%. Это можно поменять, основное содержание неизменно.

Хм. И из чего у нас состоит учебник матанализа? Мне просто интересно.

PD>Еще раз — предлагаю обсуждение животного мира прекратить. Не относится это к делу ибо не есть рукотворное явление.

Если хочется, то можно перейти к обсуждению рукотворной части животного мира Результат будет примерно тот же.

PD>Ты от меня слишком много хочешь, я не инженер. Насчет 4 колес мог бы высказать некоторые соображения (почему не 3 и почему не 5), но, боюсь, они инженерам могут показаться смешными. А во-вторых, я не говорил о повторениях. Я говорил, что в итоге у всех получится одно и то же — некое результирующее, независимо от личности.

Именно об этом я и говорю — "повторение" в том смысле, что если мы отмотаем время назад и пустим всё заново, но без Дизеля.

PD>Аргумент прост — представь себе, что автомобилей нет, начнем с начала. Что изменится в его конструкции ?

Это ты меня спрашиваешь? Это ты делаешь смелое предположение — что изменения будут несущественными.
Я в этом вовсе не уверен.

PD>В то время как если представить себе, что Пентиума нет и начать с начала, то будет, возможно, совсем другой процессор.

Что значит "совсем другой"?
Не связано ли твое восприятие с тем, что ты лучше разбираешься в процессорах, чем в двигателях?
Тебе не приходило в голову, что специалист автопрома наоборот скажет "ну чего там изменится в компьютере? Один хрен будет экран, мышь и клавиатура". И ему будет до лампочки то, что он там внутри двадцатисемиразрядный и на троичной логике. И точно так же он сможет рассудить "да, начали-то они с германия, но быстро поняли его бесперспективность и переключились на кремний". "Зато вот современный инжекторный мотор — плод случайных, по большому счету, решений, и он бы получился совершенно другим, если начать сначала".

PD>Ну это схоластика чистой воды. Из того, что есть минимальное число, пригодное для этих целей, никак не следаует, что именно оно должно употребляться.Да и вообще, помню, везде когда-то писали : ЭВМ были сделаны на двоичной системе, потому что ее технически проще реализовать. Я не вижу теоретических причин невозможности создания ЭВМ на десятичной, к примеру , системе. И недвоичная логика тоже существует. Кстати, ее Зиновьев (Зияющие высоты читал ?) развивал. "Истинно, ложно и противоречиво".

Я в курсе про неклассические логики (их, кстати, много).

PD>Кстати, если бы сейчас была на машине троичная система,

Ты какую имеешь в виду — классическую троичную или троичную сбалансированную? Мне вот вторая больше нравится — в ней очень легко делать умножение на -1, а, значит, и вычитание.
PD> то все ваши проблемы и решения с nullable решались бы без всякого труда и без каких=то хитростей.
Во как, а мужики-то не знают!

У нас, в общем-то, нет "проблем и решений с nullable", которые бы требовали каких-то особых хитростей.
И с троичностью системы "в машине" это совершенно никак не связано. В том же SQL трёхзначная логика прекрасно работает испокон веку.
Так что непонятно, что именно ты имеешь в виду. Рекомендую почитать второй том Кнута на тему нетрадиционных систем счисления. Их изобилие как-то снимает романтический ореол с троичной системы.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[5]: Сухой остаток или нетленные ценности
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.03.09 18:54
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Паскаль описан в БНФ изначально, так что синтаксис математически строг. А как семантику формулировать на уровне математической строгости — я не знаю.


Так компилятор, как и любая реальная программа, абсолютно формален.
... << RSDN@Home 1.2.0 alpha 4 rev. 1138 on Windows Vista 6.1.7000.0>>
AVK Blog
Re[6]: Сухой остаток или нетленные ценности
От: Pavel Dvorkin Россия  
Дата: 26.03.09 05:19
Оценка: -1 :))
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Pavel Dvorkin, Вы писали:


S>Хм. И из чего у нас состоит учебник матанализа? Мне просто интересно.


Интересно, так возьми его и почитай.

PD>>Еще раз — предлагаю обсуждение животного мира прекратить. Не относится это к делу ибо не есть рукотворное явление.

S> Если хочется, то можно перейти к обсуждению рукотворной части животного мира Результат будет примерно тот же.

Не хочется.

PD>>Ты от меня слишком много хочешь, я не инженер. Насчет 4 колес мог бы высказать некоторые соображения (почему не 3 и почему не 5), но, боюсь, они инженерам могут показаться смешными. А во-вторых, я не говорил о повторениях. Я говорил, что в итоге у всех получится одно и то же — некое результирующее, независимо от личности.

S>Именно об этом я и говорю — "повторение" в том смысле, что если мы отмотаем время назад и пустим всё заново, но без Дизеля.

И что ?

PD>>Аргумент прост — представь себе, что автомобилей нет, начнем с начала. Что изменится в его конструкции ?

S>Это ты меня спрашиваешь? Это ты делаешь смелое предположение — что изменения будут несущественными.
S>Я в этом вовсе не уверен.

А я уверен. В конце концов современные автомобили делали и делают самые разные фирмы, а получается примерно одно и то же.

PD>>В то время как если представить себе, что Пентиума нет и начать с начала, то будет, возможно, совсем другой процессор.

S>Что значит "совсем другой"?

Не Пентиум 4.

S>Не связано ли твое восприятие с тем, что ты лучше разбираешься в процессорах, чем в двигателях?

S>Тебе не приходило в голову, что специалист автопрома наоборот скажет "ну чего там изменится в компьютере? Один хрен будет экран, мышь и клавиатура".
И ему будет до лампочки то, что он там внутри двадцатисемиразрядный и на троичной логике. И точно так же он сможет рассудить "да, начали-то они с германия, но быстро поняли его бесперспективность и переключились на кремний". "Зато вот современный инжекторный мотор — плод случайных, по большому счету, решений, и он бы получился совершенно другим, если начать сначала".

Сомнительно. Я, конечно, не специалист по двигателям, но достаточно все же знаю химию и механику их. Там реально в этом плане ничего не изменилось со времен Форда.


PD>>Кстати, если бы сейчас была на машине троичная система,

S>Ты какую имеешь в виду — классическую троичную или троичную сбалансированную? Мне вот вторая больше нравится — в ней очень легко делать умножение на -1, а, значит, и вычитание.
PD>> то все ваши проблемы и решения с nullable решались бы без всякого труда и без каких=то хитростей.
S>Во как, а мужики-то не знают!

Так знай теперь, а мужики могут сами сказать

S>У нас, в общем-то, нет "проблем и решений с nullable", которые бы требовали каких-то особых хитростей.


Ну-ну. Дело не в хитростях, а в том, что вы моделируете троичную логику на двоичных элементах, из-за этого приходится выкручиваться.

S>И с троичностью системы "в машине" это совершенно никак не связано. В том же SQL трёхзначная логика прекрасно работает испокон веку.


??? Работает, конечно, но это лишь значит, что внутри SQL сервера она так же моделируется.

S>Так что непонятно, что именно ты имеешь в виду. Рекомендую почитать второй том Кнута на тему нетрадиционных систем счисления. Их изобилие как-то снимает романтический ореол с троичной системы.


Кнута я читал еще так лет 20 назад. Ореола никакого нет. Просто я отметил, что двоичная система счисления не относится к числу нетленных ценностей, вот и все, что я хотел сказать.
With best regards
Pavel Dvorkin
Re[2]: Сухой остаток или нетленные ценности
От: Pavel Dvorkin Россия  
Дата: 26.03.09 05:38
Оценка:
Здравствуйте, Шахтер, Вы писали:

Ш>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>В дискуссии, которая развернулась вокруг моего взгляда как химика на положение в ИТ, меня заинтересовала одна мысль. Попробую ее сформулировать.


PD>>Если бы Ньютон и Лейбниц не родились на свет — матанализ сейчас имел бы тот же вид, какой он имеет.


Ш>Неверно. Тот матан, который придумали Ньютон и Лейбниц, давно вошел в историю науки. Современный матан ведет историю от Коши, Вейерштрасса и Дедекинда.

Ш>И интегрируем мы давно уже не по Риману, а по Лебегу. И меры определяем не по Жордану, а по Лебегу.

Я что, должен разжевать все и в рот положить ? Я привел их как родоначальников матанализа. То, что он в дальнейшем изменился , я прекрасно знаю, и о том, кто потом в нем работал и оставил свой след, тоже. Мне их всех надо было перечислить ?


PD>>Закон всемирного тяготения несомненнно, был бы открыт и имел тот же вид.


Ш>Тоже неверно. Законы физики имеют вид, зависящий от выбранного представления физической реальности.


Может, я чего-то не понимаю, но ИМХО формула закона всемирного тяготения ни от чего не зависит.

PD>>Законы механики — тоже.


Ш>Законы механики могут быть сформулированы в разных формах. Как уравнения движения, как уравнения Лагранжа, в форме Гамильтона, есть ещё вариационнный принцип.


На здоровье. От этого физические законы не зависят, а излагать их можешь даже с помощью иероглифов.



Ш>Короче -- учите матчасть.




PD>>Если бы Менделеев и Мейер померли в младенчестве — трудно предположить, что мы бы до сих пор не знали бы периодической таблицы. Имя она носила бы другое, а вид — тот же.


Ш>Тоже не факт. В конце концов, траспонируй -- уже альтернативный вариант получится.


Ну не смеши хоть. Что изменится от транспонирования ? Периодический закон — это отнюдь не внешний вид той таблицы, которая в каждом школьном кабинете висит. Ее внешний вид вообще малосущественен. Периодический закон — это правила заполнения орбиталей в соответствии с принципом Паули. Его не транспонируешь

Ш>В науке происходит эволюция знаний. При этом теории не только рождаются, но и умирают.


Приведи пример умерших теорий. Только научных, а не ошибочных. Флогистон, теплород и жизненная сила не пойдут.
Теории не умирают, если они верные. Просто со временем обнаруживается их ограниченность и неприменимость в определенных условиях. Ньютонова механика не померла от того, что не смогла работать при субсветовых скоростях. И электродинамика Максвелла тоже, от того, что не смогла объяснить квантовые эффекты.

>Та форма, которую научные теории имеют на данный момент есть результат исторического развития. При другом историческом развитии всё выглядело бы по-другому.


Нет. Теория относительности или классическая механика есть отражение физической реальности и иными быть не могли. Могло быть иное описание, изоморфное существующему, но формально иное. иными же они могли бы быть только если физические законы были бы иными.

PD>>Возьмем технологии. Если бы Дизель не родился, дизели все равно бы появились.


Ш>Ниоткуда не следует.


Так без них бы и жили, не придумали бы ?

PD>>Ракеты в СССР построили бы и без Королева, и они были бы такими же.


Ш>Неверно. Ракеты в СССР, в США и во Франции разные. НЕкоролев тоже скорее всего придумал бы свою конструкцию.


Конструкцию — да. А принципы остались бы. Реактивная тяга. Жидкие или твердые топлива. Аэродинамические характеристики. И т.д.

PD>>Ядерное оружие было бы создано без Курчатова и Сахарова, и оно выглядело бы так же и работало так же.


Ш>Тоже неверно. Уже в момент рождения было предложено два варианта кострукции ядерного боеприпаса.


Опять ты сбиваешься на мелочи.

PD>>Иными словами, в науке и в технологии от личности немногое зависит.


Ш>Бред. И наука и техника несут на себе яркий отпечаток тех личностей, которые их творили.


Тебе не кажется , что использование таких аргументов не есть корректный спосбо дискутирования ? Отпечаток несут, но потом все неизбежно сглаживается при участии других ярких и не очень личностей, а в итоге получается то, что называется вектором развития.

PD>>Да, возможно, без Эйнштейна ОТО была бы создана лет на 20 позже. Но все равно была бы создана.


Ш>То же самое. Только вариативность больше. Просто потому, что больший простор для творчества.


With best regards
Pavel Dvorkin
Re[7]: Сухой остаток или нетленные ценности
От: Sinclair Россия https://github.com/evilguest/
Дата: 26.03.09 05:53
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Сомнительно. Я, конечно, не специалист по двигателям, но достаточно все же знаю химию и механику их. Там реально в этом плане ничего не изменилось со времен Форда.

А в интелах что-то изменилось со времен 4004?

PD>Ну-ну. Дело не в хитростях, а в том, что вы моделируете троичную логику на двоичных элементах, из-за этого приходится выкручиваться.

Не понимаю, каким образом nullable (имеется в виду, наверное, структурка Nullable<T>?) относится к троичной логике. И где бы пришлось меньше выкручиваться.
Можно пример кода, иллюстрирующего "выкручивание", в студию?

PD>??? Работает, конечно, но это лишь значит, что внутри SQL сервера она так же моделируется.

Что значит "моделируется"? Я не понимаю
PD>Кнута я читал еще так лет 20 назад. Ореола никакого нет. Просто я отметил, что двоичная система счисления не относится к числу нетленных ценностей, вот и все, что я хотел сказать.
А вот мне всё же кажется, что компьютеры после "переизобретения" один хрен стали бы двоичными. Уж очень это упрощает реализацию элементов.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[8]: Сухой остаток или нетленные ценности
От: Pavel Dvorkin Россия  
Дата: 26.03.09 07:14
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Сомнительно. Я, конечно, не специалист по двигателям, но достаточно все же знаю химию и механику их. Там реально в этом плане ничего не изменилось со времен Форда.

S>А в интелах что-то изменилось со времен 4004?

Нет, ничего

S>Не понимаю, каким образом nullable (имеется в виду, наверное, структурка Nullable<T>?) относится к троичной логике. И где бы пришлось меньше выкручиваться.


Если бы была троичная логика, то можно было бы создавать не экземпляры классов, а value.

int t = null;

то есть обычные числа представляются в двоичной системе нулями и единицами. а двойка — null. Это было бы еще понятнее, если бы был битовый тип

bit3 b1 = true;
bit3 b2 = false;
bit3 b3 = null;

или (на С++) NULL можно было бы иметь в качестве специального адреса, а 0 был бы просто адресом.


S>Можно пример кода, иллюстрирующего "выкручивание", в студию?


Необходимость иметь специальный класс и невозможность занесения в value.


PD>>??? Работает, конечно, но это лишь значит, что внутри SQL сервера она так же моделируется.

S>Что значит "моделируется"? Я не понимаю

Сочувствую

S>А вот мне всё же кажется, что компьютеры после "переизобретения" один хрен стали бы двоичными. Уж очень это упрощает реализацию элементов.


Хм. Скорее всего да, но 100% не уверен. Иногда упрощение реализации не есть самое важное. иногда другие факторы перевешивают.
With best regards
Pavel Dvorkin
Re[9]: Сухой остаток или нетленные ценности
От: Sinclair Россия https://github.com/evilguest/
Дата: 26.03.09 08:41
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Если бы была троичная логика, то можно было бы создавать не экземпляры классов, а value.

PD>int t = null;

PD>то есть обычные числа представляются в двоичной системе нулями и единицами. а двойка — null.

Павел, ты извини, но это бред. Вот у тебя система счисления по основанию 3, в ней цифры, допустим, 0,1,2.
Пусть, для простоты, слово (инт) состоит из трёх трит.
Сколько различных целых чисел ты сможешь в ней представить? Нарисуй табличку и посмотри, что получится.

PD>или (на С++) NULL можно было бы иметь в качестве специального адреса, а 0 был бы просто адресом.

То есть ради одного дополнительного значения к миллиардам уже и так представимых чисел ты решил в полтора раза увеличить расход площади кристалла?
И эти люди рассуждают об эффективности...

PD>Необходимость иметь специальный класс и невозможность занесения в value.

По-прежнему непонятно, какой именно "специальный класс" тут нужен. Наличие специального класса обусловлено исключительно языком. Никакого отношения к элементной базе это не имеет. Просто поражает, как люди могут браться рассуждать о профессионализме разработчиков, не имея представлений об элементарных основах.
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[10]: Сухой остаток или нетленные ценности
От: Pavel Dvorkin Россия  
Дата: 26.03.09 09:07
Оценка: :)
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Если бы была троичная логика, то можно было бы создавать не экземпляры классов, а value.

PD>>int t = null;

PD>>то есть обычные числа представляются в двоичной системе нулями и единицами. а двойка — null.

S>Павел, ты извини, но это бред.
Опять те же аргументы

S>Вот у тебя система счисления по основанию 3, в ней цифры, допустим, 0,1,2.

Пусть, для простоты, слово (инт) состоит из трёх трит.
S>Сколько различных целых чисел ты сможешь в ней представить? Нарисуй табличку и посмотри, что получится.

Смотря как представлять. Еще раз — для обычных целых чисел используются только значения 0 и 1. Значение 2 — для null. Тебя что, избыточность смущает ? А она тебя не смущает, когда в тип bool у тебя 8 бит используется ? Сколько можно было бы чисел представить 8 битами ? Аж 256. А используется только 2

Это раз. А теперь второе. Смотрим класс Nullable

public T Value { get; }

Итак, для int 32 бита сидит внутри. Да еще собственно переменная этого типа, ссылка. Итого потратили 64 бита (двоичных). А для

int t = null;

имеем 32 трита, что есть примерно 51 бит.

А если byte t = null, то всего-то 8 тритов. А у тебя 40 бит.

А если упакованный массив битов сделать (в стиле раннего Паскаля), то вообще не будет избыточности.

Другое дело, насколько это нужно, и будет ли суммарный эффект. Если любая переменная простого типа реально может быть null — имеет. Если же чистая арифметика, где null совсе не нужен (так ли — еще тоже вопрос, например, для вещественных переменных им можно бесконечность обозначить)) — то нет.


PD>>или (на С++) NULL можно было бы иметь в качестве специального адреса, а 0 был бы просто адресом.

S>То есть ради одного дополнительного значения к миллиардам уже и так представимых чисел ты решил в полтора раза увеличить расход площади кристалла?

См. выше.

S>И эти люди рассуждают об эффективности...


Эти люди рассуждают об эффективнсти в рамках существующей технологии. А в этом топике я лишь рассматриваю возможные варианты, отнюдь не предлагая их реализовать.

PD>>Необходимость иметь специальный класс и невозможность занесения в value.

S>По-прежнему непонятно, какой именно "специальный класс" тут нужен.

Nullable твой.

>Наличие специального класса обусловлено исключительно языком.


Да ну ? Реализуй мне занесение null в любую не-классовую переменную на любом из языков С, Паскаль, С#... Присвой специальное значение, так чтобы его можно было отличить от корректного числа.


>Никакого отношения к элементной базе это не имеет. Просто поражает, как люди могут браться рассуждать о профессионализме разработчиков, не имея представлений об элементарных основах.


Господи, ну хоть чепуху-то не городи.
With best regards
Pavel Dvorkin
Re[11]: поправка
От: Pavel Dvorkin Россия  
Дата: 26.03.09 09:09
Оценка:
Читать

PD>А если упакованный массив тритов сделать (в стиле раннего Паскаля), то вообще не будет избыточности.
With best regards
Pavel Dvorkin
Re: Сухой остаток или нетленные ценности
От: alpha21264 СССР  
Дата: 26.03.09 09:10
Оценка: +2 -1
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>В дискуссии, которая развернулась вокруг моего взгляда как химика на положение в ИТ, меня заинтересовала одна мысль. Попробую ее сформулировать.



PD>Ладно, это наука. Возьмем технологии. Если бы Дизель не родился, дизели все равно бы появились. Ракеты в СССР построили бы и без Королева, и они были бы такими же. Ядерное оружие было бы создано без Курчатова и Сахарова, и оно выглядело бы так же и работало так же.


Кха-кха...
Ты чаво?
Утверждаешь, что если бы Королев не родился, то мы все равно имели бы тот же самый "Восток-Союз"?!!!
А ты "Шаттл" видел? Ну ладно, не Шаттл, хотя бы "Сатурн-5" (подсказка — на топливо посмотри)?

Ага, ага Сахаровская многослойкка была бы такая же. Что-ж ее у американцев до сих пор нет?

Если сию аналогию притягивать к языкам программирования, то все языки состоят из одного и того-же — циклов и условий.

Течёт вода Кубань-реки куда велят большевики.
Re[11]: Сухой остаток или нетленные ценности
От: Pavel Dvorkin Россия  
Дата: 26.03.09 09:17
Оценка:
Кстати, можно бы еще проще. Оставить действительно троичную систему для всех тритов, кроме старшего. Его одного вполне хватит для обозначения null. Логика, правда, усложнится.
With best regards
Pavel Dvorkin
Re[12]: Сухой остаток или нетленные ценности
От: WFrag США  
Дата: 26.03.09 09:30
Оценка: +2
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Кстати, можно бы еще проще. Оставить действительно троичную систему для всех тритов, кроме старшего. Его одного вполне хватит для обозначения null. Логика, правда, усложнится.


А не проще ли один лишний бит использовать?
Re[11]: Сухой остаток или нетленные ценности
От: Sinclair Россия https://github.com/evilguest/
Дата: 26.03.09 10:06
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Смотря как представлять.
Ну вот как ты предполагаешь — так и представляй. Это же типа будет "меньше приседаний".

PD> Еще раз — для обычных целых чисел используются только значения 0 и 1. Значение 2 — для null. Тебя что, избыточность смущает ?

Конечно.
PD>А она тебя не смущает, когда в тип bool у тебя 8 бит используется ? Сколько можно было бы чисел представить 8 битами ? Аж 256. А используется только 2
Нет, здесь это оправдано быстродействием.

PD>Итак, для int 32 бита сидит внутри. Да еще собственно переменная этого типа, ссылка. Итого потратили 64 бита (двоичных).

Никаких ссылок там нет. Nullable — это не класс.

PD>А для

PD>int t = null;
PD>имеем 32 трита, что есть примерно 51 бит.
Да, у меня — 64.
PD>А если byte t = null, то всего-то 8 тритов. А у тебя 40 бит.
У тебя примерно 13, у меня — 16 бит. Чудеса выравнивания.

На твой DateTime уйдет 102 бита, на Nullable<DateTime>- 96.
На твой DateTimeOffset уйдет 152 бита, на Nullable<DateTimeOffset> — 96. Прогрессия понятна?
А теперь вернемся к мелким типам. Уникодовый Char у тебя занимает 25.3 бита; таким образом, "диэтиламид лизергиновой кислоты" сожрет 888бит, а в обычном дотнете — 560.

PD>А если упакованный массив битов сделать (в стиле раннего Паскаля), то вообще не будет избыточности.

Куда же это она денется?

PD>Другое дело, насколько это нужно, и будет ли суммарный эффект.

Суммарный эффект будет строго негативным.

PD>Если любая переменная простого типа реально может быть null — имеет.

На практике это не подтверждается. Nullable<T> встречается гораздо-гораздо реже, чем просто T.
PD>Если же чистая арифметика, где null совсе не нужен (так ли — еще тоже вопрос, например, для вещественных переменных им можно бесконечность обозначить)) — то нет.
Для вещественных переменных всё давно уже обозначили.

PD>Эти люди рассуждают об эффективнсти в рамках существующей технологии. А в этом топике я лишь рассматриваю возможные варианты, отнюдь не предлагая их реализовать.

Но ты считаешь, что человечество могло бы пойти по этому пути, если бы не роль личности в истории. Замечательно.

PD>Nullable твой.


>>Наличие специального класса обусловлено исключительно языком.

PD>Да ну ? Реализуй мне занесение null в любую не-классовую переменную на любом из языков С, Паскаль, С#... Присвой специальное значение, так чтобы его можно было отличить от корректного числа.
Павел, еще раз: возможность занести null в любую переменную связана исключительно с выбором авторов ЯП. Авторы C, паскаля и C# сделали свой выбор. Авторы SQL — свой. Ты, кстати, в курсе, что в типичных СУБД обеспечение признака Null — это ровно 1 бит на поле, независимо от его размера? А не полбита на каждый бит, как ты предлагаешь.
И это ты еще даже не задумался о том, как будет устроена арифметика этих "специальных чисел". Что куда будет переноситься, как должны себя вести операции типа null + 1 и так далее. Ты ведь схему обычного двоичного сумматора видел? Ну вот, а теперь представь, насколько она "упростится" для твоей логики.

И ты считаешь, что это — "безо всякого труда". Ну-ну.

PD>Господи, ну хоть чепуху-то не городи.

Перестану только после вас
... << RSDN@Home 1.2.0 alpha rev. 677>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[13]: Сухой остаток или нетленные ценности
От: Pavel Dvorkin Россия  
Дата: 26.03.09 10:07
Оценка: :)
Здравствуйте, WFrag, Вы писали:

WF>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Кстати, можно бы еще проще. Оставить действительно троичную систему для всех тритов, кроме старшего. Его одного вполне хватит для обозначения null. Логика, правда, усложнится.


WF>А не проще ли один лишний бит использовать?


Было. В М-220 старший бит слова (45 бит) назывался "признак числа". На арифметику не влиял, но не очищался арифметическими операциями, только явно. Так что использование числа с установленным признаком вело к его распространению, а потом это было для меня предупреждением, что я забыл инициализировать переменную.

А сейчас — как ты это представляешь ? 32-й бит добавить или же 31-й под это использовать ? Первое приведет бог знает к чему в плане адреса (не забывай, что сейчас указатель есть целое, по крайней мере в Win32). Второй подход возможен, но в троичной схеме проще, не надо дополнительного трита.
With best regards
Pavel Dvorkin
Re[14]: Сухой остаток или нетленные ценности
От: WFrag США  
Дата: 26.03.09 11:10
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>А сейчас — как ты это представляешь ? 32-й бит добавить или же 31-й под это использовать ? Первое приведет бог знает к чему в плане адреса (не забывай, что сейчас указатель есть целое, по крайней мере в Win32). Второй подход возможен, но в троичной схеме проще, не надо дополнительного трита.


Скорее, второе.

Ты уверен, что в троичной схеме не найдутся жеающие использовать «лишние» состояния для представления большего множества чисел, а не какого-то «бесполезного» (не вообще, а так, в конкретной ситуации) nullable? Такая же ситуация получится, как сейчас с битами.
Re[12]: Сухой остаток или нетленные ценности
От: Pavel Dvorkin Россия  
Дата: 26.03.09 11:12
Оценка:
Здравствуйте, Sinclair, Вы писали:


PD>> Еще раз — для обычных целых чисел используются только значения 0 и 1. Значение 2 — для null. Тебя что, избыточность смущает ?

S>Конечно.
PD>>А она тебя не смущает, когда в тип bool у тебя 8 бит используется ? Сколько можно было бы чисел представить 8 битами ? Аж 256. А используется только 2
S> Нет, здесь это оправдано быстродействием.

Не только.

PD>>Итак, для int 32 бита сидит внутри. Да еще собственно переменная этого типа, ссылка. Итого потратили 64 бита (двоичных).

S>Никаких ссылок там нет. Nullable — это не класс.

Сорри.Верно. Но и заплатили вы за это.

Nullable<byte> t = null;
0000001a lea eax,[ebp-4]
0000001d mov word ptr [eax],0

Nullable<byte> t = 100;
0000001a lea ecx,[ebp-4]
0000001d mov edx,64h
00000022 call 761DC0D0
00000027 nop

Чудес не бывает .

PD>>А для

PD>>int t = null;
PD>>имеем 32 трита, что есть примерно 51 бит.
S>Да, у меня — 64.
PD>>А если byte t = null, то всего-то 8 тритов. А у тебя 40 бит.
S>У тебя примерно 13, у меня — 16 бит. Чудеса выравнивания.

S>На твой DateTime уйдет 102 бита, на Nullable<DateTime>- 96.

S>На твой DateTimeOffset уйдет 152 бита, на Nullable<DateTimeOffset> — 96. Прогрессия понятна?
S>А теперь вернемся к мелким типам. Уникодовый Char у тебя занимает 25.3 бита;

А можно поинтересоваться, откуда это ? Я вроде о том, как хранить при этом символы, вообще не говорил.


PD>>А если упакованный массив битов сделать (в стиле раннего Паскаля), то вообще не будет избыточности.

S>Куда же это она денется?

TFNTNF....

триты и все. Массив (не С#, а C++) из tbool значений. Каждый трит есть одно значение

packed tbool t[8] ;// sizeof(t) == 1 tbyte (байт из тритов)

PD>>Другое дело, насколько это нужно, и будет ли суммарный эффект.

S>Суммарный эффект будет строго негативным.

Ты же сам согласился, что есть случаи, когда это неверно.

PD>>Если любая переменная простого типа реально может быть null — имеет.

S>На практике это не подтверждается. Nullable<T> встречается гораздо-гораздо реже, чем просто T.

С этим соглашусь. Хотя... А не является ли это следствием того, что до Явы мы просто не умели их описывать и шли на всякие трюки. Отсюда наша непривычка к ним. Пример с бесконечностью я приводил. Пример с NULL тоже. Можно и еще найти

PD>>Если же чистая арифметика, где null совсе не нужен (так ли — еще тоже вопрос, например, для вещественных переменных им можно бесконечность обозначить)) — то нет.

S>Для вещественных переменных всё давно уже обозначили.

Да, но как ? Исключили некоторые комбинации из числа тех, что могли бы изображать число, из чисел, обозначив ими бесконечность. Подход верный, но искусственный.

PD>>Эти люди рассуждают об эффективнсти в рамках существующей технологии. А в этом топике я лишь рассматриваю возможные варианты, отнюдь не предлагая их реализовать.

S>Но ты считаешь, что человечество могло бы пойти по этому пути, если бы не роль личности в истории. Замечательно.

Глупо. О личности здесь вообще речи нет. А пойти оно не могло — оно пробовало реально. Но не приняло.

PD>>Nullable твой.


>>>Наличие специального класса обусловлено исключительно языком.


. Антон, ну неужели ты не понимаешь, что никаким способом нельзя описать специальное значение и специальный адрес, если допустить , что все битовые комбинации могут изображать адрес или число. Странно. В C# пошли на Nullable. В С++ вообще ничего делать не стали, для чисел там нет null, а для адреса махнули рукой и решили, что 0 и есть NULL. В Win32 эта проблема решается на уровне ОС, а в ДОС никак не решалась — тебе не приходилось вешать компьютер из-за записи по NULL и порчи т.о. таблицы векторов прерываний ?

PD>>Да ну ? Реализуй мне занесение null в любую не-классовую переменную на любом из языков С, Паскаль, С#... Присвой специальное значение, так чтобы его можно было отличить от корректного числа.

S>Павел, еще раз: возможность занести null в любую переменную связана исключительно с выбором авторов ЯП. Авторы C, паскаля и C# сделали свой выбор.

Ладно. Предложи язык. в котором это возможно. Есть целая переменная, 32 бит (двоичная система). Какую комбинацию битов ты присвоишь, чтобы обозначить null ?

>Авторы SQL — свой. Ты, кстати, в курсе, что в типичных СУБД обеспечение признака Null — это ровно 1 бит на поле, независимо от его размера?


Не в курсе, но я сделал бы так же.

>А не полбита на каждый бит, как ты предлагаешь.


треть трита тогда уж

S>И это ты еще даже не задумался о том, как будет устроена арифметика этих "специальных чисел". Что куда будет переноситься, как должны себя вести операции типа null + 1 и так далее.


Конечно думал. Я же ясно написал (чуть позже, правда, но мог бы и дочитать, прежде чем писать)

PD>Логика, правда, усложнится


>Ты ведь схему обычного двоичного сумматора видел? Ну вот, а теперь представь, насколько она "упростится" для твоей логики.


S>И ты считаешь, что это — "безо всякого труда". Ну-ну.


PD>>Господи, ну хоть чепуху-то не городи.

S>Перестану только после вас

Нет, не удастся тебе. Я уже 100 раз тебе говорил — увы, но ты хороший специалист только в том, что реально существует.
With best regards
Pavel Dvorkin
Re[15]: Сухой остаток или нетленные ценности
От: Pavel Dvorkin Россия  
Дата: 26.03.09 11:16
Оценка:
Здравствуйте, WFrag, Вы писали:

WF>Ты уверен, что в троичной схеме не найдутся жеающие использовать «лишние» состояния для представления большего множества чисел, а не какого-то «бесполезного» (не вообще, а так, в конкретной ситуации) nullable? Такая же ситуация получится, как сейчас с битами.


Я ни в чем не уверен. Я не апологет троичной системы и не предлагаю на нее переходить. Я вполне понимаю, что тут возможны всякие разные ситуации, которые требуется обдумать, а я это делать не намерен. Я просто одно хотел сказать — она возможна.

И не только она. Вот как, по-твоему, понятие байт есть фундаментальное понятие или нет ? Именно тот байт, который == 8 бит, никакой троичной системы. Я подозреваю, что если бы компьютер изобрели китайтцы, то байт был бы == 16 бит, а то и 32.
With best regards
Pavel Dvorkin
Re[4]: Сухой остаток или нетленные ценности
От: Pavel Dvorkin Россия  
Дата: 26.03.09 11:29
Оценка: -1
Здравствуйте, Sinclair, Вы писали:

Один вопросик

S>Само по себе существование двойки как минимального основания систем счисления, и сведение всех вычислений к конструированию схем из "и-не" никуда не денется.


А ты уверен, что минимальным основанием системы счисления является двойка ? А не 1 ?

1111111 = 1*1^0 + 1*1^1 + 1*1^2...

Чем не позиционная система счисления ? Именуется единичной (унарной). Ее даже в школе изучают. Впрочем, может и в детском саду. называется "счет с помощью палочек". Было такое в детстве твоем ? Если не было, почитай вот это

http://mylearn.ru/kurs/13/525

Ну и Википедия

http://ru.wikipedia.org/wiki/%D0%A3%D0%BD%D0%B0%D1%80%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%81%D1%87%D0%B8%D1%81%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F

Унарная система счисления
Унарная система счисления (единичная система счисления) — не-позиционная (не-поместная), положительная суммарная целочисленная система счисления с основанием равным 1.

Может рассматриваться и как вырожденная позиционная (поместная) положительная целочисленная система счисления с основанием равным 1.

P.S. Я ее в качестве основы для компьютеров не предлагаю
With best regards
Pavel Dvorkin
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.