Вопросы по теме 'language-design'
Почему языки по умолчанию не вызывают ошибок при целочисленном переполнении?
В нескольких современных языках программирования (включая C ++, Java и C #) язык позволяет целочисленное переполнение для происходят во время выполнения без возникновения каких-либо ошибок.
Например, рассмотрим этот (надуманный) метод C #,...
4886 просмотров
schedule
31.01.2024
Почему в Java нет объявлений переменных с блочной областью видимости?
Следующий метод не работает, поскольку во внутреннем блоке объявляется переменная с тем же именем, что и во внешнем блоке. По-видимому, переменные принадлежат методу или классу, в котором они объявлены, а не блоку, в котором они объявлены, поэтому я...
4690 просмотров
schedule
01.06.2022
Как бы вы подошли к реализации правила офсайда?
Я уже написал генератор, который работает, но мне хотелось бы узнать, как лучше всего реализовать правило вне игры.
Кратко: Правило вне стороны означает в этом контексте, что отступ распознается как синтаксический элемент. .
Вот правило...
3995 просмотров
schedule
28.09.2022
Почему оператор swap/exchange не существует в императивных или объектно-ориентированных языках, таких как C/C++/C#/Java?
Мне всегда было интересно, почему такая простая и базовая операция, как замена содержимого двух переменных, не встроена во многие языки.
Это одно из самых основных упражнений по программированию на уроках информатики; он широко используется во...
890 просмотров
schedule
16.05.2023
Типизированный FP: аргументы кортежа и аргументы Curriable
В статически типизированных языках функционального программирования, таких как Standard ML, F#, OCaml и Haskell, функция обычно записывается с параметрами, отделенными друг от друга и от имени функции просто пробелом:
let add a b =
a + b...
822 просмотров
schedule
31.08.2022
Почему регулярные выражения не могут использовать ключевые слова вместо символов?
Хорошо, я едва понимаю основы RegEx, но почему они не могли разработать его для использования ключевых слов (например, SQL) вместо некоторых загадочных подстановочных знаков и символов?
Это для производительности, поскольку RegEx...
1333 просмотров
schedule
27.07.2023
Почему добавление нуля к строке допустимо?
В статье MSDN о String Basics показано следующее:
string str = "hello";
string nullStr = null;
string emptyStr = "";
string tempStr = str + nullStr; // tempStr = "hello"
bool b = (emptyStr == nullStr);// b = false;
string newStr = emptyStr +...
30541 просмотров
schedule
25.07.2023
Итераторы C ++ считаются вредными?
Сегодня на конференции библиотеки Boost Андрей Александреску , автор книги «Современный дизайн C ++ и Loki C ++» библиотека, выступила с докладом под названием «Итераторы должны работать» ( видео , слайды ) о том, почему итераторы плохи, и у него...
11830 просмотров
schedule
01.07.2022
Зачем различать методы, возвращающие значение, и методы, не возвращающие?
Почему в некоторых языках различаются методы, возвращающие значение, и методы, не возвращающие?
то есть в Oracle PL / SQL, где основное различие между функцией и процедурой состоит в том, что функция должна возвращать значение, а процедура - нет....
483 просмотров
schedule
04.06.2022
Почему в COBOL есть и «РАЗДЕЛ», и «ПАРАГРАФ»?
Почему в COBOL есть и SECTION , и PARAGRAPH ?
Кто-нибудь может объяснить, почему разработчики COBOL создали как SECTION s, так и PARAGRAPH s? Они существуют с момента первоначального выпуска COBOL, поэтому я подозреваю, что настоящая причина...
22527 просмотров
schedule
01.06.2023
Должны ли ссылки в объектно-ориентированных языках программирования по умолчанию быть не обнуляемыми?
Нулевые указатели были описаны как « ошибка в миллиард долларов ». В некоторых языках есть ссылочные типы, которым нельзя присвоить нулевое значение.
Интересно, следует ли при разработке нового объектно-ориентированного языка вести себя по...
594 просмотров
schedule
20.05.2022
Почему python super не принимает только экземпляр?
В python 2.x super принимает следующие случаи
class super(object)
| super(type) -> unbound super object
| super(type, obj) -> bound super object; requires isinstance(obj, type)
| super(type, type2) -> bound super object; requires...
639 просмотров
schedule
10.07.2023
Вложенные переключатели C: корпус внешнего переключателя внутри внутреннего переключателя
Я добавляю поддержку сопрограммы в интерпретатор, который я пишу, и я хотел бы сделать что-то вроде следующего:
typedef enum {
bar_stuff,
bar_other
} Bar;
typedef enum {
foo_error=-1,
foo_none=0,
foo_again
}...
8365 просмотров
schedule
21.07.2022
Есть ли в R оператор assert, как в python?
оператор, который проверяет, верно ли что-то, и если нет, печатает данное сообщение об ошибке и завершает работу.
27388 просмотров
schedule
11.10.2022
Почему регулярные выражения жадны по умолчанию?
Кажется, что это огромный источник путаницы для начинающих, пишущих регулярные выражения, может вызвать скрытые проблемы с производительностью, и, казалось бы, типичный вариант использования не будет жадным.
Это только по устаревшим причинам (так...
2649 просмотров
schedule
27.09.2023
Каковы аргументы за и против эквивалентности имен и структурной эквивалентности?
В кругах дизайнеров языков велись длительные дебаты о том, должны ли языки использовать структурную эквивалентность или эквивалентность имен . Такие языки, как ALGOL, ML или Modula-3, использовали структурную эквивалентность, в то время как......
2007 просмотров
schedule
04.09.2022
Интерпретаторы: обработка включает/импортирует
Я построил интерпретатор на С++, и пока все работает нормально, но теперь я застрял с дизайном функции импорта/включения/как бы вы ни называли ее.
Я подумал о следующем:
Обработка включает в себя процесс токенизации: когда в коде...
164 просмотров
schedule
08.10.2022
Почему в Haskell есть данные и новый тип?
Кажется, что определение newtype — это просто определение data , которое подчиняется некоторым ограничениям (например, только один конструктор), и благодаря этим ограничениям система времени выполнения может более эффективно обрабатывать newtype ....
35190 просмотров
schedule
21.04.2022
Почему в С++ 0x есть оператор sizeof?
Я видел, что @GMan реализовал версию sizeof... для вариативных шаблонов, который (насколько я могу судить) эквивалентен встроенному sizeof... . Разве это не противоречит второму принципу проектирования: предпочитать библиотеки к языковым...
603 просмотров
schedule
31.07.2022
Почему в большинстве языков программирования есть только операторы сравнения двоичного равенства?
На естественных языках мы бы сказали, что «некоторый цвет является основным цветом, если это красный, синий или желтый цвет».
На всех языках программирования, которые я видел, это означает что-то вроде:
isPrimaryColor = someColor == "Red" or...
1921 просмотров
schedule
07.01.2023