Вопросы по теме 'language-design'

Почему переменные не объявлены в try в области видимости в catch или finally?
В C # и Java (а также, возможно, в других языках) переменные, объявленные в блоке «try», не входят в область видимости соответствующих блоков «catch» или «finally». Например, следующий код не компилируется: try { String s = "test"; // (more...
81079 просмотров
schedule 12.06.2024

Почему оператор switch был разработан с учетом необходимости перерыва?
Учитывая простой оператор switch switch (int) { case 1 : { printf("1\n"); break; } case 2 : { printf("2\n"); } case 3 : { printf("3\n"); } } Отсутствие оператора break в...
72199 просмотров
schedule 01.11.2023

Какие уроки можно извлечь из модели прототипа в javascript?
Вопрос с точки зрения дизайна языка. Я должен немного объяснить ситуацию. Я работаю над вариантом javascript, который не поддерживает прототипы, однако он запоздал с приличной системой типов (самое главное, поддержка instanceof). Спецификация...
357 просмотров
schedule 26.04.2024

Плюсы и минусы отказа Go от неиспользуемых зависимостей
Новый язык Google Go пытается упростить управление зависимостями с помощью явно требует, чтобы все зависимости, перечисленные в модуле, действительно использовались . Компилятор отклонит модуль, который объявляет зависимость от модуля, не...
1323 просмотров
schedule 14.01.2024

Ruby - Путаница с методом массива
мы можем вызвать метод Array на верхнем уровне следующим образом Array(something) для меня это имеет смысл, это вызов метода без явного получателя, а self, который в данном случае является основным, вставляется перед вызовом метода. Но разве...
948 просмотров
schedule 07.02.2024

Чтение/запись замыканий Python
Замыкания — невероятно полезная функция языка. Они позволяют нам делать умные вещи, которые в противном случае потребовали бы большого количества кода, и часто позволяют нам писать более элегантный и понятный код. В Python 2.x имена переменных...
4703 просмотров
schedule 21.02.2024

Почему разрешено T() = T()?
Я считаю, что выражение T() создает rvalue (по стандарту). Однако следующий код компилируется (по крайней мере, на gcc4.0): class T {}; int main() { T() = T(); } Я знаю, что технически это возможно, потому что функции-члены могут быть...
726 просмотров

Дизайн языка Java с toString
Мы приняли решение не реализовывать метод toString для int[] , а вместо этого позволить ему наследовать метод toString от Object ?
984 просмотров
schedule 29.05.2024

Какую роль играет неизменяемость строк в объяснении ссылок на строки для разработчиков?
В той или иной форме я часто сталкиваюсь со следующим вопросом (заданным здесь в псевдокоде): String myString = "Hello" someObject.stringProperty = myString myString = "World" Почему someObject.stringProperty теперь не равно «World»?...
216 просмотров

Действительно ли необходимы имена тегов XML/HTML внутри закрывающих тегов?
На самом деле это не вопрос программирования сам по себе , но мне было интересно, почему имя тега требуется в закрывающем теге в XML. Например, не мог <a> <b>stuff</b> </a> Быть написанным <a>...
480 просмотров
schedule 22.01.2024

Какая практическая польза от лени как встроенной языковой функции?
Совершенно очевидно, почему язык функционального программирования, который хочет быть ленивым, должен быть чистым. Я смотрю на обратный вопрос: если язык хочет быть чистым, есть ли большое преимущество в лени? Один из аргументов одного из...
2203 просмотров

Зачем вам нужны беззнаковые типы в Java?
Я часто слышал жалобы на Java за отсутствие неподписанных типов данных. См., например, этот комментарий . Я хотел бы знать, как это проблема? Я программирую на Java около 10 лет, и у меня никогда не было с этим проблем. Иногда при преобразовании...
590 просмотров
schedule 02.05.2024

Какие классы не могут быть подклассами?
Есть ли какое-либо правило о том, какие встроенные и стандартные библиотечные классы не являются подклассами ("final")? Что касается Python 3.3, вот несколько примеров: bool function operator.itemgetter slice Я нашел вопрос...
8105 просмотров

Явное безумие Javascript
Возможный дубликат: конфликтующие логические значения пустого массива JavaScript В чем причина того, что [ ([] == false), ([] ? 1 : 2) ] возвращает [true, 1] ? Другими словами, пустой список логически верен в логическом...
742 просмотров
schedule 25.09.2022

Почему встроенные типы в C# являются ключевыми словами языка?
В C# такие идентификаторы, как int или string , на самом деле являются ключевыми словами на уровне языка. В чем причина этого? Обратите внимание: если бы авторы хотели запретить типы пользователей с такими именами, это могло бы привести к...
447 просмотров
schedule 06.06.2024

Почему не было встроенного доступа к регистру состояния ЦП при разработке как C, так и C++?
В случае с флагом переполнения, казалось бы, доступ к этому флагу был бы большим благом для кросс-архитектурного программирования. Это обеспечило бы безопасную альтернативу использованию неопределенного поведения для проверки переполнения целого...
689 просмотров
schedule 09.10.2022

Как грамматика Python используется внутри?
Я пытаюсь глубже понять, как работает Python, и я просматривал грамматику, показанную на http://docs.python.org/3.3/reference/grammar.html . Я заметил, что вам также нужно изменить parsermodule.c, но, честно говоря, я просто не понимаю, что здесь...
5066 просмотров

Почему цикл событий существует с самого начала JavaScript, когда блокирующих операций почти не было
Я пытаюсь понять, как среда выполнения JavaScript работает с однопоточной моделью. Существует цикл событий, который перемещает блокирующие операции (большинство из них — ввод-вывод) в другую часть среды выполнения, чтобы поддерживать чистоту...
66 просмотров

написание парсера простого языка
Я пытаюсь разработать простой язык, похожий на губы, схему. Я написал свой лексер (токенизатор). Я могу разделить на операторы, идентификаторы и т. д. Но я сейчас пытаюсь написать парсер. Для этого мне достаточно одного примера. Может кто-нибудь...
3164 просмотров
schedule 16.12.2023

Является ли компилятор / интерпретатор хорошей идеей создавать функции во время интерпретации?
Когда я впервые изучал C ++, я заметил, что функции создаются сверху вниз, в отличие от таких языков, как Java, где порядок «объявлений» функций в коде не имеет значения. Пример C ++: #include <iostream> using namespace std; int main()...
96 просмотров