11
$\begingroup$

Are there any applications of Abstract Algebra to Programming Language Theory? Is there anything that would be useful in language design and compiler implementation?

$\endgroup$
11
$\begingroup$

Algebra in the classical sense of the word is used in modeling of computational effects as algebraic operations, see for example these slides by Gordon Plotkin, or you can read real papers and Ph.D. theses, if you actually meant to ask the question.

And to blow my own horn, have a look at Eff and read about it, a language designed around the idea that computational effects are algebraic operations and that handlers are homomorphisms of algebras.

$\endgroup$
  • 1
    $\begingroup$ Eff is very cool -- what I understand about deliminted continuations comes mostly from it. $\endgroup$ – Neel Krishnaswami Aug 21 '12 at 11:31
  • $\begingroup$ I am considering a blog reaction to Oleg's "callcc considered harmful" in which I argue that eff is the structured way of working with continuations. $\endgroup$ – Andrej Bauer Aug 21 '12 at 20:56
  • $\begingroup$ Thanks to everyone for answering. I had to accept @AndrejBauer's answer since he implemented his own language as an answer to the question :) $\endgroup$ – n00b101 Aug 22 '12 at 1:25
  • $\begingroup$ You've got the order of things wrong there :) It just so happens that Matija and I implemented a language which fits your question. $\endgroup$ – Andrej Bauer Aug 22 '12 at 16:28
7
$\begingroup$

I've hesitated to answer because any answer beyond a simple "yes" could and does fill volumes. Programming language semantics has been profoundly shaped by and in turn has deeply shaped the development of categorical logic, which is the application of algebra to logic.

But I suspect the best way of answering this question is to tell you to go learn Agda -- the experience of learning to program with dependent types is in large measure coming to grips with how comprehensively algebra pervades computer programming.

$\endgroup$
-1
$\begingroup$

Actually there a software for theorical abstract algebra. This soft allow compute some kinds of things like actions groups, Homomorphism etc... It is Magma: http://magma.maths.usyd.edu.au/magma/

I hope this can help you.

$\endgroup$
  • 2
    $\begingroup$ I am afraid that you have probably misunderstood the question. $\endgroup$ – Tsuyoshi Ito Aug 22 '12 at 21:17
  • $\begingroup$ You think? Well, with Magma you have a library in particular topic about abstract algebra, useful environment for apply in other fields, for example programming language... $\endgroup$ – Camilo Soler Aug 23 '12 at 0:08
  • 1
    $\begingroup$ (1) If Magma has a library in particular topic about abstract algebra which is useful to apply to the programming language theory, then you should write about that application. I do not think that a pointer to Magma is helpful in the context of this question. (2) To be honest, I doubt that you understand what “programming language theory” means. $\endgroup$ – Tsuyoshi Ito Aug 25 '12 at 17:17
  • $\begingroup$ OK, I just wanted express my idea on another platform that has a library of abstract algebra as the basis (like example) for create or design another "programming language"... is not easy discuss here. I'm sorry if my idea was bad or wrong. $\endgroup$ – Camilo Soler Aug 28 '12 at 3:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.