Вопросы с тегом «programming-languages»

Вопросы, связанные с проектированием, реализацией и анализом языков программирования. НЕ для вопросов о том, как программировать, которые не по теме на этом сайте.

3
Почему использование лексера / парсера для двоичных данных так неправильно?
Я часто работаю с лексером / парсерами , в отличие от комбинатора парсеров, и вижу людей, которые никогда не посещали уроки по синтаксическому анализу, спрашивают о парсинге двоичных данных. Обычно данные не только двоичные, но и контекстно-зависимые. Это в основном приводит к тому, что токен только одного типа, токен для …

3
Какие другие языки программирования, кроме Python и предшественника, используют отступ для определения блоков кода? [закрыто]
Закрыто. Этот вопрос не по теме . В настоящее время он не принимает ответы. Хотите улучшить этот вопрос? Обновите вопрос так, чтобы он был по теме для Computer Science Stack Exchange. Закрыто 11 месяцев назад . Python довольно широко использует отступы для синтаксического определения блоков кода. (См. Составные операторы в …

1
Монада ввода-вывода технически неверна?
На вики Haskell есть следующий пример условного использования монады ввода / вывода (см. Здесь) . 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 …

3
Связь между расселевской теорией типов и системами типов
Недавно я понял, что существует некоторая связь между теорией Расселла и системами типов, как, например, в 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
Имеет ли смысл иметь понятия «ноль» и «возможно»?
При создании клиента для веб-API в C # я столкнулся с проблемой, связанной nullсо значением, в которой он представлял бы две разные вещи: ничего , например, fooможет иметь или не иметьbar неизвестно : по умолчанию ответ API включает только подмножество свойств, вы должны указать, какие дополнительные свойства вы хотите. Таким …

1
Инструмент прототипирования семантики языка программирования
Существует ли какой-либо инструмент для создания прототипа семантики и системы типов языка программирования, который также позволяет выполнять некоторую проверку моделей стандартных свойств, например, правильности типа? Я спрашиваю об этом, потому что я читаю книгу по Alloy, и она предоставляет именно ту функциональность, которая мне нужна, но для моделей, выраженных с …

4
Почему мы должны обменять абстракцию на скорость?
Почему языки высокого уровня, по-видимому, никогда не достигают языков низкого уровня с точки зрения скорости? Примерами языков высокого уровня могут служить Python, Haskell и Java. Низкоуровневые языки было бы сложнее определить, но, скажем, C. Сравнения можно найти по всему Интернету и все они согласны с тем, что 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 …
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 (Фридман и Ванд), но они элегантно обходят алгебраические типы данных. То, что у меня есть, работает плавно; если …

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.