Jak zrozumieć te paragrafy w EMCA 335 dotyczące `.locals init`?

Od ECMA 335 I.12.4.1 Wywołania metod

Tablica zmiennych lokalnych ma zawsze wartość null dla typów obiektów i pól w obrębie typów wartości, które przechowują obiekty. Dodatkowo, jeśli.locals init jest ustawiona, wtedy tablica zmiennych lokalnych jest inicjalizowana na 0 dla typów całkowych i 0.0 dla typów zmiennoprzecinkowych. Typy wartości nie są inicjowane przez CLI, ale zweryfikowany kod dostarczy wywołanie inicjatora jako część kodu punktu wejścia metody.

Więc

Czy „zainicjowany na 0 dla typów całkowych i 0,0 dla typów zmiennoprzecinkowych” oznacza „zeruje typy wartości”?

Czy to znaczy: niezależnie od.locals init, CLI musi zawsze zapewniać, że typy obiektów są ustawione na null po wprowadzeniu metody? Dlaczego więc rozróżnia tutaj typy obiektów i typy wartości: czy zerowe typy wartości nie są podobne do zerowego typu obiektu?

Jak zrozumieć, że „typy wartości nie są inicjowane przez CLI”?

Co to oznacza: „zweryfikowany kod dostarczy wywołanie inicjatorowi jako część kodu punktu wejścia metody”? Czy weryfikacja nie jest częścią CLI?

Z ECMA 335 III.1.8.1.1 Algorytm weryfikacji

Muszą istnieć sprawdzalne metody.locals init zestaw. Jeśli nie jest ustawiony, CLI może rzucić aVerificationException gdzie montaż nie został przyznanySecurityPermission.SkipVerification. Interfejs CLI może opcjonalnie zdecydować się na wykonanie określonej analizy przypisania (w celu określenia, która lokalizacja jest zapisana przed odczytem), aby umożliwić kompilatorowi kodu CIL-do-natywnego zminimalizowanie wpływu na wydajność tego wymagania.

Jeśli.locals init jest ustawione, specyfikacja wymaga, aby CLI wyzerował tablicę zmiennych lokalnych po wprowadzeniu metody. Oznacza to, że zerowanie kodu maszynowego musi zostać wykonane po wejściu. Jak więc pomóc „określona analiza przypisania”, biorąc pod uwagę, że możliwe jest zbędne zerowanie?

Przepraszam, gdybym się nie wyjaśnił. Postaram się ulepszyć moje pytania w oparciu o komentarze.

questionAnswers(1)

yourAnswerToTheQuestion