archives

Propositional Satisfiability and Constraint Programming: A comparative Survey

Propositional Satisfiability and Constraint Programming: A comparative Survey. Lucas Bordeaux; Youssef Hamadi; L. Zhang.

Propositional Satisfiability (SAT) and Constraint Programming (CP) have developped as two relatively independent threads of research, cross-fertilising occasionally. These two approaches to problem solving have a lot in common, as evidenced by similar ideas underlying the branch and prune algorithms which are most successful at solving both kinds of problems. They also exhibit differences in the way they are used to state and solve problems, since SAT's approach is in general a black-box approach, while CP aims at being tunable and programmable. This report overviews the two areas in a comparative way, emphasizing the similarities and differences between the two and the points where we feel that one technology can benefit from ideas or experience acquired from the other.

This is a long and detailed survey, that may serve as an introduction to the two fields.

How useful these searching strategies are as programming language constructs is open to debate, of course.

LtU etiquette

I'd like the thank everyone who took the time to offer suggestions and ideas.

Because of the importance of this issue, I am posting this as a new home page item.


Reading the discussion, it seems some things are in need of clarification. Lambda the Ultimate was created by me and by the LtU community to serve our needs and interests, and though these are quite broad, LtU was never intended to be the single programming language site on the net, nor will it ever attempt to be one. There are many other sites, and if the style of discussion here seems too highbrow for what one has in mind, other sites are available. In the same vein, LtU cannot replace language specific sites, and is intended to explore topics that are of general interest. Code examples are more than welcome, provided they are enlightening and instructional, we were never only about theory.

LtU has large and vibrant community, with diverse interests and skills. The main thing uniting us is our interest in programming languages. If your interests are sincere, you belong here. As you become part of the community, you naturally have a larger impact on the topics under discussion. Luke, for example, is a long time reader and contributor and yet he asks whether specific subjects are appropriate. If Luke finds a topic to be of interest to the community, I for one would be happy to learn about it. The same goes for the other editors, and most long time readers who aren't editors as well. Luke and others ask me (or other members via the forum) about items they are unsure of - because they care about the site and the community. They are genuine members of the community. Sincerity is key.

This is part of the culture of LtU, and I don't think technical solutions are needed or helpful in maintaining it. I am also unsure how to explain this culture in a FAQ, but we will give it a shot, since many mentioned this as a problem. Several good suggestions were made in the previous thread, and we may lift them and create a more detailed FAQ.

It seems most members like LtU the way it is (or used to be), and we should try to make as little a change as possible, to counterbalance the recent problems.

Now for more specific measures:

1. Signatures will be eliminated - effective immediately. Personally, I also don't like pseudonyms, but I will not mandate this preference since people raised good counter arguments when this was last discussed.

2. I will be more pro-active when it comes to deleting posts that don't seem sincere. Most responses in the previous thread seemed to be ok with that. I might ask other editors to assist, since I don't have the time to do it myself. Voting seems too complicated, and I don't think it is appropriate for the kinds of problem we had in mind.

3. Banning - it seems no one is really against banning real trolls. I am not sure how to do this (since users can create new accounts), but I think we will keep the option to do this, and use it if we find it appropriate. I think I will not ban users before discussing the matter with at least one other editor.

4. We need to add links to various other PL sites (comp.lang.misc, C2, etc.) to the FAQ.

5. The FAQ links to the Getting Started thread, we should link to other introductory threads. If you have suggestions on what to include, use the comments to tell us.

6. We are in the process of starting a LtU-Wikipedia about PLs. This will take some time but will also help.

7. Regulars should be more pro-active in politely letting newcomers know when they post items that aren't appropriate. If you, as a LtU regular, are unsure about your objection, it is best to mention it publicly. Thanks!

Finally let me end by reminding everyone that posting here isn't a right, it's a privilege. The LtU community, even though ad hoc and without institutions, is strong enough a community to maintain the atmosphere of polite and sincere discussion we are used to having. However, in cases where it proves necessary, we will remove topics and posters that undermine this goal.

Invokedynamic

Gilad Bracha:

Basically, it will be a lot like invokevirtual (if you don’t know what that is, either open a JVM spec and find out, or stop reading). The big difference is that the verifier won’t insist that the type of the target of the method invocation (the receiver, in Smalltalk speak) be known to support the method being invoked, or that the types of the arguments be known to match the signature of that method. Instead, these checks will be done dynamically.

There will probably be a mechanism for trapping failures (a bit like messageNotUnderstood in Smalltalk).

The goal: Improve the support for dynamically type checked languages on the JVM, of course.

Active Objects with Syntax Directed Dialogs

Zonnon offers a new computing model based on active objects with their interaction defined by syntax controlled dialogs.

The Concepts of Zonnon: A language for systems engineering with Modules, Objects and Concurrency



And there's a Zonnon compiler for .Net