3 ms·
So I am relatively naive when it comes to declarative programming in general and have not yet read this paper (I will after commenting here), but that said...
by skizm 15y ago
So I am relatively naive when it comes to declarative programming in general and have not yet read this paper (I will after commenting here), but that said...
Don't you have to (at the very least) tell the compiler how to do things? To reuse the example from the article: when you tell your friend to get you a beer, at some point your friend has learned HOW to get you a beer. Similarly the compiler will need to know HOW to do things that you declare. Sure it will be great when we can just tell the compiler that we need this list sorted in reverse alphabetical order but at some point someone is going to have to program the sorting algorithm on the back end.
Am I way off or are we just talking about a hypothetical future when compilers are (even more) black boxed and we don't have to think about them anymore?
- Tuna-Fish 15y agoDeclarative languages are defined by the fact that in them, you don't tell the compiler how to do things. You just describe the result you want, and it's the compilers job to get there. Yes, this makes the compiler rather hard to write. SQL is probably the primary example. Prolog is also well-known.
- AUmrysh 15y agoFor anyone who may not know, Prolog does this in a pretty interesting way. You have some declarations that make up your program, Prolog takes these and then uses them to conduct a logical proof (like in discrete math). You negate the premise (proof by contradiction), and then try to show that this will cause a contradiction (line 5 says Bob is Human, but line 42 says Bob is not Human). If you can find such a contradiction, your premise was true. It does this by using backtracking, which is really interesting in itself if you're not familiar with it.
- _sh 15y agoAlso fascinating is the amazing and innovative virtual machine that drives Prolog: the Warren Abstract Machine. See: http://wambook.sourceforge.net/ http://wambook.sourceforge.net/
- deleted 15y ago[deleted]