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

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

4
Нужен ли сбор мусора для реализации безопасных замыканий?
Недавно я посетил онлайн-курс по языкам программирования, на котором, помимо прочего, были представлены замыкания. Я записываю два примера, вдохновленных этим курсом, чтобы дать некоторый контекст, прежде чем задавать мой вопрос. Первый пример - это функция SML, которая создает список чисел от 1 до x, где x - это параметр функции: …

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

2
Почему исходный файл Java содержит имя открытого класса, который он содержит?
Я новичок в изучении Java. В Java каждый исходный файл должен содержать открытый класс, и этот исходный файл должен иметь то же имя, что и этот открытый класс. Более того, ни один исходный файл не может содержать два открытых класса. Почему это ограничение?

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

11
Принцип KISS применяется к дизайну языка программирования?
KISS («оставайся простым, глупым» или «делай это простым глупым», см., Например, здесь ) является важным принципом в разработке программного обеспечения, даже если он явно возник в инженерном деле. Ссылаясь на статью в Википедии: Этот принцип лучше всего иллюстрируется историей о том, как Джонсон вручил команде инженеров-конструкторов несколько инструментов, при этом …

1
Почему добавление к списку в Scala имеет O (n) сложность по времени?
Я только что прочитал, что время выполнения операции добавления для List(: +) растет линейно с размером List. Присоединение к a Listкажется довольно обычной операцией. Почему идиоматический способ сделать это состоит в том, чтобы предварительно добавить компоненты, а затем перевернуть список? Это также не может быть ошибкой проекта, поскольку реализация может …

2
Почему тип опции Scala не называется Maybe, как в Haskell? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 4 года назад . Почему тип опции Scala не называется Maybe, как в Haskell? Может быть, для …

2
Как C ++ обрабатывает множественное наследование с общим общим предком?
Я не парень C ++, но я вынужден думать об этом. Почему множественное наследование возможно в C ++, но не в C #? (Я знаю о проблеме алмазов , но я не об этом здесь спрашиваю). Как C ++ разрешает неоднозначность идентичных сигнатур методов, унаследованных от нескольких базовых классов? И …

2
Преимущества и недостатки структурирования всего кода с помощью классов и компиляции в классы (например, Java)
Изменить: мой язык допускает множественное наследование, в отличие от Java. Я начал проектировать и разрабатывать свой собственный язык программирования для образовательных, развлекательных и потенциально полезных целей. Сначала я решил основать его на Java. Это подразумевает, что весь код будет написан в форме классов, и этот код компилируется в классы, которые …

5
Преимущества классического ООП над языком Go-like
Я много думал о дизайне языка и о том, какие элементы были бы необходимы для «идеального» языка программирования, и изучение Google Go привело меня к сомнению во многих других общеизвестных знаниях. В частности, Go, похоже, обладает всеми интересными преимуществами объектно-ориентированного программирования, фактически не имея структуры объектно-ориентированного языка. Там нет классов, …

4
Что сделал Ruby правильно (или это был Rails)? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 6 лет назад . Большинство языков программирования имеют некоторые конструктивные решения, которые влияют на их использование и …

5
Есть ли конкретная цель для разнородных списков?
Исходя из C # и Java, я привык к тому, что мои списки однородны, и это имеет смысл для меня. Когда я начал подбирать Lisp, я заметил, что списки могут быть разнородными. Когда я начал разбираться с dynamicключевым словом в C #, я заметил, что, начиная с C # 4.0, …

3
Зачем тебе «я». в Python ссылаться на переменные экземпляра?
Я программировал на нескольких языках, таких как Java, Ruby, Haskell и Python. Мне приходится переключаться между многими языками в день из-за разных проектов, над которыми я работаю. Теперь проблема в том, что я часто забываю написать, так selfкак первый параметр в определениях функций в Python - это вызов методов для …

1
Включают ли какие-либо заметные расширения C целочисленные типы, поведение которых не зависит от размера машинного слова?
Интересная характеристика языка C по сравнению с некоторыми другими языками состоит в том, что многие из его типов данных основаны на размере слова целевой архитектуры, а не указываются в абсолютных терминах. Хотя это позволяет использовать язык для написания кода на машинах, которые могут иметь трудности с определенными типами, это очень …

9
Десятое правило Гринспуна, включает ли каждый крупный проект интерпретатор Lisp? [закрыто]
Закрыто . Этот вопрос основан на мнении . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос, чтобы ответить на него фактами и цитатами, отредактировав этот пост . Закрыто 6 лет назад . Десятое правило Гринспуна (фактически единственное правило) гласит: Any sufficiently complicated C or Fortran …

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