Re[69]: Не понял
От: Mamut Швеция http://dmitriid.com
Дата: 21.05.12 15:46
Оценка:
M>>А, ну да. Мы уже ВНЕЗАПНО весь проект DSL'ями заменили, ага-ага.
WH>А почему нет?

Потому что вокруг нас реальный мир, а не сферовакуумный.

M>>Ога. Может, ты дашь хоть одну ссылку на подтверждение этого «факта»?

WH>Я тут уже не один раз код показывал.
WH>Re[12]: Языки общего назначения не имеют смысла!
Автор: WolfHound
Дата: 09.04.12


В случае, если разница — в 100 раз, уже можно думать, что да, это было бы сложнее писать/поддерживать.


Я же говорю, ты изначально видишь во всех врагов и не способен понять, что тебе пишут.

M>>Что генерируется автоматически? Подсветка синтаксиса и дебаггинг для DSL'я? Ну ну. Это в какой такой сферовакуумной вселенной так происходит?

WH>Это в реальности происходит.

Где?

M>>Да ты что? То, что он разворачивается — как ты там говоришь? — в 10-100 раз больше кода, то ни строчки этого кода тестировать не надо?

WH>Тестировать надо только прикладную логику.

Тестируем. Кто доказывает корректность генерируемого кода?

M>>Ты так и не ответил про то, кто и как гарантирует правильность сгенерированного кода. Что в итоге «непонятных адепту динамической типизации» проверок и оптимизаций не сгенерируется код, который логически неверен? Что в итоге расширения/изменения существующего DSL'я не навернется — именно логически — сгенерированный код.

WH>Еще раз. Если ошибка будет в генераторе кода, эта ошибка будет везде.
WH>И ее сразу обнаружат и исправят.

Нет, она необязательно будет везде.

M>>>>Дададада. В этом месте ты начинаешь вещать про криворуких уродов, которые пользуются не теми инструментами. Предсказуемо и неинтересно. Я не живу в сферовакуумном мире.

WH>>>И ты мне тут на полном серьезе хочешь заявить что авторы второго ДСЛ без ДСЛ сделали бы конфетку?
WH>>>Я тебя правильно понял?
M>>Я не понял твоего вопроса.
WH>А что тут не понятного?
WH>Ты занимаешься противопоставлением ДСЛ и рукопашного кода.
WH>В данном случае ты размахиваешь тем, что что-то не осилил ДСЛ.
WH>Значит, ты намекаешь на то, что они осилят решение на обычном языке.

Теперь понятно. Нет, я ни на что не намекаю. Я говорю то, что говорю: у меня перед глазами два DSL с разными по сложности затратами. Возможно, второй вполне можно было решить соглашениями об API на уровне документации.

M>>- что для DSL'я все подряд генерируется автоматически

WH>Возьми да посмотри современные инструменты.

Покажи мне эти современные инструменты.

M>>[1] Это верно только если речь идет о коде, написанном на этом DSL'е, потому что вся инфраструктура для поддержки работы этого DSL'я — это такая же система, кем-то написанная, которую надо исправлять, поддерживать, изменять, интегрировать и т.п.

WH>Только в ней кода кот наплакал.

Зависит от DSL, зависит от уровня инструментации, зависит от системы/систем, в которые он интегрируется.

M>>[2] Опять же — верно только при условии, что мы говорим только о коде. Только вот кто доказывает корректность сгенерированного кода?

WH>Довести генерированный код до рабочего состояния гораздо проще, чем рукопашный.

Ты опять не отвечаешь на заданный вопрос.

WH>А если в исходник на ДСЛ добавить что типа такого LetterCharacter = [Lu, Ll, Lt, Lm, Lo, Nl] то там такое начнется


Юоавили. Двльше что. Кто гарантирует корректность сгенерированного кода?


dmitriid.comGitHubLinkedIn
Re[70]: Не понял
От: WolfHound  
Дата: 21.05.12 17:23
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Потому что вокруг нас реальный мир, а не сферовакуумный.

Понятно. Сказать нечего.

M>

M>В случае, если разница — в 100 раз, уже можно думать, что да, это было бы сложнее писать/поддерживать.

M>Я же говорю, ты изначально видишь во всех врагов и не способен понять, что тебе пишут.
Способен. Мне пытаются втереть, что ДСЛ имеют смысл только если кода в 100 раз меньше.
Но он имеет смысл даже когда кода всего в два раза меньше.
А иногда ДСЛ имеет смысл даже тогда когда генератор занимает столько же, сколько генерируемый код. Ибо занимается такими оптимизациями, что реками их не сделать. Особенно учитывая, что малейшие изменения модели могут изменить весь генерируемый код.

M>Тестируем. Кто доказывает корректность генерируемого кода?

Так если генерируемый код не правильный то ты никогда не добьёшься чтобы прикладная логика работала правильно.

WH>>Еще раз. Если ошибка будет в генераторе кода, эта ошибка будет везде.

WH>>И ее сразу обнаружат и исправят.
M>Нет, она необязательно будет везде.
Еще ни разу не видел ошибку в кодогенераторе которая не отсвечивала бы по всему генерируемому коду.
А даже если такие иногда и встречаются, то в рукописном коде все ошибки такие.

M>Теперь понятно. Нет, я ни на что не намекаю. Я говорю то, что говорю: у меня перед глазами два DSL с разными по сложности затратами. Возможно, второй вполне можно было решить соглашениями об API на уровне документации.

Та говоришь что люди не осилили сделать ДСЛ.
И к чему ту это вообще говоришь?

M>Юоавили. Двльше что.

Спокойней.

M>Кто гарантирует корректность сгенерированного кода?

Сначала ответь, кто гарантирует корректность написанного руками кода?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[22]: Языки общего назначения не имеют смысла!
От: VladD2 Российская Империя www.nemerle.org
Дата: 21.05.12 17:27
Оценка: -2 :)
Здравствуйте, Mamut, Вы писали:

M>Поблема такая же, как и с Н1:

M>- сделать хоть один killer-проект на этом

А неверующий Фома банально не посмотрит на него.

M>- сделать один killer-туториал по этому


А он не прочтет его.

M>- документация


А он скажет, что она плохая и вообще не так выглядит.

M>- популяризация


Вот только и остается. И то периодически появится идиот с лозунгом "не нужно" и воплями "достали своей рекламой".

Потом без бабла и мощного ПиАр-отдела — это не простая задача.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[71]: Не понял
От: Mamut Швеция http://dmitriid.com
Дата: 21.05.12 17:46
Оценка:
M>>Потому что вокруг нас реальный мир, а не сферовакуумный.
WH>Понятно. Сказать нечего.

Ну, сказать нечего тебе. Ты рассказываешь небылицы про то все радужно, как все автоматически генерируется, как все абсолютно инструменты заменены ДСЛями и т.п. Только все это сказки, потому что в реально мире такого нет, или такого исчезающе мало. Вот, ты даже мой вопрос про инструменты решил полностью поскипать.

M>>Тестируем. Кто доказывает корректность генерируемого кода?

WH>Так если генерируемый код не правильный то ты никогда не добьёшься чтобы прикладная логика работала правильно.


WH>>>Еще раз. Если ошибка будет в генераторе кода, эта ошибка будет везде.

WH>>>И ее сразу обнаружат и исправят.
M>>Нет, она необязательно будет везде.
WH>Еще ни разу не видел ошибку в кодогенераторе которая не отсвечивала бы по всему генерируемому коду.
WH>А даже если такие иногда и встречаются, то в рукописном коде все ошибки такие.

M>>Теперь понятно. Нет, я ни на что не намекаю. Я говорю то, что говорю: у меня перед глазами два DSL с разными по сложности затратами. Возможно, второй вполне можно было решить соглашениями об API на уровне документации.

WH>Та говоришь что люди не осилили сделать ДСЛ.

В этом месте ты начинаешь вещать про криворуких уродов, которые пользуются не теми инструментами.


Сказал ты не так грубо, но реакция предсказана еще пару сообщений тому назад.

WH>И к чему ту это вообще говоришь?


К тому, что ты сказочник, живущий в сферовакуумном мире, где все прекрасно и замечательно.

M>>Юоавили. Двльше что.

WH>Спокойней.

Это было слово «добавили». У меня сегодня проблема с попаданием по нужным клавишам.

M>>Кто гарантирует корректность сгенерированного кода?

WH>Сначала ответь, кто гарантирует корректность написанного руками кода?

Тесты и еще раз тесты.


З.Ы.

Проигнорировано тобой:

M>>Что генерируется автоматически? Подсветка синтаксиса и дебаггинг для DSL'я? Ну ну. Это в какой такой сферовакуумной вселенной так происходит?
WH>Это в реальности происходит.

Где?

M>>- что для DSL'я все подряд генерируется автоматически
WH>Возьми да посмотри современные инструменты.

Покажи мне эти современные инструменты.



dmitriid.comGitHubLinkedIn
Re[23]: Языки общего назначения не имеют смысла!
От: Mamut Швеция http://dmitriid.com
Дата: 21.05.12 17:58
Оценка: +1
Специально оставляю все цитаты, это не оверквотинг

M>>Поблема такая же, как и с Н1:

M>>- сделать хоть один killer-проект на этом
VD>А неверующий Фома банально не посмотрит на него.

M>>- сделать один killer-туториал по этому

VD>А он не прочтет его.

M>>- документация

VD>А он скажет, что она плохая и вообще не так выглядит.

M>>- популяризация

VD>Вот только и остается. И то периодически появится идиот с лозунгом "не нужно" и воплями "достали своей рекламой".

С таким подходом ваш продукт никогда даром не нужен будет. Более того, твоя позиция по killer-проекту давно известна:

http://rsdn.ru/forum/philosophy/1690584.aspx



Надеюсь на Nemerle никогда не будет создано killer app-ов, так как надесю, что Nemerle не станет очередным экзотическим извращением.


И т.п.

Аналогично про документацию. Если ее не будут читать, значит, ее не надо писать? Если кто-то не прочтет туториала по языку, эти туториалы не надо писать?

Я к Немерле подхожу с периодичностью раз в год-полтора. Я до сих пор не знаю, зачем он нужен. Сейчас хоть вменяемые вводные статьи появились ().


VD>Потом без бабла и мощного ПиАр-отдела — это не простая задача.


Естественно. Но это значит, что надо сидеть, сложа руки, и ничего не делать? Ну или можно дождаться, как Ruby, пока что-то не напишет какой-нибудь RoR, который введет язык в мейнстрим.


dmitriid.comGitHubLinkedIn
Re[72]: Не понял
От: WolfHound  
Дата: 21.05.12 18:28
Оценка:
Здравствуйте, Mamut, Вы писали:

M>Ну, сказать нечего тебе. Ты рассказываешь небылицы про то все радужно, как все автоматически генерируется, как все абсолютно инструменты заменены ДСЛями и т.п. Только все это сказки, потому что в реально мире такого нет, или такого исчезающе мало. Вот, ты даже мой вопрос про инструменты решил полностью поскипать.

Так ты даже на немерле не посмотрел.
В нем это в большинстве случаев само происходит.

M>

M>В этом месте ты начинаешь вещать про криворуких уродов, которые пользуются не теми инструментами.


M>Сказал ты не так грубо, но реакция предсказана еще пару сообщений тому назад.
А что еще можно ожидать, если ты сам говоришь, что они не осилили задачу?
И причем тут ДСЛ совершенно не ясно.
Ибо где гарантия, что они бы ее без ДСЛ осилили?

M>>>Кто гарантирует корректность сгенерированного кода?

WH>>Сначала ответь, кто гарантирует корректность написанного руками кода?
M>Тесты и еще раз тесты.
Вот и тут тесты. Только их надо намного меньше.

Плюс не озвереешь тестами вот такой код проверять:
  Скрытый текст
Вместо вопросов там юникодные символы.
      when (if (c >= '?') 
      {
        if (c >= '?') 
        {
          if (c >= '?') 
          {
            if (c >= '?') 
            {
              if (c >= '?') 
              {
                if (c >= '?') 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }
                }; else 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }
              }; else 
              {
                if (c >= '?') 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }
                }; else 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }
              }
            }; else 
            {
              if (c >= '?') 
              {
                if (c >= '?') 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }
                }; else 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }
              }; else 
              {
                if (c >= '?') 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }; else 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }
              }
            }
          }; else 
          {
            if (c >= '?') 
            {
              if (c >= '?') 
              {
                if (c >= '?') 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }
                }; else 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }
              }; else 
              {
                if (c >= '?') 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }; else 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }
              }
            }; else 
            {
              if (c >= '?') 
              {
                if (c >= '?') 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }
                }; else 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }
              }; else 
              {
                if (c >= '?') 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }; else 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }
              }
            }
          }
        }; else 
        {
          if (c >= '?') 
          {
            if (c >= '?') 
            {
              if (c >= '?') 
              {
                if (c >= '?') 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }
                }; else 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }
              }; else 
              {
                if (c >= '?') 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }
                }; else 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }
              }
            }; else 
            {
              if (c >= '?') 
              {
                if (c >= '?') 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }
                }; else 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }
              }; else 
              {
                if (c >= '?') 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }; else 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }
              }
            }
          }; else 
          {
            if (c >= '?') 
            {
              if (c >= '?') 
              {
                if (c >= '?') 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }
                }; else 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }
              }; else 
              {
                if (c >= '?') 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }; else 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }
              }
            }; else 
            {
              if (c >= '?') 
              {
                if (c >= '?') 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }
                }; else 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }
              }; else 
              {
                if (c >= '?') 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }; else 
                {
                  if (c >= '?') 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      c <= '?'
                    }
                  }; else 
                  {
                    if (c >= '?') 
                    {
                      c <= '?'
                    }; else 
                    {
                      if (c >= '?') 
                      {
                        c <= '?'
                      }; else 
                      {
                        c <= '?'
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }; else 
      {
        false
      }) goto l4687 [1];;

Меж тем при создании ДСЛ генерация такой лапши отлаживается один раз.
После чего эта лапша очень много раз генерируется без единой ошибки.

M>Проигнорировано тобой:

Да чуть менее чем все языковые фреймворки.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[61]: Какие порядки?!
От: Wolverrum Ниоткуда  
Дата: 21.05.12 19:04
Оценка:
Здравствуйте, WolfHound, Вы писали:

W>>Имхо, что-то с методикой подсчета и сравнения не то.

WH>С ней все нормально.
Отношение КодДСП/ГенереныйКод асимптотически к нулю стремится. Очень похоже, где-то лажа в методе, не находишь?
Re[62]: Какие порядки?!
От: WolfHound  
Дата: 21.05.12 19:08
Оценка:
Здравствуйте, Wolverrum, Вы писали:

WH>>С ней все нормально.

W>Отношение КодДСП/ГенереныйКод асимптотически к нулю стремится. Очень похоже, где-то лажа в методе, не находишь?
Генеренный код обычно примерно равен рукописному.
Так что не нахожу.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[68]: Не понял
От: Sinclair Россия https://github.com/evilguest/
Дата: 21.05.12 21:58
Оценка: +3
Здравствуйте, Mamut, Вы писали:

M>>>В случае, если разница в 10 раз, нас мало интересует, во что он там разворачивается.

WH>>Разница на порядок ерунда.
WH>>Подумаешь, проект будут делать 10-100 человеколет, а не один.
WH>>Фигня какая.

M>А, ну да. Мы уже ВНЕЗАПНО весь проект DSL'ями заменили, ага-ага.

У вас проблема в том, что ты под DSL имеешь в виду неопределённый артикль. Отсюда и сомнения. А он имеет в виду артикль определённый — то есть DSL, построенный не вручную, из глины и навоза, а при помощи DSL для DSL. Тогда всё окружение и полный development experience доступны из коробки.

Это предельный переход второго порядка. То есть сначала ты понимаешь, что DSL позволяет решить прикладную задачу в 2 раза дешевле. Но если сам DSL дорогой, то ты не станешь им заморачиваться, кроме случаев очень дорогих прикладных задач.
А если ты имеешь DSL2, который позволяет в десять раз сократить стоимость написания DSL, то DSL резко становится выгодным даже на маленьких задачах.
Предполагается, что в DSL2 тоже есть все средства полного development experience — отладка, тестирование, и прочее. Таким образом, ты относительно дешёво отлаживаешь удочку, при помощи которой ловишь гарантированно корректную рыбу.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[69]: Не понял
От: Mamut Швеция http://dmitriid.com
Дата: 22.05.12 11:48
Оценка:
M>>А, ну да. Мы уже ВНЕЗАПНО весь проект DSL'ями заменили, ага-ага.
S>У вас проблема в том, что ты под DSL имеешь в виду неопределённый артикль. Отсюда и сомнения. А он имеет в виду артикль определённый — то есть DSL, построенный не вручную, из глины и навоза, а при помощи DSL для DSL. Тогда всё окружение и полный development experience доступны из коробки.

Ну так я про это говор много раз. Что Wolfhound имеет в виду некий сферовакуумный мир, где бегают пони и какают бабочками. Я, как и большинство людей, живу в реальном мире, где вся эта «изкаробка» недоступна в принципе.

S>Это предельный переход второго порядка. То есть сначала ты понимаешь, что DSL позволяет решить прикладную задачу в 2 раза дешевле. Но если сам DSL дорогой, то ты не станешь им заморачиваться, кроме случаев очень дорогих прикладных задач.

S>А если ты имеешь DSL2, который позволяет в десять раз сократить стоимость написания DSL, то DSL резко становится выгодным даже на маленьких задачах.
S>Предполагается, что в DSL2 тоже есть все средства полного development experience — отладка, тестирование, и прочее. Таким образом, ты относительно дешёво отлаживаешь удочку, при помощи которой ловишь гарантированно корректную рыбу.

Дело в том, что это только предполагается. Wolfhound упорно говорит об этом, как о свершившемся факте


dmitriid.comGitHubLinkedIn
Re[73]: Не понял
От: Mamut Швеция http://dmitriid.com
Дата: 22.05.12 12:04
Оценка:
M>>Ну, сказать нечего тебе. Ты рассказываешь небылицы про то все радужно, как все автоматически генерируется, как все абсолютно инструменты заменены ДСЛями и т.п. Только все это сказки, потому что в реально мире такого нет, или такого исчезающе мало. Вот, ты даже мой вопрос про инструменты решил полностью поскипать.
WH>Так ты даже на немерле не посмотрел.
WH>В нем это в большинстве случаев само происходит.

А ну да. Немерле. Который, как нам известно со слов самих разработчиков, в природе существует чуть менее, чем полностью (Н1 на такое не тянет, Н2 в разработке). И который невозможно будет использовать в 100% проектов, которые не используют .NET. Но да, ты что, это такие мелочи.

M>>

M>>В этом месте ты начинаешь вещать про криворуких уродов, которые пользуются не теми инструментами.


M>>Сказал ты не так грубо, но реакция предсказана еще пару сообщений тому назад.
WH>А что еще можно ожидать, если ты сам говоришь, что они не осилили задачу?
WH>И причем тут ДСЛ совершенно не ясно.
WH>Ибо где гарантия, что они бы ее без ДСЛ осилили?

Ага. Wolfhound в своем репертуаре. Главное изменить тему обсуждения — авось никто не заметит.

Я утверждаю, что твои пламенные речи про то, что поддержка DSL'я (не только кода, написанного на DSL'е, а всей инфраструктуры для этого DSL'я) прям-таки намного легче, чем альтернативные решения не имеют подтверждения, кроме твоих плменных речей, которые не имеют подтверждения кроме...

Я не утверждаю, что они осилили бы решение без DSL. Я утверждаю ровно одно: у нас два DSL'я. Один поддерживать легко (пока что легко, потому что есть люди, которые писали компилятор, и которые знают, как он работает) второй — нет. Первый подтверждает твою точку зрения, второй — нет.

Задачу они осилили. DSL — вот он. Есть и используется. Только вот ВНЕЗАПНО его поддержка не «в 10-100 раз легче».

M>>>>Кто гарантирует корректность сгенерированного кода?

WH>>>Сначала ответь, кто гарантирует корректность написанного руками кода?
M>>Тесты и еще раз тесты.
WH>Вот и тут тесты. Только их надо намного меньше.

WH>Плюс не озвереешь тестами вот такой код проверять:

WH>
  Скрытый текст
WH>Вместо вопросов там юникодные символы.


для этого есть инструменты типа PropEr

WH>Меж тем при создании ДСЛ генерация такой лапши отлаживается один раз.


Приведенный код — тупая генерация кода. Что не иллюстрирует, как ты там говорил? «кучу проверок при компиляции ДСЛ». А если взяться за оптимизацию генерируемого кода... . В общем, пока что между «есть ДСЛ» и «он нам нагенерит!!!одинодинодин» ты постоянно пропускаешь шаг проверки валидности окда. Нет, если это простейший DSL, который тупо генерит if'ы на проверку юникодных символов, это да, там можно чуть ли не ручками проверить.

Но тут же рядом ты приводишь язык
Автор: WolfHound
Дата: 07.04.12
, на разработку которого потрачен год работы. Но да, ты что, этот компилятор не надо ни поддерживать, ни фиксить, ни проверять на правильность работы — оно ВСЕ САМО!!!!

M>>Проигнорировано тобой:

WH>Да чуть менее чем все языковые фреймворки.

Какие? Заметь, это в третий раз задаю вопрос. Такое впечатление, что ты просто не знаешь ответа на этот вопрос. Заметь, ты говоришь про фреймворки во множественном числе. То есть одним Немерле (который вообще только находится в разработке) обойтись сложно.


dmitriid.comGitHubLinkedIn
Re[74]: Не понял
От: WolfHound  
Дата: 22.05.12 13:16
Оценка:
Здравствуйте, Mamut, Вы писали:

M>А ну да. Немерле. Который, как нам известно со слов самих разработчиков, в природе существует чуть менее, чем полностью (Н1 на такое не тянет,

Н1 много чего тянет.

M>Н2 в разработке). И который невозможно будет использовать в 100% проектов, которые не используют .NET. Но да, ты что, это такие мелочи.

Это твои домыслы.
Уже много раз говорилось что Н2 не будет привязан к платформе.

M>Ага. Wolfhound в своем репертуаре. Главное изменить тему обсуждения — авось никто не заметит.

Это не изменение темы.
Просто ты пытаешься на одном примере доказать что ДСЛ не работают.

M>Я утверждаю, что твои пламенные речи про то, что поддержка DSL'я (не только кода, написанного на DSL'е, а всей инфраструктуры для этого DSL'я) прям-таки намного легче, чем альтернативные решения не имеют подтверждения, кроме твоих плменных речей, которые не имеют подтверждения кроме...

Так ты же сам сказал, что у других ребят проблем нет.
У меня проблем нет.
Еще у кучи народа проблем нет.
А один перец не осилил.

M>для этого есть инструменты типа PropEr

Название не гуглится.

M>Приведенный код — тупая генерация кода. Что не иллюстрирует, как ты там говорил? «кучу проверок при компиляции ДСЛ».

Конечно, не иллюстрирует.
Ибо проверки выполняются в другом месте.

M>А если взяться за оптимизацию генерируемого кода... .

Сказал человек, который ни разу в жизни не писал оптимизацию.

M>В общем, пока что между «есть ДСЛ» и «он нам нагенерит!!!одинодинодин» ты постоянно пропускаешь шаг проверки валидности окда. Нет, если это простейший DSL, который тупо генерит if'ы на проверку юникодных символов, это да, там можно чуть ли не ручками проверить.

Это ты не понимаешь что все ДСЛ и их оптимизации тупейшие.
Просто по тому, что это все делается маленькими шагами.
Каждый, из которых отлаживается отдельно.
После чего куча шагов склеивается.

M>Но тут же рядом ты приводишь язык
Автор: WolfHound
Дата: 07.04.12
, на разработку которого потрачен год работы. Но да, ты что, этот компилятор не надо ни поддерживать, ни фиксить, ни проверять на правильность работы — оно ВСЕ САМО!!!!

1)Там, на суровый ресерч потрачено год работы.
2)Еще один год потрачен на разработку одного анализа на обычном языке. Причем он получился медленней.
3)Эта ссылка как раз демонстрирует выигрыш в несколько десятков раз. Ибо на этом языке потом еще кучу анализов написали.

M>Какие? Заметь, это в третий раз задаю вопрос. Такое впечатление, что ты просто не знаешь ответа на этот вопрос. Заметь, ты говоришь про фреймворки во множественном числе. То есть одним Немерле (который вообще только находится в разработке) обойтись сложно.

Немерле уже давно как релиз.
Но и кроме него проектов хватает.
http://www.eclipse.org/Xtext/
http://www.jetbrains.com/mps/
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[59]: Языки общего назначения не имеют смысла!
От: vdimas Россия  
Дата: 23.05.12 02:16
Оценка:
Здравствуйте, SleepyDrago, Вы писали:

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


Ну так генерится и визуально наблюдается. Без графического представления никак.
Re[60]: Языки общего назначения не имеют смысла!
От: FragMent  
Дата: 23.05.12 11:02
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, SleepyDrago, Вы писали:


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


V>Ну так генерится и визуально наблюдается. Без графического представления никак.

Упрощенно маршрут проектирования цифровой схемы выглядит так:
1. Текст на Verilog или VHDL
2. Программа синтеза генерирует Verilog/VHDL нетлист (текстовый файл, содержащий библиотечные элементы и связи между ними)
3. Программа автоматического размещения генерирует распложение элементов на будущем кристалле.
4. Программа автоматической трассировки генерирует связи между ячейками.
5. Программы физической верификации проверяют правильность шага 3 и 4.

На любом из этапов 2-4 ты можешь посмотреть результаты в графическом виде, но особого смысла это не имеет.
Как и программисту в большинстве случаев не имеет смысла смотреть в ассемблерный код после компилятора — даже если что-то там не устраивает,
ты будешь менять программу на языке высокого уровня, а не латать код по живому.
Так и цифровой дизайнер будем изменять verilog-код и генерирующие скрипты, а не сгенерированную из нетлиста схему электрическую.

Для примера, можешь попробовать найти что-то кроме кода на http://opencores.org/

С аналоговым дизайном это пока не так. Хотя и там понемногу ситуация меняется. Появляются коммерческие решения, в которых аналоговые блоки описываются уравнениями, из которых генерируются нетлисты.
Re[61]: Языки общего назначения не имеют смысла!
От: vdimas Россия  
Дата: 25.05.12 09:10
Оценка:
Здравствуйте, FragMent, Вы писали:

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

FM>1. Текст на Verilog или VHDL


Это возможно только в "голой" цифровой логике из-за ее однородности. Я же говорю, текст прижился именно на таких однородных операциях, типа сплошного "copy&paste" и прочего глобального рефакторинга. Еще во времена PCAD если надо было выполнить какое-либо однородное переименование или массовое переподключение на другие шины — то делали это в текстовых исходниках, а не в графике. Но это менее 1% от всего разнообразия современной схемотехники. Сегодня одних только способов организовать емкости и индуктивности десятки, помимо дискретных элементов (на гигагерцовых диапазонах). А эти вещи только ручками.

FM>3. Программа автоматического размещения генерирует распложение элементов на будущем кристалле.


На печатной плате ВСЕГДА приходится поправлять расположение.

FM>4. Программа автоматической трассировки генерирует связи между ячейками.


ВСЕГДА приходится делать ревью трассировки и доводить вручную. Эта операция итеративная по кругу с предыдущей. Т.е. трассировка во многом управляет расположением и наоборот.

FM>5. Программы физической верификации проверяют правильность шага 3 и 4.


Это и так понятно, на то оно и CASE.

А взять сложную схему с многообразием технологий (а не только одну булевскую логику)... я с трудом представляю как разбираться в принципиальной схеме без графического представления. Ты банально не поймешь принцип работы схемы, если там кол-во элементов перевалит за единицы десятков. Если же я не прав, просьба привести примеры, где бы в тексте разнообразная электроника смотрелась бы лучше. (Может я и не прав и сильно отстал за последние годы, когда уже не занимаюсь этим).

FM>Для примера, можешь попробовать найти что-то кроме кода на http://opencores.org/


Одна цифровая логика?

FM>С аналоговым дизайном это пока не так. Хотя и там понемногу ситуация меняется. Появляются коммерческие решения, в которых аналоговые блоки описываются уравнениями, из которых генерируются нетлисты.


Есть примеры достаточно сложных схем в текстовом виде с адаптивными фильтрами, умножителями (сигналов и частот), ФАПЧ и т.д.?

В графическом виде в самую сложную и разнообразную по технологиям схему можно "воткнуть" за считанные минуты. Мне интересно сравнить с текстом.
Re[62]: Языки общего назначения не имеют смысла!
От: FragMent  
Дата: 26.05.12 13:16
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Здравствуйте, FragMent, Вы писали:


V>Не знаю, как там с проектированием кристаллов, но по многолетнему опыту проектирования схем и печатных плат на дискретных элементах:


FM>>1. Текст на Verilog или VHDL


V>Это возможно только в "голой" цифровой логике из-за ее однородности. Я же говорю, текст прижился именно на таких однородных операциях, типа сплошного "copy&paste" и прочего глобального рефакторинга. Еще во времена PCAD если надо было выполнить какое-либо однородное переименование или массовое переподключение на другие шины — то делали это в текстовых исходниках, а не в графике. Но это менее 1% от всего разнообразия современной схемотехники. Сегодня одних только способов организовать емкости и индуктивности десятки, помимо дискретных элементов (на гигагерцовых диапазонах). А эти вещи только ручками.


И я и SleepyDrago специально оговаривали что речь идет о цифровых схемах.
Код процессора не более однороден, чем код на обычных языках программирования (с их циклами, условными операторами и вызовами функций). Ты же не используешь C# вместо ДРАКОНА только из за сплошного "copy&paste" и прочего глобального рефакторинга?
FM>>3. Программа автоматического размещения генерирует распложение элементов на будущем кристалле.

V>На печатной плате ВСЕГДА приходится поправлять расположение.


FM>>4. Программа автоматической трассировки генерирует связи между ячейками.


V>ВСЕГДА приходится делать ревью трассировки и доводить вручную. Эта операция итеративная по кругу с предыдущей. Т.е. трассировка во многом управляет расположением и наоборот.

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

FM>>5. Программы физической верификации проверяют правильность шага 3 и 4.


V>Это и так понятно, на то оно и CASE.


V>А взять сложную схему с многообразием технологий (а не только одну булевскую логику)... я с трудом представляю как разбираться в принципиальной схеме без графического представления. Ты банально не поймешь принцип работы схемы, если там кол-во элементов перевалит за единицы десятков. Если же я не прав, просьба привести примеры, где бы в тексте разнообразная электроника смотрелась бы лучше. (Может я и не прав и сильно отстал за последние годы, когда уже не занимаюсь этим).

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

FM>>Для примера, можешь попробовать найти что-то кроме кода на http://opencores.org/


V>Одна цифровая логика?

Да, учитывая что цифра сейчас самый распространенный тип дизайна.
FM>>С аналоговым дизайном это пока не так. Хотя и там понемногу ситуация меняется. Появляются коммерческие решения, в которых аналоговые блоки описываются уравнениями, из которых генерируются нетлисты.

V>Есть примеры достаточно сложных схем в текстовом виде с адаптивными фильтрами, умножителями (сигналов и частот), ФАПЧ и т.д.?

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


И если будет нормальный инструмент позволяющий переводить формулы в схемы с гибкой настройкой конфигурации (тип фильтра, power/area/noise margin etc) с учетом используемой технологии, то вполне им вполне можно будет пользоваться для ускорения дизайна.
Такой подход предлагала Magma Design Automation.
Сейчас их сайт почему-то лежит, но был у них white paper, где они таким способом разработали LDO (low dropout regulator) — чисто аналоговую схему. К сожалению я не успел попробовать подход Magma da — их недавно приобрел Synospys.
V>В графическом виде в самую сложную и разнообразную по технологиям схему можно "воткнуть" за считанные минуты. Мне интересно сравнить с текстом.
В графическом виде ты получишь:
1. Проблему, если поставщик схемы не имеет версии для твоего САПР-а
2. Отсутствие diff
3. Отсутствие version control
4. Сотни связей для сложного блока.
5. Слабую интеоперабельность между различными тулзами (только не надо про edif )

Повторюсь. Цифровая схемотехника очень быстро упёрлась в ограничение графического представления и в настоящий момент полностью перешла на текстовый формат.
Аналоговый дизайн еще использует графическое представление, но активно исследует возможности ухода от него. У меня половина блоков имеют дополнительное описание на аналоговом варианте HDL под названием verilog-a (очень удобно для ускорения моделирования).
Re: Языки общего назначения не имеют смысла!
От: Andrei N.Sobchuck Украина www.smalltalk.ru
Дата: 28.05.12 06:04
Оценка:
Здравствуйте, WolfHound, Вы писали:

btw, Scala-Virtualized
Я ненавижу Hibernate
Автор: Andrei N.Sobchuck
Дата: 08.01.08
!
Re[61]: Языки общего назначения не имеют смысла!
От: SleepyDrago Украина  
Дата: 28.05.12 08:08
Оценка:
Здравствуйте, FragMent, Вы писали:

...
FM>ты будешь менять программу на языке высокого уровня, а не латать код по живому.
...
FM>С аналоговым дизайном это пока не так. Хотя и там понемногу ситуация меняется.

у меня был реальный анекдот: мы делали sram память. И в одном из тестовых запусков обнаружили что и немцы (как заказчик и фаб) и мы профукали контакт торчащий из подложки. Причем когда заметили шаблон подложки уже был изготовлен, а контактов уже сгенерен. Дурное дело не хитрое — поправили шаблон жалко было запуск срывать. Работало Так что латать можно если не в космос летит. Имхо vdimas рассуждает исходя из плат и наводок — там все еще вуду и шаманы рулят открыто. В фабричных кристаллах уже все — поезд ушел. Аналоговые вещи типа sram делают избранные шаманы и то как они это делают достоянием общественности никогда не будет ибо там нарушаются любые правила, которые для обычных схем немыслимо нарушать.
Re[62]: Языки общего назначения не имеют смысла!
От: FragMent  
Дата: 28.05.12 15:33
Оценка:
Здравствуйте, SleepyDrago, Вы писали:

SD>Здравствуйте, FragMent, Вы писали:


SD>...

FM>>ты будешь менять программу на языке высокого уровня, а не латать код по живому.
SD>...
FM>>С аналоговым дизайном это пока не так. Хотя и там понемногу ситуация меняется.

SD>у меня был реальный анекдот: мы делали sram память. И в одном из тестовых запусков обнаружили что и немцы (как заказчик и фаб) и мы профукали контакт торчащий из подложки. Причем когда заметили шаблон подложки уже был изготовлен, а контактов уже сгенерен. Дурное дело не хитрое — поправили шаблон жалко было запуск срывать. Работало Так что латать можно если не в космос летит.

Ретушь шаблонов Лет 10 назад делал. Не знал, что и сейчас такое возможно.
Мы в последнее время использовали FIB (focused ion beam) для разрезания проводников на пластине и напайке шин сверху. Заказчику такое не покажешь,
но проверить дальшейшую работоспособность можно.
А такие ошибки возникают из-за того, что разработчики правил lvs не на физику ориентируются, а на конкретные элементы
В результате отдельные транзисторы нормально верифицируются, а как начинаешь вместе собирать, вылазит всякое.

SD> Имхо vdimas рассуждает исходя из плат и наводок — там все еще вуду и шаманы рулят открыто. В фабричных кристаллах уже все — поезд ушел. Аналоговые вещи типа sram делают избранные шаманы и то как они это делают достоянием общественности никогда не будет ибо там нарушаются любые правила, которые для обычных схем немыслимо нарушать.

Вуду на платах, потому что нормально не просимулируешь — все равно моделей чипов нет. Проще на макете убедится.
А как начинаются тысячи и миллионы транзисторов на кристалле, то и оказывается, что и текстом схемы приходится описывать, и сутками симуляторы гонять.
Даже не знаю где проще.

Офтоп: мы с тобой пару раз в ЖЖ пересекались (я там анонимусом был). Ты утверждал, что спецжелезо (CUDA, CELL BE) не очень подходит для физической верификации.
И судя по отсутствию прогресса в этой области, оказался прав
Re: Языки общего назначения не имеют смысла!
От: AlexCab LinkedIn
Дата: 29.05.12 06:19
Оценка:
Здравствуйте, WolfHound, Вы писали:
WH>Мест для ошибок в 10-100 раз меньше.
WH>И каждая ошибка проявляется сразу по всему коду, а не в одном месте которое вызывается раз в год.
WH>Так что мало того что ошибок будет в 10-100 раз меньше. Но их еще и поймать проще.

Предположим, есть проект на N2, большой, много DSL, много участников. Были внесены изменения в один из DSL,ошибка проявилась по всему проекту. Какова цена исправления ошибки с сохранением изменений(по сравнению с использованием библиотек)?
Между тем,что я думаю,тем,что я хочу сказать,тем,что я,как мне кажется,говорю,и тем,что вы хотите услышать,тем,что как вам кажется,вы слышите,тем,что вы понимаете,стоит десять вариантов возникновения непонимания.Но всё-таки давайте попробуем...(Э.Уэллс)
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.