Оказывается сегодня снова понедельник! И снова серия интересная книжка/статья по понедельникам.
При программировании в языках с неизменяемыми структурами данных, часто применяются методы работающие со структурой в-целом. Такие техники позволяют писать программу, как объединение более простых подпрограмм. Однако этот подход может ухудшать производительность, т.к. заставяет создавать огромные структуры данных, для решения это проблемы используется оптимизации deforestation (и fusion), основанная на правилах перезаписи выражений. При этой оптимизации удаляются промежуточные структуры и при компиляции код обрабатывающий сложную структуру превращается в настолько же эффективный, как код написанный на С, но при этом более поддерживаемый. В диссертации Дункана Котса рассматриваются различные такие правила (со ссылками на статьи о них), а так же дается доказательство корректности, и минимальные требования к языку, в котором эффективно принимать данные правила.
D. Coutts, “Stream Fusion: Practical shortcut fusion for coinductive sequence types,” 2010.
При программировании в языках с неизменяемыми структурами данных, часто применяются методы работающие со структурой в-целом. Такие техники позволяют писать программу, как объединение более простых подпрограмм. Однако этот подход может ухудшать производительность, т.к. заставяет создавать огромные структуры данных, для решения это проблемы используется оптимизации deforestation (и fusion), основанная на правилах перезаписи выражений. При этой оптимизации удаляются промежуточные структуры и при компиляции код обрабатывающий сложную структуру превращается в настолько же эффективный, как код написанный на С, но при этом более поддерживаемый. В диссертации Дункана Котса рассматриваются различные такие правила (со ссылками на статьи о них), а так же дается доказательство корректности, и минимальные требования к языку, в котором эффективно принимать данные правила.
D. Coutts, “Stream Fusion: Practical shortcut fusion for coinductive sequence types,” 2010.
Turns out today is Monday again! And again a series of interesting book / article on Mondays.
When programming in languages with immutable data structures, methods often work with the structure as a whole. Such techniques allow you to write a program as a combination of simpler routines. However, this approach may degrade performance because forces you to create huge data structures, to solve this problem, deforestation (and fusion) optimizations are used, based on the rules for rewriting expressions. With this optimization, intermediate structures are removed and during compilation, the code processing the complex structure becomes as efficient as the code written in C, but more supported at the same time. Duncan Cotts’s dissertation examines various such rules (with links to articles about them), as well as provides proof of correctness and minimum requirements for the language in which these rules are effectively adopted.
D. Coutts, “Stream Fusion: Practical shortcut fusion for coinductive sequence types,” 2010.
When programming in languages with immutable data structures, methods often work with the structure as a whole. Such techniques allow you to write a program as a combination of simpler routines. However, this approach may degrade performance because forces you to create huge data structures, to solve this problem, deforestation (and fusion) optimizations are used, based on the rules for rewriting expressions. With this optimization, intermediate structures are removed and during compilation, the code processing the complex structure becomes as efficient as the code written in C, but more supported at the same time. Duncan Cotts’s dissertation examines various such rules (with links to articles about them), as well as provides proof of correctness and minimum requirements for the language in which these rules are effectively adopted.
D. Coutts, “Stream Fusion: Practical shortcut fusion for coinductive sequence types,” 2010.
У записи 2 лайков,
0 репостов,
92 просмотров.
0 репостов,
92 просмотров.
Эту запись оставил(а) на своей стене Alexander Vershilov