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

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

4
Можете ли вы указать язык программирования без реализации?
Возможно ли теоретически указать язык программирования, для которого не может быть никакой реализации? Язык программирования - это способ определения функций. Реализация означает метод для выполнения данной программы на этом языке на заданном входе для вывода функции, соответствующей программе на этом входе. Каковы минимальные требования такого языка?

1
Типы как гражданин первого класса
Исходя из опыта C ++, я не понимаю, зачем нужны типы / выражения типов как первоклассный гражданин? Единственный язык, который я знаю, который поддерживает эту функцию, это Aldor. Есть ли у кого-нибудь литература о типах как первоклассном гражданине или есть причины, почему это полезно?

8
Соответствующее существительное для «без побочных эффектов»?
Для функций или вычислений у нас есть такие термины, как: Детерминизм - Детерминизм Чистый - Чистота Теперь, каково правильное существительное, соответствующее без побочных эффектов ? "Побочный эффект свободы"? "Побочный эффект свободы"? «Небоковая эффективная»?

2
Что делает лямбда-исчисление актуальным для изучения?
Следующей осенью я начинаю курс по информатике для студентов, но я не могу понять λ-исчисление в контексте функционального программирования. Возможно, я полностью неверно истолковываю это, но, исходя из этого определения из Стэнфордской энциклопедии философии, это просто еще одно обозначение функций. Если это как раз то, почему это выгодно использовать λ-исчисление …

3
анонимные лямбда-функции (функциональное программирование)
Что такое анонимные (лямбда) функции? Каково формальное определение анонимной функции в функциональном языке программирования? Проще говоря, когда я программирую на схеме / lisp, я бы сказал, что анонимная (лямбда) функция - это функция, которая не связана с идентификатором. Это все, что вы можете сказать формально о лямбда-функции? Я думаю, что …

1
Язык программирования, который может реализовывать только вычислимые биективные функции?
Существуют ли языки программирования (или логика), которые могут реализовать (или выразить) функцию тогда и только тогда, когда f вычислимые биективные функции?f:N→Nf:N→Nf:\mathbb{N}\to \mathbb{N}fff

3
Полиморфизм и индуктивные типы данных
Мне любопытно. Я работал над этим типом данных в OCaml : type 'a exptree = | Epsilon | Delta of 'a exptree * 'a exptree | Omicron of 'a | Iota of 'a exptree exptree Которым можно манипулировать, используя явно типизированные рекурсивные функции (функция, которая была добавлена ​​совсем недавно). Пример: …

2
В чем разница между переменными и указателями?
Когда я читал статью с описанием различий в ОО и функциональном программировании, я наткнулся на указатели функций. Прошло много времени с тех пор, как я получил степень в области компьютерных наук (2003), и поэтому я искал указатели, чтобы освежить свою память. Указатели - это переменные, содержащие ссылку на адрес памяти. …

2
Скомпилируйте язык программирования с самим собой
Я студент информатики. Я хочу создать свой собственный язык программирования (базовый язык с несколькими инструкциями). Я знаю, как сделать синтаксический анализатор, я уже сделал это в Perl. В статье я прочитал кое-что о компиляторе, компилятор сделан сам по себе. Например, компилятор C написан на C. Как это возможно? Я могу …

3
Почему состояние остается неизменным в небольшой семантике операционного цикла while?
Обычно я вижу, что в представлении структурной операционной семантики для цикла while состояние программы не изменяется: (whileBdoS,σ)→(ifBthenS;(whileBdoS)elseSKIP,σ)(whileBdoS,σ)→(ifBthenS;(whileBdoS)elseSKIP,σ)(while \> B \> do \>S, \sigma) \rightarrow (if \>B \> then \>S; (while \> B \> do \>S) \> else \> SKIP, \sigma) Для меня это не интуитивно понятно, если состояние не меняется …

1
При использовании в качестве стека вызовов образует ли DAG стеки из спагетти без мусора?
Я изучаю методы реализации языков программирования и недавно натолкнулся на стеки спагетти, которые предположительно хорошо подходят для модели стиля передачи продолжения (учитывая их использование, например, в Scheme и SML / NJ ). Для упрощения, давайте рассмотрим только однопоточные процессы для этого вопроса. Однако меня немного смущает диаграмма в Википедии (также …

1
Что является необдуманным примером того, что статическая проверка типов слишком консервативна?
В « Концепциях языков программирования» Джон Митчелл пишет, что статическая проверка типов обязательно является консервативной (чрезмерно строгой) из-за проблемы остановки. Он приводит в качестве примера: if (complicated-expression-that-could-run-forever) then (expression-with-type-error) else (expression-with-type-error) Может ли кто-то дать не надуманный ответ, который действительно будет иметь практическое значение? Я понимаю, что Java позволяет динамически …

4
Что такое семантика языка программирования?
В главе 1 « Практических основ языков программирования» автор упоминает, что абстрактные синтаксические деревья связаны с сортировками . Интуитивно, сортировки похожи на типы, но я хотел бы знать, есть ли у них точное определение. Я был бы рад, если бы некоторые ссылки были также предоставлены.

2
Учитывает ли алгоритм двухстороннего исключения Петерсона процессы умирания?
Я думаю , что в алгоритме Петерсона для взаимного исключения , если процесс первого , чтобы войти в критическую секцию должны были умереть или быть аннулирована, другой процесс будет петля навсегда, ожидая , чтобы войти в критическую секцию. На рисунке, если процесс 1 остановлен, остальные процессы, стоящие за процессом 1, …
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.