?

Log in

ru_declarative [entries|archive|friends|userinfo]
ru_declarative

[ userinfo | livejournal userinfo ]
[ archive | journal archive ]

Учебник теории категорий, версия 9 [Feb. 20th, 2017|09:02 pm]
ru_declarative

66george
Видимо, на этом закончу, 400 страниц достаточно. Сделал гиперссылки и закладки

https://github.com/George66/Textbook
linkpost comment

абстрактный язык программирования процессора [Feb. 4th, 2017|07:43 am]
ru_declarative

beroal
[Tags|]

Интересно, существуют ли учебники по языкам процессора вообще, то есть в которых описываются общие свойства языков процессора. Под языком процессора я подразумеваю ассемблер, машинный код. Конечно, в учебнике должны быть описаны и конкретные языки процессора в качестве примеров, но не полностью, чтобы не раздувать его ненужными деталями. Я полагаю, в качестве примеров можно взять Intel x86 и какой-нибудь RISC, например, ARM.
link19 comments|post comment

абстрактные методы решения задач [Jan. 30th, 2017|10:18 am]
ru_declarative

beroal
[Tags|]

Сразу оговорюсь, что это не вопрос, а тема для обсуждения. Метод «разделяй и властвуй» все мы знаем. Есть ещё что-то на таком же абстрактном уровне? Примеры от меня.

Нужно найти неподвижную точку функции f. Пусть x — такая последовательность, что x(succ(n)) = f(x(n)). Находим такое наименьшее n, что x(succ(n)) = x(n). Говоря неформально, вычисляем последовательность, пока она не стабилизируется.

Частный случай предыдущей задачи, где f определена на векторах. (Вектор — это функция, определённая на некотором множестве V.) Здесь тоже вычисляем последовательность «недорешений» x. Параллельно вычисляем такую последовательность с, что ∀n ∀v v∈c(n) ↔ x(n)(v) = f(x(n))(v). с показывает, в каких точках x(n) «решён». Комплемент к этому множеству называется «agenda». x(succ(n)) вычисляем следующим образом. Выбираем «нерешённый» (принадлежащий agenda) u. Для всех v, если v=u, то x(succ(n))(v) = f(x(n))(v), иначе x(succ(n))(v) = x(n)(v). Другими словами, на одном шаге «решаем» один элемент вектора. c(succ(n)) вычисляется хитро, потому что изменение элемента вектора может сделать другие элементы «нерешёнными». Полное и формальное описание алгоритма могу привести, если кому-то надо.

Прикладные варианты этой задачи — алгоритмы на графах (V — множество вершин графа) (reachability, наиболее короткий путь), дедукция «снизу» (chart parser).
linkpost comment

предикаты высшего порядка и унификация [Jan. 2nd, 2017|02:16 pm]
ru_declarative

beroal
[Tags|, , ]

Я слышал, что в некоторых версиях Пролога можно определять предикаты высшего порядка. Я так понимаю, что предикат высшего порядка — это предикат, который оперирует предикатами. Это значит, что надо реализовать унификацию предикатов. Мне кажется, для этого нужно решить проблему останова. ☺

Я знаю один яп (Oz), включающий Пролог, в котором предикаты унифицируются iff их адреса равны, и такая унификация не считается ошибкой. (Например, в Прологе выполнение арифметической операции на несвязанных (not instantiated) переменных является ошибкой.) Как эта проблема решена в других Прологах?
link4 comments|post comment

Вопрос про Agda: [May. 15th, 2016|06:41 am]
ru_declarative

kouzdra
А никто не знает - на ней хоть какие-то более или менее реальные программы писали, не обязательно сложные - на крайний случай и Тетрис какой-нибудь сойдет, но именно реальные.

PS: И тот же вопрос про Idris, хотя тут менее интересно.
link10 comments|post comment

MLton [Apr. 17th, 2016|05:06 pm]
ru_declarative

kouzdra
А никто не имел дела с этим:
What is MLton?

MLton is an open-source, whole-program, optimizing Standard ML compiler.
...
Features:
...
Untagged and unboxed native integers, reals, and words.

In MLton, integers and words are 8 bits, 16 bits, 32 bits, and 64 bits and arithmetic does not have any overhead due to tagging or boxing. Also, reals (32-bit and 64-bit) are stored unboxed, avoiding any overhead due to boxing.

Unboxed native arrays.

In MLton, an array (or vector) of integers, reals, or words uses the natural C-like representation. This is fast and supports easy exchange of data with C. Monomorphic arrays (and vectors) use the same C-like representations as their polymorphic counterparts.
А то я когда-то очень давно на него смотрел - но тогда он был откровенно недоношенным, а щас на нем даже какие-то не очень тривиальные проекты вроде пишут.

Выделенные фичи в общем-то привлекательны.
link3 comments|post comment

Отдам книги (повтор) [Jan. 24th, 2016|06:13 pm]
ru_declarative

dunemaster
Коллеги, добрый день

Отдам книги:

1) С.В. Косиков
Информационные системы: Категорный подход (пригодится 3 курсу кафедры 22 в 6 семестре на ДМ-6)

http://www.jurinfor.ru/library/978.595.870.005.html

2) В. Э. Вольфенгаген
Конструкции языков программирования

http://www.rfbr.ru/rffi/ru/books/o_38002
(дополнительная книги 3 курсу кафедры 22 МИФИ в 6 семестре)


3) В. Э. Вольфенгаген
Методы и средства вычислений с объектами

http://www.jurinfor.ru/library/978589158100.html
(основной учебник 3 курсу кафедры 22 МИФИ в 6 семестре)

Если будет желание отблагодарить за книжки, принимаем яблоки и мандарины)
link2 comments|post comment

Отдам книги [Oct. 18th, 2015|05:38 pm]
ru_declarative

dunemaster
Коллеги, добрый день

Отдам книги:

1) С.В. Косиков
Информационные системы: Категорный подход (пригодится 3 курсу кафедры 22 в 6 семестре на ДМ-6)

http://www.jurinfor.ru/library/978.595.870.005.html

2) В. Э. Вольфенгаген
Конструкции языков программирования

http://www.rfbr.ru/rffi/ru/books/o_38002
(дополнительная книги 3 курсу кафедры 22 МИФИ в 6 семестре)


3) В. Э. Вольфенгаген
Методы и средства вычислений с объектами

http://www.jurinfor.ru/library/978589158100.html
(основной учебник 3 курсу кафедры 22 МИФИ в 6 семестре)

Если будет желание отблагодарить за книжки, принимаем яблоки и мандарины)
link2 comments|post comment

navigation
[ viewing | most recent entries ]
[ go | earlier ]