Новый или появляющийся язык программирования действительно нуждаются в практических библиотеках? [закрытый]

Я думаю, ты почти у цели. Я думаю, вы имели в виду:

addr[11:0] + size <= 32'h1000 ; 

Я бы порекомендовал , а не , используя нестандартные литералы , то есть я бы рекомендовал говорить 32'h1000, а не 'h1000. Это связано с тем, что поведение таких литералов изменялось между Verilog-1995 и Verilog-2001, поэтому, вероятно, лучше всего избегать их.


module M;

  class packet;
    rand bit    [13:0]  addr;        // start address
    rand bit    [15:0]  size;        //  size of packet

    constraint size_c     { size inside {[1:4096]}; }
    constraint addr_c     { addr[1:0]==0; // for 4 byte alignment
                            addr[11:0] + size <= 32'h1000; }
  endclass

  initial
    begin
      packet p = new;
      repeat (10)
        begin
          p.randomize;
          $display("%p - %d", p, p.addr[11:0] + p.size);
        end
    end

endmodule

https://www.edaplayground.com/x/3gtq

6
задан Brian 26 February 2009 в 23:36
поделиться

9 ответов

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

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

11
ответ дан 8 December 2019 в 04:56
поделиться

Практические библиотеки важны. Я не становлюсь заплаченным для записи платформы, мне платят для увеличивания стоимость бизнеса. Если я сказал клиенту, что должен был заряжать их для записи типа данных String, я был бы прочертовский терять свое задание / контракт.

3
ответ дан 8 December 2019 в 04:56
поделиться

Java и .NET испортили людей с распространенностью классов в платформе или в дополнительных высококачественных библиотеках (довольно часто свободный и с открытым исходным кодом также). То же идет для Ruby и Python. Было бы трудно принять новый язык без такой библиотеки, как Ваша производительность перенесет teremndously при необходимости повторно реализовать каждую функцию, Вам нужно.

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

4
ответ дан 8 December 2019 в 04:56
поделиться

Крупная библиотека делает язык намного более продуктивным для использования. Действительно большой язык без поддержки парсинга XML, crypto, веб-платформы, платформы UI, и т.д. занимает намного больше времени для создания рабочего кода с. Для изучения целей язык без крупной библиотеки прекрасен, но практически, это собирается стоить времени и денег для использования такого языка. Вообразите, хотели ли каждый раз Вы загрузить изображение, необходимо было написать код для парсинга .jpg заголовков. Что, если у Вас был к ручному коду свой синтаксический анализатор XML вместо того, чтобы загрузить его в предварительно созданный. Вы, вероятно, завинтили бы его и провели бы много времени, отладив. Если цель проекта состоит в том, чтобы создать новый инструмент, писание кода поддержки не является большим использованием Вашего времени.

1
ответ дан 8 December 2019 в 04:56
поделиться

Только посмотрите на большинство вопросов здесь на ТАК, чтобы видеть, как важные инструменты людям.

Тем не менее при нахождении нового языка, который соответствует задаче действительно хорошо, и у Вас есть время и наклон записать, что Ваши собственные инструменты затем любой ценой погружаются в. Это - один способ, которым новые языки получают хорошие библиотеки, в конце концов.

2
ответ дан 8 December 2019 в 04:56
поделиться

Я думаю, что большой причиной популярности Python является своя огромная стандартная библиотека. То же идет с Java и PHP. На самом деле я, вероятно, сказал бы, что выбор библиотек более важен, чем сам язык.

1
ответ дан 8 December 2019 в 04:56
поделиться

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

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

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

Любой совершенно новый язык, который может использовать в своих интересах существующие библиотеки, начинается путь вперед, по-моему. Clojure, например, хотя очень новый язык, также имеет доступ ко всем библиотекам Java. Это - возможно одна большая причина, она так успевает в данный момент. Усилия приложены к новым вещам вместо того, чтобы заново изобрести колеса.

1
ответ дан 8 December 2019 в 04:56
поделиться

Вы думаете, что строковые библиотеки легко записать? Пойдите взглянули на Unicode, UTF-8, UTF-16, кодовые страницы прежней версии, проблемы порядка байтов и этажерку.

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

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

1
ответ дан 8 December 2019 в 04:56
поделиться

Это - заманчивая идея, и это, конечно, работает, если Вы - Paul Graham или Chuck Moore.

Это могло бы работать, если Ваш домен очень очень ограничен, и Вы не собираетесь бросать требование в Вас, это вне того домена, что-то столь же простое как клиент, просящий "импорт от Excel" функция. С другой стороны, Paul Graham использовал Lisp для записи веб-системы магазина, которая является очень широким доменом требований; я интересовался бы знанием, как он обработал что-то как экспорт PDF, он даст спецификацию PDF и руководство Lisp некоторому интерну на летних каникулах от MIT, или он спустился бы до библиотек C?

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

Это могло бы работать, где оптимизация очень очень важна (РЕДАКТИРОВАНИЕ: и где Вы достаточно умны для оптимизации его сами) - у Вас есть разделенный вниз система, где Вы знаете каждый слой стека, потому что Вы реализовали его сами с конкретной целью в памяти.

Я связываю целый кластер идей с аспирантами: они находятся в лучшем 1% в программировании навыков и общего изящества; они работают в очень узком домене; у них не может быть лучшего оборудования, таким образом, они пытаются разделить вещи вниз и оптимизировать подробно; и у них нет изучения по сравнению с получением работы сделанная дилемма рабочих программистов.

0
ответ дан 8 December 2019 в 04:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: