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

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

4
Чому функція з поліморфним типом `forall t: Type, t-> t` має бути тотожною функцією?
Я новачок у теорії мови програмування. Я дивився деякі онлайн-лекції, в яких викладач стверджував, що функція з поліморфним типом forall t: Type, t->tє тотожністю, але не пояснив, чому. Може хтось мені пояснить, чому? Може бути доказом претензії з перших принципів.

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

3
Проблеми із застосуванням закривань у нефункціональних налаштуваннях
У мовах програмування закриття - популярна і часто бажана особливість. Вікіпедія говорить (моє наголос): В інформатиці закриття (...) - це функція разом із референтним середовищем для нелокальних змінних цієї функції. Закриття дозволяє функції отримувати доступ до змінних за межами її безпосередньої лексичної області. Отже, закриття - це, по суті, значення …

8
Які проблеми процесуального програмування вирішує ООП на практиці?
Я вивчив книгу "С ++ Демістифікований" . Тепер я почав читати "Об'єктно-орієнтоване програмування в першому виданні Turbo C ++ (1-е видання)" Роберта Лафора. Я не знаю жодного знання програмування, що знаходиться поза цими книгами. Ця книга може бути застарілою, оскільки їй 20 років. У мене є останнє видання, я використовую …

2
Функції безперервного Скотта: альтернативне визначення
Я дуже боюся з цією властивістю: Нехай X,YX,YX,Y - простори когерентності, а f:Cl(X)→Cl(Y)f:Cl(X)→Cl(Y)f: Cl(X) \rightarrow Cl(Y) монотонна функція. fff є безперервним тоді і тільки тоді, коли f(⋃x∈Dx)=⋃x∈Df(x)f(⋃x∈Dx)=⋃x∈Df(x)f(\bigcup_{x\in D} x)=\bigcup_{x \in D}f(x) , для всіх D⊆Cl(X)D⊆Cl(X)D \subseteq Cl(X) таким чином, що DDD є направленою множиною. Спрямований набір визначається таким чином: POSETD⊆D⊆D …

3
Як зробити мову гомоніконічною
Згідно з цією статтею, наступний рядок коду Lisp друкує "Hello world" на стандартний вихід. (format t "hello, world") Lisp, що є гомоніконімічною мовою , може розглядати код як дані таким чином: А тепер уявіть, що ми написали такий макрос: (defmacro backwards (expr) (reverse expr)) назад - це назва макросу, який …

5
Що робить мову "оптимізованою" для конкретного завдання?
Хочете вдосконалити цю посаду? Надайте детальні відповіді на це питання, включаючи цитати та пояснення, чому ваша відповідь правильна. Відповіді без достатньої кількості деталей можуть бути відредаговані або видалені. Часто є мови програмування, спеціалізовані для конкретних завдань. Деякі мови програмування є прекрасними в арифметиці масиву (такі як матриці та використання багатовимірних …

2
Що робить PROLOG Turing повним?
Я знаю, що це можна довести, що PROLOG є Тюрінг-завершеним, створивши програму, яка імітує машину Тьюрінга на зразок цього: turing(Tape0, Tape) :- perform(q0, [], Ls, Tape0, Rs), reverse(Ls, Ls1), append(Ls1, Rs, Tape). perform(qf, Ls, Ls, Rs, Rs) :- !. perform(Q0, Ls0, Ls, Rs0, Rs) :- symbol(Rs0, Sym, RsRest), once(rule(Q0, Sym, …

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

4
Чи може мова програми бути досить плавним, щоб програма могла розширити семантику мови
З посиланням на особливості таких мов, як рубін (і javascript), які дозволяють програмісту розширювати / переосмислювати класи в будь-який час після його визначення (включаючи класи типу String), чи теоретично доцільно розробити мову, яка дозволить програмам згодом розширювати його семантика. напр .: Ruby не допускає багаторазового успадкування, але чи можу я …

3
Які мови досліджень мають більш сильну типову систему, ніж Haskell і чому?
Ось я прочитав це: У Haskell, безумовно, немає найсучаснішої системи типів (навіть не тісна, якщо рахувати дослідницькі мови), але з усіх мов, які фактично використовуються у виробництві Haskell, ймовірно, на самому верху. Тому я запитую дві речі: які дослідницькі мови мають більш потужні системи типу, ніж Haskell; що вони покращують. …

2
Чи є рецензовані документи, що вивчають плюси та мінуси функціонального програмування?
Чи може хтось віднести мене до рецензованих робіт, що вивчають переваги чи недоліки написання коду у функціональному стилі? Чи існують документи, в яких обговорюється застосування обчислення лямбда в таких сферах, як машинне навчання, мовний дизайн тощо?

7
Чому індекси негативного масиву мають сенс?
Я натрапив на дивний досвід програмування на С. Розглянемо цей код: int main(){ int array1[6] = {0, 1, 2, 3, 4, 5}; int array2[6] = {6, 7, 8, 9, 10, 11}; printf("%d\n", array1[-1]); return 0; } Коли я компілюю та запускаю це, я не отримую жодних помилок чи попереджень. Як …

3
Яка різниця між обчисленням і мовою програмування?
Я думаю, що я дуже розгублений щодо того, що називається обчисленням і що називається мовою програмування. Я схильний думати, і, можливо, сказали б, що обчислення є формальною системою для міркувань про еквівалентність програм. У програмах є оперативна семантика, визначена машиною, яка повинна (я думаю?) Бути детермінованою. Таким чином, (правильне) обчислення …

2
Довідковий запит: Теорія категорій, що стосується систем типів
Я постійно чую, як треба вивчити теорію категорій, щоб справді зрозуміти теорію мови програмування. Поки що я навчився великій кількості PL, не вступаючи ніколи в сферу категорій. Однак я подумав, що настав час зробити стрибок, щоб побачити, чого я пропустив. На жаль, жодне з джерел, які я можу знайти, здається, …

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