Чи є додатки абстрактної алгебри до теорії мови програмування? Чи є щось, що було б корисно в мовному дизайні та реалізації компілятора?
Чи є додатки абстрактної алгебри до теорії мови програмування? Чи є щось, що було б корисно в мовному дизайні та реалізації компілятора?
Відповіді:
Алгебра в класичному сенсі цього слова використовується при моделюванні обчислювальних ефектів як алгебраїчних операцій, дивіться, наприклад, ці слайди Гордона Плоткіна, або ви можете прочитати реальні статті та кандидати наук. тези , якщо ви насправді мали намір задати питання.
І щоб забити мій власний ріг, подивіться на Еффа та прочитайте про нього , мову, розроблену навколо ідеї, що обчислювальні ефекти - це алгебраїчні операції та що обробники - це гомоморфізми алгебр.
Я вагаючись відповів, тому що будь-яка відповідь, що перевищує просте "так", могла і не заповнити томи. Семантика мови програмування була глибоко сформована і, у свою чергу, глибоко сформувала розвиток категоричної логіки, що є застосуванням алгебри до логіки.
Але я підозрюю, що найкращий спосіб відповісти на це запитання - це сказати вам піти вивчати Агду - досвід навчання програмуванню залежними типами в значній мірі наближається до того, як всебічно алгебра пронизує комп'ютерне програмування.
Насправді існує програмне забезпечення для теоретичної абстрактної алгебри. Ця програма дозволяє обчислити деякі речі, такі як групи дій, гомоморфізм тощо. Це Magma: http://magma.maths.usyd.edu.au/magma/
Я сподіваюся, що це може вам допомогти.