Описание тега language-specifications

4 ответа

Вопрос относительно неявных преобразований в спецификации языка C#

Раздел 6.1 Неявные преобразования определяет преобразование идентичности таким образом: Преобразование идентичности преобразует из любого типа в тот же тип. Это преобразование существует так, что можно сказать, что объект, который уже имеет требуемы…
0 ответов

Путаница в спецификации грамматики Java 10 (FieldAccess кажется неправильным)

Я работаю над некоторыми инструментами синхронизации синтаксического дерева и пытаюсь написать синтаксический анализатор для небольшого подмножества Java; Я запутался в спецификации грамматики Java 10 и считаю, что определение FieldAccess неправильн…
13 июл '18 в 06:54
1 ответ

Почему выражение доступа к массиву нулевой ссылки на массив не генерирует исключение NullPointerException?

Рассмотрим следующий код: int[] r = null; r[0] = 1 % 0; Я бы ожидал, что это бросить NullPointerException: в соответствии с JLS Sec 15.7.1: Похоже, что левый операнд бинарного оператора полностью вычисляется перед тем, как вычисляется любая часть пр…
17 мар '17 в 10:01
2 ответа

Как foreach реализован в C#?

Как именно foreach реализовано в C#? Я представляю, что часть этого выглядит как: var enumerator = TInput.GetEnumerator(); while(enumerator.MoveNext()) { // do some stuff here } Однако я не уверен, что на самом деле происходит. Какая методология исп…
1 ответ

Спецификация Java: читает, видит, пишет, что происходит позже в порядке выполнения

Я сейчас читаю Спецификацию языка Java. §17.4.5-1 сказал В этом исполнении операции чтения и записи происходят позже в порядке выполнения. Это может показаться нелогичным, но это допускается последовательностью "до и после". Разрешение операций чтен…
09 авг '18 в 00:57
1 ответ

Перегружает ли его конструктор с необязательным параметром?

Вот пример кода: public List(int capacity = defaultCapacity) { items = new T[capacity]; } В C# 5 Language Specification Section 1.6.7 написано: Конструкторы экземпляров могут быть перегружены. Например, класс List объявляет два конструктора экземпля…
25 авг '15 в 17:23
1 ответ

Какова цель внешних статических конструкторов в C#?

В соответствии с разделом "10.12 Статические конструкторы" "Спецификации языка C#. Версия 5.0" статический конструктор можно пометить модификатором "extern", и в этом случае он называется внешним статическим конструктором. Обычные (не внешние) стати…
0 ответов

Официальная спецификация синтаксиса языка AutoIt

Я хочу создать компилятор для AutoIt, который скомпилирует его с инструкциями x86- однако мне не удалось найти официальное описание синтаксиса языка AutoIt (может быть, в форме описания синтаксиса ANTLR или официального синтаксического дерева), Може…
09 апр '18 в 10:00
5 ответов

Что такое HTML5 тег <command> и что поддерживает браузер

Я прочитал спецификацию HTML5 для &lt;command&gt; и нашел информацию об этом элементе очень расплывчатым. Я попробовал его и обнаружил, что он не работает в Chrome (последняя версия) и работает в Safari (даже в более старых версиях), извините, нет F…
2 ответа

Почему C# также не допускает пустых условий в циклах while?

Редактировать: я изменил большую часть своего вопроса, потому что это было слишком долго, и хотя мой вопрос - запрос фактов, он считался основанным на мнении. Сказав это, пожалуйста, прочитайте комментарии, где я пытаюсь объяснить, почему закрытие э…
14 авг '13 в 13:31
1 ответ

Почему Class.forName("BumpTest"), а не BumpTest.class?

В JLS Sec 8.4.3.6, synchronized методы, это говорит: class BumpTest { // ... static synchronized void classBump() { classCount++; } } имеет точно такой же эффект как: class BumpTest { // ... static void classBump() { try { synchronized (Class.forNam…
31 окт '17 в 20:47
3 ответа

Спецификация языка C# "Реализация программы", по-видимому, неправильно определена

В спецификации языка C# Программа определяется как Запрограммируйте ввод для компилятора. В то время как приложение определяется как Приложение сборка с точкой входа Но они определяют Реализация программы - выполнение заявки. Учитывая определение "П…
19 апр '11 в 19:55
5 ответов

Каково происхождение CS0060: Прямой базовый класс типа класса должен быть по крайней мере таким же доступным, как и сам тип класса

Я просто столкнулся с этим основным правилом наследования в.net:CS0060: Прямой базовый класс типа класса должен быть по крайней мере таким же доступным, как и сам тип класса Мне любопытно, почему это правило было разработано. Кто-нибудь знает, почем…
31 дек '13 в 14:43
1 ответ

Это опечатка в спецификации языка Scala для параметризованных типов?

Разве U_i не должно быть скорее T_i, как показано на рисунке ниже? Та же опечатка (ИМХО) тоже здесь. Если это не опечатка, то может кто-нибудь сказать, где указано значение T_i?
07 ноя '14 в 14:17
1 ответ

Спецификация пути SVG: moveTo и неявная lineTo

Я пытаюсь написать небольшой парсер / нормализатор пути SVG и получил последнюю проблему со спецификацией: Насколько я понял, большинство команд поддерживают дополнительные неявные команды, и когда они делают это и находятся в относительном режиме, …
25 мар '15 в 09:05
1 ответ

Как представить в Java контекстно-свободную грамматику?

У меня есть простая грамматика: R --&gt; R and R | R or R | atom Единственный терминал, который у нас есть, это атом. Это рекурсивная грамматика, потому что каждый R может быть составлен вложенным R. Проблемы, с которыми я сталкиваюсь: Как бороться …
4 ответа

Почему проверка нулевого значения выполняется после оценки списка аргументов?

В соответствии со спецификацией языка C# 7.4.3 Вызов члена функции Обработка во время выполнения вызова члена функции состоит из следующих шагов, где M - это элемент функции экземпляра, объявленный в ссылочном типе, E - выражение экземпляра: E оцени…
06 сен '15 в 19:41
3 ответа

В цикле while последний оператор, разделенный запятыми, гарантированно выполняется последним?

Рассмотрим следующий (тривиальный) сегмент кода: while (i++, i &lt;= 10) { // some more code } В общем случае C++ позволяет вычислять операторы через запятую в любом порядке. В случае цикла while мы, по крайней мере, гарантируем (согласно спецификац…
01 ноя '10 в 19:57
1 ответ

Семантика полей bool в явных типах макетов (ECMA-334)

Я пытаюсь найти, где в ECMA-334 (спецификация языка C#) определено следующее поведение. Исходная программа выглядит следующим образом. static void Main(string[] args) { TestStruct a = new TestStruct(); a.byteValue = 1; TestStruct b = new TestStruct(…
2 ответа

Является ли приведение из Object в логический допустимый язык Java?

Я наткнулся на старый код Java во время работы, которая была реализована много лет назад программистом Си, и мы не могли не начать обсуждение того, действительно ли код - даже если он компилируется и работает - является действительно допустимым кодо…
23 ноя '16 в 17:43