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

система типів - це сукупність правил, які присвоюють властивість, яку називають типом, різним структурам, таким як змінні, вирази, функції або модулі, з яких складається комп'ютерна програма.

9
Чи заслуговують динамічні набрані мови всі критики? [зачинено]
Я прочитав кілька статей в Інтернеті про вибір мови програмування на підприємстві. Останнім часом популярними стали багато динамічних набраних мов, наприклад Ruby, Python, PHP та Erlang. Але багато підприємств все ще залишаються зі статичними мовами типу C, C ++, C # та Java. І так, однією з переваг статичних мов …

8
Чому саме Java не дозволяє числові умовні умови, такі як if (5) {…}, якщо C?
У мене є ці дві маленькі програми: С #include <stdio.h> int main() { if (5) { printf("true\n"); } else { printf("false\n"); } return 0; } Java class type_system { public static void main(String args[]) { if (5) { System.out.println("true"); } else { System.out.println("false"); } } } яке повідомляє про помилку: …
33 java  c  type-systems 

7
Чи є система типу Haskell перешкодою для розуміння функціонального програмування? [зачинено]
Я вивчаю Haskell з метою розуміння функціонального програмування, сподіваючись, що я застосую розуміння, яке я здобуваю в інших мовах (в основному Groovy, Python, JavaScript.) Я вибрав Haskell, тому що у мене склалося враження, що він дуже чисто функціональний і не допускає ніякої опори на державу. Я не вирішив вивчити Haskell, …

9
Чи існують шаблони дизайну, які можливі лише на динамічно набраних мовах, як-от Python?
Я прочитав відповідне запитання. Чи існують непотрібні шаблони дизайну в таких динамічних мовах, як Python? і згадав цю цитату на Wikiquote.org Дивовижна річ щодо динамічного набору тексту - це дозволяє висловити все, що можна обчислити. А системи типів не типу типів, як правило, можна вирішити, і вони обмежують вас підмножиною. …

1
Введіть умовивід у Java 8
Чи потребуватиме введення нової лямбда-нотації (див., Наприклад, цю статтю ) в Java 8, потрібний певний тип виводу? Якщо так, то як система нового типу вплине на мову Java в цілому?

8
Використовуєте систему "сильного" типу в реальному світі, скажімо, для масштабних веб-додатків?
Я знаю, що це дуже широке, неоднозначне і, можливо, філософське питання. В тій мірі, що найважливіше ключове слово у питанні - сама система "сильних" типів, є неправильною . Отже, дозвольте спробувати пояснити, що я маю на увазі. Загальний контекст для питання Ми будуємо дуже масштабний веб-додаток в Ruby on Rails, …

6
У чому полягає компроміс для виводу типу?
Здається, що всі нові мови програмування або, принаймні, ті, що стали популярними, використовують умовивід. Навіть Javascript отримав типи та умови виводу, хоча різні реалізації (Acscript, typecript тощо). Мені це здається чудово, але мені цікаво, чи є компроміси чи чому, скажімо, Java або старі добрі мови не мають висновку про тип …

3
Хороша система загального типу
Загальноприйнято вважати, що дженерики Java не вдалися в деяких важливих способах. Поєднання марок та меж призвело до деякого серйозно нечитабельного коду. Однак, переглядаючи інші мови, я справді не можу знайти систему загального типу, якою задоволені програмісти. Якщо взяти за основу цілі дизайну такої системи типу: Завжди створює легко читаються декларації …

7
Чи є угорська позначення способом вирішення для мов із недостатньо вираженою статичною типізацією? [зачинено]
Закрито . Це питання ґрунтується на думці . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб на нього можна було відповісти фактами та цитатами, відредагувавши цю публікацію . Закрито 4 роки тому . У статті Еріка Ліпперта Що відбувається з угорською нотацією? , він заявляє, що метою …

6
Які застереження щодо реалізації фундаментальних типів (наприклад, int) як класів?
При проектуванні і implenting об'єктно-орієнтована мова програмування, в якій - то момент один повинен зробити вибір про реалізацію основних типів (як int, float, doubleабо їх еквіваленти) , як класи або що - то інше. Зрозуміло, що мови в сім'ї С мають тенденцію не визначати їх як класи (Java має спеціальні …

4
Системи типів: номінальні проти структурні, явні проти неявні
Я трохи заплутаний у різниці між системами номінального та структурного типу. Може хтось пояснить, чим вони відрізняються? З того, що я розумію: Номінальна: сумісність типу заснована на назві типу. Структурна: сумісність типів заснована на структурі типів, наприклад, у випадку C, якщо 2 змінні - це структури структури з різними іменами, …

6
Яка загальна процедура використовується, коли компілятори статично перевіряють "складні" вирази?
Примітка. Коли я використовував у заголовку "складний", я маю на увазі, що у виразі є багато операторів і операндів. Не те, що сам вираз складний. Я нещодавно працював над простим компілятором для складання x86-64. Я закінчив головний передній кінець компілятора - лексер і аналізатор - і тепер можу створити абстрактне …

1
Чи може висновок Хіндлі-Мілнера працювати для мови Go?
Я читав, що Hindley-Milner не працює з типами систем, які мають підкласи, і є інші функції системи, які також не працюють з цим. Наразі Go має лише дуже обмежений тип висновку в :=операторі. Але у Go немає підкласів у традиційному розумінні, лише інтерфейси, які дуже схожі на типи класів Haskell, …

1
Чому у Haskell немає лямбда-абстракцій на рівні?
Чи є якісь теоретичні причини для цього (наприклад, перевірка типу чи умовивід типу стане нерозбірливою) або практичні причини (занадто складно їх правильно реалізувати)? Наразі ми можемо обернути речі newtypeподібними newtype Pair a = Pair (a, a) а потім мати Pair :: * -> * але ми не можемо зробити щось …

2
Перевірка типів та рекурсивні типи (написання комбінатора Y в Haskell / Ocaml)
Коли пояснюється комбінатор Y в контексті Haskell, зазвичай зазначається, що пряма реалізація не перевірить тип в Haskell через його рекурсивного типу. Наприклад, з Rosettacode : The obvious definition of the Y combinator in Haskell canot be used because it contains an infinite recursive type (a = a -> b). Defining …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.