Вопросы с тегом «language-design»

Вопросы, связанные с дизайном и структурой языков программирования.

9
Почему самодостаточные компиляторы считаются обрядом для новых языков?
Я слышал во многих местах, что люди ожидают, что языки будут использовать или, по крайней мере, иметь самодостаточный компилятор, чтобы заслужить уважение. Мне любопытно, почему это так. Компилятор кажется очень важной частью программного обеспечения для написания, и я думаю, что не все языки хорошо подходят для их создания. Разве не …

5
Почему изучение lisp-интерпретатора в lisp так важно?
Я видел много учебных программ по CS и предложения для новых программистов, которые призывают начинающего программиста изучать интерпретатор lisp, который специально написан на lisp. Все эти сайты говорят что-то вроде «своего интеллектуального откровения», «это опыт просветления, который должен иметь каждый серьезный программист», или «он показывает вам аппаратные / программные отношения» …

3
Почему в Kotlin нет статического ключевого слова?
Kotlin известен прежде всего как замена Java, но он избавляется от известной конструкции Java: staticключевого слова. Вместо этого функциональность на уровне класса предлагается в основном сопутствующими объектами. Что плохого в статических методах и полях, которым сопутствующие объекты предоставляют лучшую альтернативу? Я запутался в обосновании и не смог найти объяснения в …

1
Как комитет по стандартам C ++ проверяет свои дизайнерские идеи?
Проверяет ли комитет по С ++ свои новые спецификации проекта с помощью своего рода компилятора прототипов, прежде чем выпускать новый стандарт? Или они выпускают стандарт, который, по сути, является только теоретическим, пока крупные компиляторы не реализуют его?

9
Почему большинство «общеизвестных» императивных / OO-языков допускают неконтролируемый доступ к типам, которые могут представлять значение «ничего»?
Я читал о (не) удобстве иметь nullвместо (например) Maybe. Прочитав эту статью , я убедился, что было бы намного лучше использоватьMaybe (или что-то подобное). Однако я удивлен, увидев, что все «общеизвестные» императивные или объектно-ориентированные языки программирования по-прежнему используют null(что обеспечивает неконтролируемый доступ к типам, которые могут представлять значение «ничего»), и …

16
Я пишу о синтаксисе языка. Есть ли какой-нибудь язык, в котором параметры помещаются внутри имени метода?
в JavaScript: function getTopCustomersOfTheYear(howManyCustomers, whichYear) { // Some code here. } getTopCustomersOfTheYear(50, 2010); в C #: public List<Customer> GetTopCustomersOfTheYear(int howManyCustomers, int whichYear) { // Some code here } List<Customer> customers = GetTopCustomersOfTheYear(50, 2010); в PHP: public function getTopCustomersOfTheYear($howManyCustomers, $whichYear) { // Some code here } $customers = getTopCustomersOfTheYear(50, 2010); Есть …

30
С каким самым большим недостатком дизайна вы столкнулись в любом языке программирования? [закрыто]
В настоящее время этот вопрос не очень подходит для нашего формата вопросов и ответов. Мы ожидаем, что ответы будут подтверждены фактами, ссылками или опытом, но этот вопрос, скорее всего, вызовет дебаты, споры, опрос или расширенное обсуждение. Если вы считаете, что этот вопрос можно улучшить и, возможно, вновь открыть, обратитесь за …

4
Как языки программирования определяют функции?
Как языки программирования определяют и сохраняют функции / методы? Я создаю интерпретируемый язык программирования в Ruby и пытаюсь понять, как реализовать объявление функций. Моя первая идея - сохранить содержание декларации на карте. Например, если я сделал что-то вроде def a() { callSomething(); x += 5; } Тогда я бы добавил …

3
Почему ключевое слово rec необходимо в F #?
В F # необходимо использовать recключевое слово. В Haskell нет необходимости явно указывать, является ли данная функция рекурсивной или нет. Учитывая роль рекурсии в функциональном программировании, дизайн F # кажется мне довольно странным. Это хорошее решение для разработки языка или оно существует только по историческим причинам или из-за ограничений реализации?

16
Что можно сделать с языками программирования, чтобы избежать ошибок с плавающей запятой?
Неправильное понимание арифметики с плавающей запятой и ее недостатков является основной причиной удивления и путаницы в программировании (рассмотрим количество вопросов о переполнении стека, относящихся к «числам, которые не складываются правильно»). Учитывая то, что многим программистам еще предстоит понять его последствия, он может внести много тонких ошибок (особенно в финансовое программное …

6
Каковы предостережения от реализации фундаментальных типов (таких как int) как классов?
При проектировании и implenting объектно-ориентированный язык программирования, в какой - то момент один должен сделать выбор о реализации основных типов (как int, float, doubleили их эквиваленты) , как классы или что - то другое. Очевидно, что языки в семействе C имеют тенденцию не определять их как классы (Java имеет специальные …

10
Язык программирования, где каждый вызов функции / блок выполняется в отдельном потоке? [закрыто]
Закрыто . Этот вопрос должен быть более сфокусированным . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он фокусировался только на одной проблеме, редактируя этот пост . Закрыто 2 года назад . В настоящее время я создаю язык программирования для развлечения, идея которого заключается в …


9
Есть ли языки программирования, которые следуют минималистскому подходу к разработке?
Я считаю, что когда языки считаются такими же, как коммерческое программное обеспечение, всегда существует постоянная необходимость добавлять новые функции для оправдания новых выпусков. Могут ли быть или есть языки, где версия 1.0 является окончательной версией? Конечно, исправления ошибок исключены, но набор функций всегда остается прежним? Таким образом, все функции в …

5
Что делать, если я ненавижу заголовочные файлы C ++?
Меня всегда смущали заголовочные файлы. Они такие странные: вы включаете файл .h, который не включает .cpp, но .cpp тоже как-то компилируется. Недавно я присоединился к командному проекту, и, конечно, используются как .h, так и .cpp. Я понимаю, что это очень важно, но я не могу жить с копированием каждого объявления …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.