As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I have a some experience programming, and I want to understand grammar parsing, for both grammar in context and out of context. Where can I learn about grammar parsing? Are there any good books, sites, or forums you'd recommend?
Please note, I'm learning to program by myself, and have no formal training what so ever.
Compilers: Principles, Techniques, and Tools by Aho, Lam, Sethi, and Ullman, aka. "The Dragon Book" goes in great depth about constructing parsers for context-free grammars.
As for context-sensitive grammars, deciding whether a string belongs to the language specified by a given context-sensitive grammar is PSPACE-complete. In most cases what you'll do is parse the string according to a context-free grammar first, and then apply context-sensitive rules to the result. For example, the rule that in C variables must be declared before they are used is implemented as such a rule.
There are a few other approaches, useful for when the context-sensitive rules adhere to certain constraints (so called mildly context-sensitive grammars). See the Wikipedia article for more on these.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I need to do a project for class in Prolog but they gave us no guidance at all in the language it self. I was reading http://kti.mff.cuni.cz/~bartak/prolog/contents.html but I am not understanding anything of what I am reading.
Any better sources out there you can share?
Bratko's "Prolog Programming for AI" is excellent, clear, lively, accessible. Sterling and Shapiro's "The Art of Prolog" is very good too, very thorough with the basic/foundational stuff.
Bratko was the one were it "clicked" for me. I took this slogan from him (don't remember if he wrote it or if I distilled it from his book somehow) - in Prolog, to understand the question is to have your answer. Writing down the question properly gives you a runnable program, more or less. I remember reading a page on AVL trees where he wrote down the definition, and I turned the page expecting to see the "solution". But it was already about something else. Turning the page back I realized, that the statement of what AVL trees were, was already the program itself.
Many moons ago, I liked the book Programming in Prolog by William F. Clocksin & Christopher S. Mellish. It also helps to work through exercises and see how the language works. You can work through some problems from this site Werner Hett's P-99: Ninety-Nine Prolog Problems and here SWI Prolog is a good implementation to use.
I like Adventures in Prolog, but learning a logic language on your own can be very hard. You really can learn much faster and more correctly with a mentor or taking a college course.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I've been trying to read and understand the contents of this book: http://www.amazon.com/Introduction-Algorithms-Thomas-H-Cormen/dp/0262033844
But I'm finding the contents to be challenging purely because I don't understand the mathematical or pseudo code notation. Are there any resources or books I should read / study in order to help me understand the content? I think I'm looking for the missing mathematical link in my life. I need something to bridge the gap between school and college level.
Thanks
Chris
Maybe go for a book where the examples are given in a specific language rather than pseudo-code. e.g. Algorithms in C++ by Sedgewick is a grand book if you know C++. Many of the older books tend to use Pascal like pseudo code, where Pascal isn't as common as it once was.
Being able run the code under a debugger, single stepped watching variables change, is also a great aid to understanding how the algorithm works.
Be sure to read the first sections and the appendix at the end of the book, which has some mathematical background explained.
A good, not easy, but suitable for high school student, introduction to mathematics used in computer science is Concrete Mathematics, by Knuth, Graham & Patashnik.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I will be teaching only one lecture on basic Prolog to students with little to no experience in programming. I'd like them to see that programming and Prolog can be used in the real world, perhaps even to do cool things.
I have looked at this and this threads, but I cannot find anything that is visually appealing that I can show them when we wrap up the lecture.
Do you have any suggestions for cool applications that use Prolog? I'm especially looking for something that can be shown as a video or slideshow.
If what you want is to highlight the uses of prolog and use audio-visual media merely for presentation purposes, combining the following 2 links might do it:
Natural language processing with prolog in the IBM Watson system
IBM's Watson supercomputer destroys all humans in Jeopardy
Dynalearn is implemented in Prolog and has animations.
See:
http://personnel.univ-reunion.fr/fred/Enseignement/Prolog/index.html
under "La librairie clpfd", there are links to 3 finite domain constraint animations (N-Queens, Sudoku, Knight Tour) that are used in this class.
InFlow is written in Prolog. You may browse through the examples and / or contact the author for details. VisiRule might also help.
Disclaimer: I have not used either InFlow or VisiRule, but I do use WIN-Prolog which is the environment used for both programs.
+1 for Visirule. It is, as far as I can tell (and I've researched this topic quite a lot) a unique visual programming tool (I don't know of any other visual tool that is easily reduced to a turing-complete language). I have implemented a trouble-shooting website with it along with various other solutions. Highly recommended- version 5 coming out soon too.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 12 years ago.
The programming language or The programming logic.....
Because both are equally important for good coding practice. And, please justify your answer.
What makes a program to be a good program?
Being able to address the customer needs and make him happy.
Programming language, programming logic, code style etc. are nonessential to the success.
The programming language doesn't have squat to do with a good program, you can write ugly code in C++ and elegant code in LOLcode and if they perform the same function nobody will care. Most important is that the code is bug free and performs its function.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
What book would you recommend for a beginner in PROLOG? I currently know Perl.
I recommend Blackburn, Bos and Striegnitz, Learn Prolog Now. This was used in my academic course on Prolog. Full text is freely available online.
Prolog Programming for Artificial Intelligence
Its excellent :)
Clocksin, Mellish – Programming in Prolog
And some theoretical introductions into the foundation of prolog – Horn logic, DLP logic etc. if not yet present
The Art of Prolog by Leon Sterling and Ehud Shapiro.
I recommend Logic Programming in Prolog by Max Bramer. It helped me to learn prolog from scratch. You don't have to know any other programming languages or complex mathematical concepts.