?

Log in

No account? Create an account
ru_declarative [entries|archive|friends|userinfo]
ru_declarative

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

Вакансия на Scala. [Aug. 29th, 2017|07:03 pm]
ru_declarative

potan
Тут внезапно освободилась вакансия Scala-разработчика, возможно переобучение с других языков. Разрабатывать придется облачный (хостится на AWS) энтерпрайзный PLM. Зарплаты рыночные и раз в год индексируются. Компания (слишком) быстрорастущая. Называется Adalisk. Оффис около метро Ясенево в Москве.
Есть желающие?
link2 comments|post comment

Учебник теории категорий, версия 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

Пролог, порядок целей в зависимости от данных [Jul. 18th, 2015|08:40 pm]
ru_declarative

beroal
[Tags|, , ]

Есть ли вариант Пролога, который выбирает порядок целей в зависимости от данных? Пример.
code_rem(zero) --> [false].
code_rem(succ(zero)) --> [true].
code_n(zero) --> [false].
code_n(succ(N)) --> [true], {div_mod(N, succ(succ(zero)), Q, R)}, code_rem(R), code_n(Q).

code_n работает только как print. Если поменять порядок атомов:
code_n(succ(N)) --> [true], code_rem(R), code_n(Q), {div_mod(N, succ(succ(zero)), Q, R)}.

работает только как parse.

[Update 2015-08-03. Сделал с помощью when. Правда, пришлось подправить и арифметику. Теперь приходится обходиться без DCG. Зато теперь порядок целей в программе не важен.
add(X, Y0, Y1) :- when((nonvar(Y0); nonvar(Y1)), add1(X, Y0, Y1)).
add1(X, zero, X).
add1(X, succ(Y0), succ(Y1)) :- add(X, Y0, Y1).
le(X, Y) :- add(_, X, Y).
lt(X, Y) :- le(succ(X), Y).

mult_add(R, Y, Q, X) :- when((nonvar(Q); nonvar(X)), mult_add1(R, Y, Q, X)).
mult_add1(R, _, zero, R).
mult_add1(R, Y, succ(Q), X) :- mult_add(R, Y, Q, X1), add(X1, Y, X).
mult(Y, Q, X) :- mult_add(zero, Y, Q, X).
div_mod(X, Y, Q, R) :- mult_add(R, Y, Q, X), lt(R, Y).

code_rem(N, S0, S) :- when((nonvar(N); nonvar(S0)), code_rem1(N, S0, S)).
code_rem1(zero, [false|S], S).
code_rem1(succ(zero), [true|S], S).
code_n(N, S0, S) :- when((nonvar(N); nonvar(S0)), code_n1(N, S0, S)).
code_n1(zero, [false|S], S).
code_n1(succ(N), [true|S0], S)
	:- div_mod(N, succ(succ(zero)), Q, R)
	, code_rem(R, S0, S1)
	, code_n(Q, S1, S)
	.

]
link6 comments|post comment

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