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

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

13
Почему базы данных не интегрированы как языковая функция?
Существуют ли какие-либо языки программирования, которые имеют встроенную базу данных в качестве первоклассной языковой функции вместо подключения к внешней базе данных SQL (или другой)? Каковы будут недостатки и преимущества такой функции? Как будет выглядеть такая функция и как она изменит способ программирования?


2
Почему Scala возвращается, но не ломается и продолжает
Scala не имеет breakили continue, поэтому некоторое циклическое поведение требует немного больше размышлений. Раннее завершение цикла требует хвостовой рекурсии, исключений или scala.util.control.Breaks(которые используют исключения). Основанием для этого является то, что gotoони , как и они, представляют собой потоковые конструкции, которые затеняют поток и могут быть выполнены лучшими, менее удивительными способами. …

4
Существует ли язык программирования, специально разработанный для внедрения зависимостей?
Многие общие языки программирования достаточно гибки, чтобы позволить вам поддерживать внедрение зависимостей. Даже без поддержки библиотеки или фреймворка. Но даже если язык Тьюринга достаточно полон, чтобы решить любую проблему программирования, язык делает выбор, который влияет на то, что легко и что трудно сделать в них. Существует ли какой-либо язык, специально …

1
Как Go повышает производительность с «неявными» интерфейсами и как это соотносится с понятием C # методов расширения?
В руководстве по языку Go они объясняют, как работают интерфейсы: Сразу нет классов. Однако вы можете определить методы для структурных типов. Приемник метода появляется в своем списке аргументов между Func ключевым словом и именем метода. type Vertex struct { X, Y float64 } func (v *Vertex) Abs() float64 { return …
21 c#  language-design  go 

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

2
Почему пакеты и модули являются отдельными понятиями в Java 9?
Java 9 будет иметь модули в дополнение к пакетам. Обычно языки имеют один или другой. И большинство программистов воспринимают два термина как синонимы. Модули строятся поверх пакетов, рассматривая их как примитивы. Композитный шаблон предлагает обращаться с примитивами и композитами равномерно. Иначе произойдут плохие вещи. Например, посмотрите на проект Valhalla, где …

6
Существуют ли языки сверхвысокого уровня? [закрыто]
Закрыто. Этот вопрос не по теме . В настоящее время не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме разработки программного обеспечения в стеке. Закрыто 5 лет назад . Исторически HLL - это что-то вроде C, Fortran или Pascal, а VHLL - это как Ruby или …

3
Почему нет сложных операторов присваивания для логических операторов (таких как ||, && и т. Д.)?
В соответствии с ECMA-262, частью 11.13, Ниже приводится исчерпывающий перечень составных операторов присваивания: *= /= %= += -= <<= >>= >>>= &= ^= |=. В соответствии с частью 11.11, значение var c = a || bбудет помещено в aзначение true, cесли ToBoolean(a)оно истинно, а bзначение в cдругое значение . Как …

7
Почему у Java есть примитивы для чисел разных размеров?
В Java есть примитивные типы для byte, short, intи longи то же самое для floatи double. Почему необходимо, чтобы человек установил, сколько байтов должно использоваться для примитивного значения? Разве размер не может быть определен динамически в зависимости от того, насколько большим было переданное число? Есть две причины, по которым я …

2
Почему в C # есть новое ограничение (), но нет другого подобного ограничения?
В обобщениях C # мы можем объявить ограничение для параметра типа, Tимеющего конструктор по умолчанию, например where T : new(). Тем не менее, никакие другие виды ограничений, как это не действует, new(string)например, и т. Д. Что является причиной этого с точки зрения языкового дизайна и / или реализации? Есть ли …

8
Почему x = x ++ не определено?
Он не определен, потому что он изменяется xдважды между точками последовательности. Стандарт говорит, что он не определен, поэтому он не определен. Это много я знаю. Но почему? Я понимаю, что запрет этого позволяет компиляторам оптимизировать лучше. Это могло иметь смысл, когда C был изобретен, но теперь кажется слабым аргументом. Если …

3
Java и .NET: почему по умолчанию используются разные алгоритмы сортировки?
Просто интересно почему Javaи .NET Frameworkиспользует другой алгоритм сортировки по умолчанию. В Java по умолчанию Array.Sort()используется алгоритм сортировки слиянием , и, как сказано в Wikipedia.com : В Java методы Arrays.sort () используют сортировку слиянием или настроенную быструю сортировку в зависимости от типов данных и для переключения эффективности реализации на сортировку …

6
Встроенные функции в C ++. В чем смысл?
Согласно тому, что я прочитал, компилятор не обязан заменять вызов функции встроенной функции своим телом, но сделает это, если сможет. Это заставило меня задуматься - почему у нас есть встроенное слово, если это так? Почему бы не сделать все функции встроенными по умолчанию и позволить компилятору выяснить, может ли он …

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

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