14
$\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$
2

3 Answers 3

13
$\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$
4
  • 1
    $\begingroup$ Eff is very cool -- what I understand about deliminted continuations comes mostly from it. $\endgroup$ Aug 21, 2012 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$ Aug 21, 2012 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, 2012 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$ Aug 22, 2012 at 16:28
9
$\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$
4
  • 2
    $\begingroup$ I am afraid that you have probably misunderstood the question. $\endgroup$ Aug 22, 2012 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$ Aug 23, 2012 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$ Aug 25, 2012 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$ Aug 28, 2012 at 3:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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