Запитання з тегом «type-checking»

перевірка того, що змінна, вираз або значення мають оголошений тип

8
Як комп'ютер визначає тип даних байта?
Наприклад, якщо комп'ютер 10111100зберігається на одному конкретному байті оперативної пам'яті, як комп'ютер знає інтерпретувати цей байт як ціле число, символ ASCII або щось інше? Чи зберігаються дані типу в сусідньому байті? (Я не думаю, що це було б так, оскільки це призвело б до використання вдвічі більше місця на один …

2
Алгоритми перевірки типу
Я починаю особисте бібліографічне дослідження алгоритмів перевірки типу та хочу поради. Які найчастіше використовуються алгоритми, стратегії та загальні методи перевірки типу? Мені особливо цікаві складні алгоритми перевірки типу, які були реалізовані у широко відомих сильно статичних мовах типу, наприклад, C ++, Java 5+, Scala та інших. IE, алгоритми перевірки типу, …

1
Введіть умовивід з типами продуктів
Я працюю над компілятором для конкатенативної мови і хотів би додати підтримку виводу типу. Я розумію Хіндлі – Мілнера, але я вивчав теорію типів, коли йду, тому не знаю, як її адаптувати. Чи є наступна система звуковою і, можливо, незмінною? Термін - це буквальне слово, склад термінів, цитата терміна або …

2
Які потенційні підводні камені мають мінімальне ядро, яке працює керованим кодом?
Припустимо, я хочу створити операційну систему на основі дуже невеликого рідного нижнього ядра, яке виконує функції керованого інтерпретатора / часу виконання та більшого верхнього ядра, зібраного на неродній машинній мові (байт-код Java, CIL тощо). Прикладами подібних операційних систем можуть бути Singularity та Cosmos . Які підводні камені та проблеми з …

5
Чи є випадок використання нижнього типу як типу функціонального параметра?
Якщо функція має тип повернення ⊥ ( нижній тип ), це означає, що вона ніколи не повертається. Наприклад, він може вийти або викинути обидві досить звичайні ситуації. Імовірно, якщо функція мала параметр типу ⊥, її ніколи не можна (безпечно) викликати. Чи існують якісь причини для визначення такої функції?

1
Чому ми не досліджуємо більше, щоб скласти гарантії часу?
Я люблю все, що складає час компіляції, і мені подобається, що після того, як ви складете програму, робиться багато гарантій щодо її виконання. Взагалі система статичного типу (Haskell, C ++, ...), схоже, дає більш сильні гарантії часу компіляції, ніж будь-яка система динамічного типу. З того, що я розумію, Ада іде …

2
Зведення продуктів в HoTT до кодування церкви / скотта
Тому я зараз хочу книгу HoTT з деякими людьми. Я висловив твердження, що більшість індуктивних типів, які ми побачимо, можна звести до типів, що містять лише залежні типи функцій та всесвіти, приймаючи тип рекувера як натхнення для еквівалентного типу. Я почав замальовувати, як я вважав, що це спрацює, і після …

1
Короткий приклад експоненціальної вартості висновку типу ML
Мені було звернуто увагу, що вартість виведення типу у такій функціональній мові, як OCaml, може бути дуже високою. Твердження полягає в тому, що існує послідовність виразів, така що для кожного виразу довжина відповідного типу є експоненціальною щодо довжини виразу. Я розробив послідовність нижче. Моє запитання: чи знаєте ви послідовність з …

1
Чому Coq включає в себе основні вирази на своїй основній мові
Coq включає в себе основні вирази на своїй основній мові. Ми можемо переводити висловлювання Let-вирази в такі програми: let x : t = v in b ~> (\(x:t). b) v Я розумію, що це не завжди працює, оскільки значення vне було б доступним під час перевірки типу b. Однак це …

1
Що таке надмірний приклад статичної перевірки типу занадто консервативного?
У поняттях з мов програмування Джон Мітчелл пише, що перевірка статичного типу обов'язково консервативна (надто сувора) через проблему зупинки. Він наводить як приклад: if (complicated-expression-that-could-run-forever) then (expression-with-type-error) else (expression-with-type-error) Чи може хтось надати неспростову відповідь, яка б насправді була проблемою? Я розумію, що Java дозволяє динамічно перевіряти касти для таких …
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.