Запитання з тегом «programming-languages»

Питання, пов'язані з розробкою, реалізацією та аналізом мов програмування. НЕ для питань, як програмувати, які є поза темою на цьому сайті.

3
Чому використання лексера / парсера для двійкових даних так неправильно?
Я часто працюю з лексером / парсерами , на відміну від комбінатора парсера і бачу людей, які ніколи не брали клас на розбір, запитують про розбір бінарних даних. Зазвичай дані не тільки двійкові, але й контекстно-залежні. Це в основному призводить до наявності лише одного типу токена, лексеми для байта. Чи …

3
Які ще мови програмування, крім Python та попередника, використовуються відступи для визначення кодових блоків? [зачинено]
Зачинено. Це питання поза темою . Наразі відповіді не приймаються. Хочете вдосконалити це питання? Оновіть питання, щоб воно було тематичним для обміну стеками з інформатики. Закрито 11 місяців тому . Python досить відомий використовує відступ для синтаксичного визначення блоків коду. (Див. Складені твердження у довідці про мову Python). Після років …

1
Чи монада IO технічно неправильна?
На вікі haskell є наступний приклад умовного використання монади IO (див. Тут) . when :: Bool -> IO () -> IO () when condition action world = if condition then action world else ((), world) Зауважимо, що в цьому прикладі дане визначення IO aмає бути таким, RealWorld -> (a, RealWorld)щоб …

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

2
Обчислення лямбда: різниця між контекстами та контекстами оцінки
По-перше, я хотів би сказати, що мій текст нижче може містити помилки, тому сміливо вказуйте на будь-які помилки в моїй постановці питання. Розглянемо нетипічне обчислення лямбда з булевими та if-висловлюваннями, терміни яких задані цим синтаксисом: t ::= v | t t | if t t t | x v ::= …

3
Зв'язок між теорією Руссельського типу та системами типів
Нещодавно я зрозумів, що існує якась залежність між теорією типу Руссель та типовими системами, як, наприклад, у Haskell Насправді, деякі позначення типів у Haskell, схоже, є попередниками в теорії типів. Але, IMHO, мотивація Рассела в 1908 році полягала в тому, щоб уникнути парадоксу Рассела, і я не впевнений, як це …

4
Чи може хтось надати простий, але неіграшковий приклад контекстно-залежної граматики?
Я намагаюся зрозуміти контекстно-залежні граматики. Я розумію, чому так люблять мови { w w ∣ w ∈ A∗}{ww∣w∈A∗}\{ww \mid w \in A^*\} {anbncn∣n∈N}{anbncn∣n∈N}\{a^n b^n c^n \mid n\in\mathbb{N}\} не є контекстними, але що я хотів би знати, якщо мова, схожа на нетипізований лямбдальний числення, є залежною від контексту. Я хотів би …

4
Чи має сенс мати і поняття "null", і "можливо"?
Створюючи клієнта для веб-API в C #, я зіткнувся з проблемою, nullякою він вважав би дві різні речі: нічого , наприклад, fooможе бути або не матиbar невідомо : за замовчуванням відповідь API включає лише підмножину властивостей, ви повинні вказати, які додаткові властивості ви хочете. Так невідомо означає, що власність не …

1
Засіб програмування мови семантики програмування
Чи є який-небудь інструмент для прототипування семантики мови та системи типу програмування, який також дозволяє перевірити типові моделі стандартних властивостей, наприклад, міцність типу? Я запитую це, тому що я читаю книгу про Alloy, і вона забезпечує точний функціонал, який я хочу, але для моделей, виражених за допомогою реляційної логіки. Я …

4
Чому нам доводиться торгувати абстракцією для швидкості?
Чому мови високого рівня, схоже, ніколи не досягають мов нижчого рівня за швидкістю? Прикладами мов високого рівня можуть бути Python, Haskell та Java. Мови низького рівня були б складнішими для визначення, але скажімо C. Порівняння можна знайти по всьому Інтернету 1, і всі вони згодні з тим, що C набагато …

3
Чим відрізняються абстрактні типи даних від об'єктів?
Відповідь на Programmers.SE характеризує есе Кука ( об'єкти не АТД ) , як кажуть Об'єкти ведуть себе як характерна функція над значеннями типу, а не як алгебра. Об'єкти використовують процедурну абстракцію, а не абстракцію типу ADT зазвичай мають унікальну реалізацію в програмі. Якщо в мові є модулі, можливе кілька реалізацій …

2
Чому в аналізі програми важлива найменша фіксована точка (lfp)
Я намагаюся скласти велику картину щодо важливості найменш фіксованої точки (lfp) в аналізі програми. Наприклад, абстрактне тлумачення, здається, використовує існування lfp. Багато дослідницьких робіт з програмного аналізу також зосереджуються на пошуку найменш фіксованої точки. Більш конкретно, ця стаття у вікіпедії: Теорема Кнастера -Тарського зазначає, що lfp використовується для визначення семантики …

5
Визначення стану об’єкта в ООП
Мені потрібно стисло визначити "стан об'єкта" в об'єктно-орієнтованому програмуванні (для статті). Близько половини дня я шукав папір, який можу цитувати на цю тему, але не зміг його знайти. Усі статті, які я знайшов, були в основному загальними статтями про об'єктно-орієнтоване програмування, і вони не визначали стан об'єкта. Я не впевнений, …

1
Визначення типів уточнення
На роботі мені було доручено виводити інформацію про тип динамічної мови. Я переписую послідовності висловлювань у вкладені letвирази, як-от так: return x; Z => x var x; Z => let x = undefined in Z x = y; Z => let x = y in Z if x then T …
11 programming-languages  logic  type-theory  type-inference  machine-learning  data-mining  clustering  order-theory  reference-request  information-theory  entropy  algorithms  algorithm-analysis  space-complexity  lower-bounds  formal-languages  computability  formal-grammars  context-free  parsing  complexity-theory  time-complexity  terminology  turing-machines  nondeterminism  programming-languages  semantics  operational-semantics  complexity-theory  time-complexity  complexity-theory  reference-request  turing-machines  machine-models  simulation  graphs  probability-theory  data-structures  terminology  distributed-systems  hash-tables  history  terminology  programming-languages  meta-programming  terminology  formal-grammars  compilers  algorithms  search-algorithms  formal-languages  regular-languages  complexity-theory  satisfiability  sat-solvers  factoring  algorithms  randomized-algorithms  streaming-algorithm  in-place  algorithms  numerical-analysis  regular-languages  automata  finite-automata  regular-expressions  algorithms  data-structures  efficiency  coding-theory  algorithms  graph-theory  reference-request  education  books  formal-languages  context-free  proof-techniques  algorithms  graph-theory  greedy-algorithms  matroids  complexity-theory  graph-theory  np-complete  intuition  complexity-theory  np-complete  traveling-salesman  algorithms  graphs  probabilistic-algorithms  weighted-graphs  data-structures  time-complexity  priority-queues  computability  turing-machines  automata  pushdown-automata  algorithms  graphs  binary-trees  algorithms  algorithm-analysis  spanning-trees  terminology  asymptotics  landau-notation  algorithms  graph-theory  network-flow  terminology  computability  undecidability  rice-theorem  algorithms  data-structures  computational-geometry 

1
Типові умовиводи, засновані на обмеженнях, з алгебраїчними даними
Я працюю над мовою генеалогії ML, заснованої на виразі, тому вона, природно, потребує введення тексту> :) Зараз я намагаюся розширити рішення на основі обмежень для проблеми випливаючих типів, що базується на простому впровадженні в EOPL (Friedman and Wand), але вони елегантно є алгебраїчними типами даних бічного кроку. Те, що я …

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