<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5844006452378085451</id><updated>2012-01-13T12:59:40.251+01:00</updated><category term='Haskell'/><category term='Logic Programming'/><category term='AOP'/><category term='constraints'/><category term='Functional Programming'/><category term='CLP'/><category term='CULP'/><category term='CHR'/><category term='VPW'/><category term='Datalog'/><category term='events'/><category term='Gecode'/><category term='Prolog'/><category term='ICLP'/><category term='scholarships'/><category term='types'/><title type='text'>Tom's Declarative Languages Blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>65</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-3198667571250312529</id><published>2012-01-13T09:37:00.000+01:00</published><updated>2012-01-13T12:59:40.259+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logic Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Functional Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>Postdoctoral positions at Ghent University</title><content type='html'>&lt;style&gt;&lt;!-- /* Font Definitions */@font-face {font-family:Arial; panose-1:2 11 6 4 2 2 2 2 2 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 0 0 0 1 0;}@font-face {font-family:"Courier New"; panose-1:2 7 3 9 2 2 5 2 4 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 0 0 0 1 0;}@font-face {font-family:Wingdings; panose-1:5 2 1 2 1 8 4 8 7 8; mso-font-charset:2; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:0 0 65536 0 -2147483648 0;}@font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 0 0 0 1 0;} /* Style Definitions */p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-parent:""; margin-top:0cm; margin-right:0cm; margin-bottom:9.0pt; margin-left:0cm; text-align:justify; line-height:120%; mso-pagination:widow-orphan; font-size:11.0pt; mso-bidi-font-size:12.0pt; font-family:"Times New Roman"; mso-ascii-font-family:Arial; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Arial; mso-bidi-font-family:"Times New Roman"; mso-ansi-language:NL-BE; mso-fareast-language:EN-US;}p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph {margin-top:0cm; margin-right:0cm; margin-bottom:9.0pt; margin-left:36.0pt; mso-add-space:auto; text-align:justify; line-height:120%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Times New Roman"; mso-ascii-font-family:Arial; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Arial; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-ansi-language:NL-BE; mso-fareast-language:EN-US;}p.MsoListParagraphCxSpFirst, li.MsoListParagraphCxSpFirst, div.MsoListParagraphCxSpFirst {mso-style-type:export-only; margin-top:0cm; margin-right:0cm; margin-bottom:0cm; margin-left:36.0pt; margin-bottom:.0001pt; mso-add-space:auto; text-align:justify; line-height:120%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Times New Roman"; mso-ascii-font-family:Arial; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Arial; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-ansi-language:NL-BE; mso-fareast-language:EN-US;}p.MsoListParagraphCxSpMiddle, li.MsoListParagraphCxSpMiddle, div.MsoListParagraphCxSpMiddle {mso-style-type:export-only; margin-top:0cm; margin-right:0cm; margin-bottom:0cm; margin-left:36.0pt; margin-bottom:.0001pt; mso-add-space:auto; text-align:justify; line-height:120%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Times New Roman"; mso-ascii-font-family:Arial; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Arial; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-ansi-language:NL-BE; mso-fareast-language:EN-US;}p.MsoListParagraphCxSpLast, li.MsoListParagraphCxSpLast, div.MsoListParagraphCxSpLast {mso-style-type:export-only; margin-top:0cm; margin-right:0cm; margin-bottom:9.0pt; margin-left:36.0pt; mso-add-space:auto; text-align:justify; line-height:120%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Times New Roman"; mso-ascii-font-family:Arial; mso-fareast-font-family:Calibri; mso-fareast-theme-font:minor-latin; mso-hansi-font-family:Arial; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-ansi-language:NL-BE; mso-fareast-language:EN-US;}@page Section1 {size:21.0cm 841.95pt; margin:2.0cm 2.0cm 2.0cm 2.0cm; mso-header-margin:35.45pt; mso-footer-margin:35.45pt; mso-paper-source:0;}div.Section1 {page:Section1;} /* List Definitions */@list l0 {mso-list-id:40330517; mso-list-type:hybrid; mso-list-template-ids:985977444 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}@list l0:level1 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:18.0pt; text-indent:-18.0pt; font-family:Symbol;}@list l1 {mso-list-id:2090610133; mso-list-type:hybrid; mso-list-template-ids:-77039798 67698689 67698691 67698693 67698689 67698691 67698693 67698689 67698691 67698693;}@list l1:level1 {mso-level-number-format:bullet; mso-level-text:; mso-level-tab-stop:none; mso-level-number-position:left; margin-left:18.0pt; text-indent:-18.0pt; font-family:Symbol;}ol {margin-bottom:0cm;}ul {margin-bottom:0cm;}--&gt;&lt;/style&gt;&lt;br /&gt;&lt;div class="MsoNormal"&gt;&lt;a href="http://www.blogger.com/blogger.g?blogID=5844006452378085451" name="_GoBack"&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;i style="color: #cc0000;"&gt;&amp;nbsp;Get in touch if you are interested in applying for a postdoctoral position in the area of programming languages (computer science).&lt;/i&gt;&lt;/div&gt;&lt;div class="MsoNormal"&gt;&amp;nbsp;Sixpostdoctoral positions in Ghent University’s Faculty of Science will beavailable with effect from 1 October 2012, for a duration of 3 years.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Profile: &lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;The candidate:&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="margin-left: 18.0pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;holds a Ph.D. degree based on a doctoraldissertation, preferentially in (Natural) Sciences (the Ph.D. diploma must havebeen awarded before the date of appointment to the position i.c. 1&lt;sup&gt;st &lt;/sup&gt;&amp;nbsp;October 2012);&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 18.0pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;conducts research activities in one of theresearch areas that are covered by the faculty of Sciences; this must clearlyappear from current research work and from a research plan for the coming yearsthat demonstrates a synergy with at least one of the research groups of theFaculty of Sciences;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 18.0pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;has relevant scientific publications innational and international journals that are widely distributed and that applya peer review procedure to the submitted manuscripts;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 18.0pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;has actively participated in national andinternational scientific meetings that are relevant to the field of study;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 18.0pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Should dispose of adequate didactic andcommunicative skills; &lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 18.0pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Communications or oral presentations atscientific meetings and sojourns for study purposes in foreign countries serveas an additional recommendation;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="margin-left: 18.0pt; mso-add-space: auto; mso-list: l0 level1 lfo1; text-indent: -18.0pt;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;Experience with guidance of practical exercisesand master theses, serve as an additional recommendation.&lt;/div&gt;&lt;div class="MsoNormal"&gt;&lt;b style="mso-bidi-font-weight: normal;"&gt;Content of the position:&lt;/b&gt;&lt;/div&gt;&lt;div class="MsoNormal" style="margin-bottom: .0001pt; margin-bottom: 0cm;"&gt;The successful candidate is expected to:&lt;/div&gt;&lt;div class="MsoListParagraphCxSpFirst" style="margin-left: 18.0pt; mso-add-space: auto; mso-list: l1 level1 lfo2; text-indent: -18.0pt;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;carry out scientific research in one of the researchareas that are covered by the faculty of Sciences (minimally 90% of the timehas to be devoted to scientific research);&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 18.0pt; mso-add-space: auto; mso-list: l1 level1 lfo2; text-indent: -18.0pt;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;contribute to the academic education activitiesof the host department;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 18.0pt; mso-add-space: auto; mso-list: l1 level1 lfo2; text-indent: -18.0pt;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;contribute to the supervision of master thesesand doctoral students;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 18.0pt; mso-add-space: auto; mso-list: l1 level1 lfo2; text-indent: -18.0pt;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;elaborate and write applications and reports ofresearch projects;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpMiddle" style="margin-left: 18.0pt; mso-add-space: auto; mso-list: l1 level1 lfo2; text-indent: -18.0pt;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;supervise and support scientific projects;&lt;/div&gt;&lt;div class="MsoListParagraphCxSpLast" style="margin-left: 18.0pt; mso-add-space: auto; mso-list: l1 level1 lfo2; text-indent: -18.0pt;"&gt;&lt;span style="font-family: Symbol;"&gt;·&lt;span style="font: 7pt &amp;quot;Times New Roman&amp;quot;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;contribute to the services provided by the hostdepartment.&lt;/div&gt;&lt;div class="MsoNormal"&gt;The governing languageat Ghent University is Dutch. However, research is primarily conducted inEnglish. Persons who do not speak Dutch as a native language are very welcometo apply.&lt;/div&gt;&lt;div class="MsoNormal"&gt;Applications must besent by registered mail to the Personnel Office, Sint-Pietersnieuwstraat 25,9000 Ghent, at the latest on 29 February 2012. Applications should include aCV, proof of suitability (e.g., copies of the applicant’s diplomas), adescription of the current research and a research project plan (2 pages). Aduly filled in application form that can be downloaded from &lt;a href="https://edit.ugent.be/we/en"&gt;https://edit.ugent.be/we/en&lt;/a&gt;must be sent as excel-file to &lt;a href="mailto:decaan.we@ugent.be"&gt;decaan.we@ugent.be&lt;/a&gt;. &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-3198667571250312529?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/3198667571250312529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2012/01/postdoctoral-positions-at-ghent.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/3198667571250312529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/3198667571250312529'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2012/01/postdoctoral-positions-at-ghent.html' title='Postdoctoral positions at Ghent University'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-2379030053528806909</id><published>2011-12-22T14:09:00.002+01:00</published><updated>2011-12-22T14:09:38.928+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logic Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Datalog'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='events'/><category scheme='http://www.blogger.com/atom/ns#' term='CLP'/><category scheme='http://www.blogger.com/atom/ns#' term='CHR'/><title type='text'>ICLP 2012: Call for Papers</title><content type='html'>&lt;div class="entry"&gt;         &lt;h2 style="text-align: center;"&gt;CALL FOR PAPERS&lt;/h2&gt;&lt;h2 style="text-align: center;"&gt;28th International Conference on Logic Programming&lt;/h2&gt;&lt;h2 style="text-align: center;"&gt;Budapest, Hungary, September 4-8, 2012&lt;/h2&gt;&lt;h2 style="text-align: center;"&gt;&lt;a href="http://www.cs.bme.hu/iclp2012/"&gt;http://www.cs.bme.hu/iclp2012/&lt;/a&gt;&lt;/h2&gt;&lt;a href="http://www.cs.nmsu.edu/ALP/wp-content/uploads/2011/12/buda.jpg"&gt;&lt;img alt="" class="aligncenter size-large wp-image-1517" height="159" src="http://www.cs.nmsu.edu/ALP/wp-content/uploads/2011/12/buda-1024x159.jpg" title="buda" width="1024" /&gt;&lt;/a&gt;&lt;br /&gt;The International Conference on Logic Programming is the premier venue for presenting research in logic programming. ICLP 2012 will take place in Budapest, honouring the important contribution that the Hungarian logic programming community has given to this field. The ICLP technical program will include presentations of accepted papers, invited talks, advanced tutorials and panels, a special session on most influential papers, the doctoral consortium, the programming contest, and several workshops.  Contributions are sought in all areas of logic programming, including but not restricted to:&lt;br /&gt;&lt;ul&gt;&lt;li&gt; Theory: Semantic Foundations, Formalisms, Non-Monotonic Reasoning,    Knowledge Representation.&lt;/li&gt;&lt;li&gt;Implementation: Compilation, Memory Management, Virtual Machines,    Parallelism.&lt;/li&gt;&lt;li&gt;Environments: Program Analysis,  Transformation, Validation,    Verification, Debugging, Profiling, Testing.&lt;/li&gt;&lt;li&gt;Language Issues: Concurrency, Objects, Coordination, Mobility, Higher    Order, Types, Modes, Assertions, Programming Techniques.&lt;/li&gt;&lt;li&gt;Related Paradigms: Abductive/Inductive/Constraint Logic Programming,    Answer-Set Programming.&lt;/li&gt;&lt;li&gt; Applications: Databases, Data Integration and Federation, Software    Engineering, Natural Language Processing, (Semantic) Web,    Agents, Artificial Intelligence, Bioinformatics,  Declarative    Networking.&lt;/li&gt;&lt;/ul&gt;There are four broad categories for submissions:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;technical papers describe technically sound, innovative      ideas that can advance the state of the art of logic programming;&lt;/li&gt;&lt;li&gt;application papers present real-world applications  of logic programming;&lt;/li&gt;&lt;li&gt;system and tool papers focus on the novelty, practicality, usability      and general availability of the systems and tools described; and&lt;/li&gt;&lt;li&gt;technical communications aim at describing recent developments,      new projects, and other materials that are not ready for publication      as standard papers.&lt;/li&gt;&lt;/ol&gt;&lt;h3&gt;Important Dates&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;Workshop Proposals:   January 29, 2012&lt;/li&gt;&lt;li&gt;Paper registration (abstract):    March 11, 2012&lt;/li&gt;&lt;li&gt;Submission deadline:       March 18, 2012&lt;/li&gt;&lt;li&gt;Notification to Authors (first round):   April 28, 2012&lt;/li&gt;&lt;li&gt;Notification to Authors (second round):  June 10, 2012&lt;/li&gt;&lt;li&gt;Camera-ready LIPIcs copy due:            June 10, 2012&lt;/li&gt;&lt;li&gt;Camera-ready TPLP copy due:       July 1, 2012&lt;/li&gt;&lt;li&gt;Conference:                       September 4-8, 2012&lt;/li&gt;&lt;/ul&gt;&lt;h3&gt;General Chair&lt;/h3&gt;Peter Szeredi (Budapest Univ. of Technology and Economics)&lt;br /&gt;&lt;h3&gt;Program Committee Chairs&lt;/h3&gt;Agostino Dovier (Univ. of Udine)&lt;br /&gt;Vitor Santos Costa (Univ. of Porto)&lt;br /&gt;&lt;h3&gt;Workshop Chair&lt;/h3&gt;Mats Carlsson (SICS, Sweden)&lt;br /&gt;&lt;h3&gt;Doctoral Consortium Chairs&lt;/h3&gt;Marco Gavanelli (Univ. of Ferrara)&lt;br /&gt;Stefan Woltran (T.U. Wien)&lt;br /&gt;&lt;h3&gt;Programming Contest&lt;/h3&gt;Tom Schrijvers (Univ. of Gent)&lt;br /&gt;&lt;h3&gt;Publicity Chair&lt;/h3&gt;Gergely Lukacsy (Cisco Systems Inc.)&lt;br /&gt;&lt;h3&gt;Web Manager&lt;/h3&gt;Janos Csorba (Budapest Univ. of Technology and Economics)&lt;br /&gt;&lt;h3&gt;Program Committee&lt;/h3&gt;Elvira Albert (U.C. Madrid)&lt;br /&gt;Sergio Antoy (Portland State Univ.)&lt;br /&gt;Marcello Balduccini (Kodak Res. Labs)&lt;br /&gt;Manuel Carro (U.P. Madrid)&lt;br /&gt;Michael Codish (Ben Gurion Univ.)&lt;br /&gt;Veronica Dahl (Simon Fraser Univ.)&lt;br /&gt;Marina De Vos (Univ. of Bath)&lt;br /&gt;Alessandro Dal Palu’ (Univ. of Parma)&lt;br /&gt;Bart Demoen (K.U. Leuven)&lt;br /&gt;Thomas Eiter (T.U. Wien)&lt;br /&gt;Esra Erdem (Sabanci Univ.)&lt;br /&gt;Thom Fruehwirth (Univ. of Ulm)&lt;br /&gt;Andrea Formisano (Univ. of Perugia)&lt;br /&gt;Maria Garcia de la Banda (Monash Univ.)&lt;br /&gt;Marco Gavanelli (Univ. of Ferrara)&lt;br /&gt;Hai-Feng Guo (Univ. of Nebraska, Omaha)&lt;br /&gt;Gopal Gupta (Univ. of Texas, Dallas)&lt;br /&gt;Katsumi Inoue (National Inst. of Informatics, Japan)&lt;br /&gt;Angelika Kimmig (K.U. Leuven)&lt;br /&gt;Joohyung Lee (Arizona State Univ.)&lt;br /&gt;Evelina Lamma (Univ. of Ferrara)&lt;br /&gt;Nicola Leone (Univ. of Calabria)&lt;br /&gt;Yuliya Lierler (Univ. of Kentucky)&lt;br /&gt;Boon Thau Loo (Univ. of Pennsylvania)&lt;br /&gt;Michael Maher (R.R.I., Sidney)&lt;br /&gt;Alessandra Mileo (DERI, Galway)&lt;br /&gt;Jose Morales (U.P. Madrid)&lt;br /&gt;Enrico Pontelli (New Mexico State Univ.)&lt;br /&gt;Gianfranco Rossi (Univ. of Parma)&lt;br /&gt;Beata Sarna-Starosta (Cambian, Vancouver)&lt;br /&gt;Torsten Schaub (Univ. of Potsdam)&lt;br /&gt;Tom Schrijvers (Univ. of Gent)&lt;br /&gt;Fernando Silva (Univ. of Porto)&lt;br /&gt;Tran Cao Son (New Mexico State Univ.)&lt;br /&gt;Terrance Swift (Univ. Nova de Lisboa)&lt;br /&gt;Peter Szeredi (Budapest Univ. of Tech.)&lt;br /&gt;Francesca Toni (I.C. London)&lt;br /&gt;Mirek Truszczynski (Univ. of Kentucky)&lt;br /&gt;German Vidal (U.P. of Valencia)&lt;br /&gt;Stefan Woltran (T.U. Wien)&lt;br /&gt;Neng-Fa Zhou (CUNY, New York)&lt;br /&gt;For other information see Conference Web Site&lt;br /&gt;                &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-2379030053528806909?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/2379030053528806909/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2011/12/iclp-2012-call-for-papers.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2379030053528806909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2379030053528806909'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2011/12/iclp-2012-call-for-papers.html' title='ICLP 2012: Call for Papers'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-2478472441432569768</id><published>2011-12-14T21:02:00.001+01:00</published><updated>2011-12-14T21:02:39.222+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Functional Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>OCaml @ Incubaid</title><content type='html'>Nicolas Trangez and Romain Slootmaekers were so kind to give a guest lecture on &lt;b&gt;real-world functional programming&lt;/b&gt; in my Functional and Logic Programming course. They gave an overview of their experience (and success!) with OCaml in building distributed storage systems at Incubaid. &lt;br /&gt;&lt;br /&gt;Their slides are available here:&lt;br /&gt;http://www.slideshare.net/eikke/realworld-functional-programming-incubaid&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-2478472441432569768?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/2478472441432569768/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2011/12/ocaml-incubaid.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2478472441432569768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2478472441432569768'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2011/12/ocaml-incubaid.html' title='OCaml @ Incubaid'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-7905124614862620806</id><published>2011-12-05T11:35:00.001+01:00</published><updated>2011-12-05T11:37:00.664+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logic Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Functional Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='events'/><category scheme='http://www.blogger.com/atom/ns#' term='CLP'/><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>FLOPS 2012: Final Call for Papers and Deadline Extension</title><content type='html'>&amp;nbsp; &lt;span style="color: red;"&gt;_EXTENDED SUBMISSION DEADLINE : December 16, 2011_&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&amp;nbsp; *Eleventh International Symposium on Functional and Logic Programming (FLOPS 2012)* &lt;br /&gt;&amp;nbsp; May 23-25, 2012 &lt;br /&gt;&amp;nbsp; Kobe, Japan &lt;br /&gt;&amp;nbsp; [http://www.org.kobe-u.ac.jp/flops2012/] &lt;br /&gt;&amp;nbsp; _EXTENDED SUBMISSION DEADLINE : December 16, 2011_&lt;br /&gt;&lt;br /&gt;&amp;nbsp; FLOPS is a forum for research on all issues concerning declarative&lt;br /&gt;&amp;nbsp; programming, including functional programming and logic programming,&lt;br /&gt;&amp;nbsp; and aims to promote cross-fertilization and integration between the&lt;br /&gt;&amp;nbsp; two paradigms. Previous FLOPS meetings were held in Fuji Susono&lt;br /&gt;&amp;nbsp; (1995), Shonan Village (1996), Kyoto (1998), Tsukuba (1999), Tokyo&lt;br /&gt;&amp;nbsp; (2001), Aizu (2002), Nara (2004), Fuji Susono (2006), Ise (2008),&lt;br /&gt;&amp;nbsp; and Sendai (2010).&lt;br /&gt;&lt;br /&gt;Topics&lt;br /&gt;======&lt;br /&gt;&amp;nbsp; FLOPS solicits original papers in all areas of functional and logic&lt;br /&gt;&amp;nbsp; programming, including (but not limited to):&lt;br /&gt;&amp;nbsp; - Declarative Pearls: new and excellent declarative programs with&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; illustrative applications.&lt;br /&gt;&amp;nbsp; - Language issues: language design and constructs, programming methodology,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; integration of paradigms, interfacing with other languages, type systems,&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; constraints, concurrency and distributed computing.&lt;br /&gt;&amp;nbsp; - Foundations: logic and semantics, rewrite systems and narrowing, type&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; theory, proof systems.&lt;br /&gt;&amp;nbsp; - Implementation issues: compilation techniques, memory management, program&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; analysis and transformation, partial evaluation, parallelism.&lt;br /&gt;&amp;nbsp; - Applications: case studies, real-world applications, graphical user&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; interfaces, Internet applications, XML, databases, formal methods and model&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; checking.&lt;br /&gt;&lt;br /&gt;&amp;nbsp; The proceedings will be published as an LNCS volume. The proceedings&lt;br /&gt;&amp;nbsp; of the previous meeting (FLOPS 2010) were published as LNCS 6009.&lt;br /&gt;&lt;br /&gt;PC co-Chairs&lt;br /&gt;============&lt;br /&gt;&amp;nbsp; - Tom Schrijvers (Ghent University, Belgium)&lt;br /&gt;&amp;nbsp; - Peter Thiemann (University of Freiburg, Germany)&lt;br /&gt;&lt;br /&gt;PC Members&lt;br /&gt;==========&lt;br /&gt;&amp;nbsp;- Salvador Abreu (University of Evora, Portugal)&lt;br /&gt;&amp;nbsp;- Thorsten Altenkirch (University of Nottingham, UK)&lt;br /&gt;&amp;nbsp;- Sebastian Brand (NICTA, Australia)&lt;br /&gt;&amp;nbsp;- Giuseppe Castagna (CNRS Univ Paris 7, France)&lt;br /&gt;&amp;nbsp;- Sebastian Fischer (Germany)&lt;br /&gt;&amp;nbsp;- Marco Gavanelli (University of Ferrara, Italy)&lt;br /&gt;&amp;nbsp;- Joxan Jaffar (National University of Singapore, Singapore)&lt;br /&gt;&amp;nbsp;- Barry Jay (University of Sydney, Australia)&lt;br /&gt;&amp;nbsp;- Andy King (University of Kent, UK)&lt;br /&gt;&amp;nbsp;- Claude Kirchner (INRIA, France)&lt;br /&gt;&amp;nbsp;- Neelakantan R. Krishnaswami (Microsoft Cambridge, UK)&lt;br /&gt;&amp;nbsp;- Yulya Lierler (University of Kentucky, USA)&lt;br /&gt;&amp;nbsp;- Keiko Nakata (Tallinn University of Technology, Estonia)&lt;br /&gt;&amp;nbsp;- Peter Schneider-Kamp (University of Southern Denmark, Denmark)&lt;br /&gt;&amp;nbsp;- Olin Shivers (Northeastern University, USA)&lt;br /&gt;&amp;nbsp;- Paul Tarau (University of Northern Texas, USA)&lt;br /&gt;&amp;nbsp;- Kazunori Ueda (Waseda University, Japan)&lt;br /&gt;&amp;nbsp;- Meng Wang (Chalmers Technical University, Sweden)&lt;br /&gt;&lt;br /&gt;General Chair and Local co-Chairs&lt;br /&gt;=================================&lt;br /&gt;&amp;nbsp; - Naoyuki Tamura (Kobe University, Japan)&lt;br /&gt;&amp;nbsp; - Mutsunori Banbara (Kobe University, Japan)&lt;br /&gt;&amp;nbsp; - Katsutoshi Hirayama (Kobe University, Japan)&lt;br /&gt;&lt;br /&gt;Submission&lt;br /&gt;==========&lt;br /&gt;&amp;nbsp; Submissions must be unpublished and not submitted for publication&lt;br /&gt;&amp;nbsp; elsewhere. Work that already appeared in unpublished or informally&lt;br /&gt;&amp;nbsp; published workshops proceedings may be submitted. Submissions should&lt;br /&gt;&amp;nbsp; fall into one of the following categories:&lt;br /&gt;&amp;nbsp; - Regular research papers: they should describe new results and will be&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; judged on originality, correctness, and significance.&lt;br /&gt;&amp;nbsp; - System descriptions: they should contain a link to a working system and&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; will be judged on originality, usefulness, and design.&lt;br /&gt;&amp;nbsp; Submissions must be written in English and can be up to 15 pages&lt;br /&gt;&amp;nbsp; long, though pearls are typically considerably shorter. Authors are&lt;br /&gt;&amp;nbsp; required to use LaTeX2e and the Springer llncs class file, available at&lt;br /&gt;&amp;nbsp; [http://www.springer.de/comp/lncs/authors.html].&lt;br /&gt;&lt;br /&gt;&amp;nbsp; Regular research papers should be supported by proofs and/or&lt;br /&gt;&amp;nbsp; experimental results. In case of lack of space, this supporting&lt;br /&gt;&amp;nbsp; information should be made accessible otherwise (e.g., a link to a&lt;br /&gt;&amp;nbsp; web page, or an appendix). Papers should be submitted electronically&lt;br /&gt;&amp;nbsp; at [https://www.easychair.org/conferences/?conf=flops2012].&lt;br /&gt;&lt;br /&gt;Important Dates&lt;br /&gt;===============&lt;br /&gt;&amp;nbsp; &lt;span style="color: red;"&gt;- Submission deadline : December 16, 2011&amp;nbsp;&amp;nbsp;&amp;nbsp; (EXTENDED)&lt;/span&gt;&lt;br /&gt;&amp;nbsp; - Author notification : February 3, 2012&lt;br /&gt;&amp;nbsp; - Camera-ready copy : March 2, 2012&lt;br /&gt;&lt;br /&gt;Place and Related Events&lt;br /&gt;========================&lt;br /&gt;&amp;nbsp; Takikawa Memorial Hall, Kobe University, &lt;br /&gt;&amp;nbsp; 1-1 Rokkodai, Nada, Kobe 657-8501 Japan.&lt;br /&gt;&lt;br /&gt;&amp;nbsp; The 23rd International Conference on Rewriting Techniques and&lt;br /&gt;&amp;nbsp; Applications (RTA 2012) and satellite workshops including WFLP 2012&lt;br /&gt;&amp;nbsp; will be held in the week after FLOPS at Nagoya, Japan.&lt;br /&gt;&lt;br /&gt;Some Previous FLOPS&lt;br /&gt;===================&lt;br /&gt;&amp;nbsp; - FLOPS 2010, Sendai: [http://www.kb.ecei.tohoku.ac.jp/flops2010/]&lt;br /&gt;&amp;nbsp; - FLOPS 2008, Ise: [http://www.math.nagoya-u.ac.jp/~garrigue/FLOPS2008/]&lt;br /&gt;&amp;nbsp; - FLOPS 2006, Fuji Susono: [http://hagi.is.s.u-tokyo.ac.jp/FLOPS2006/]&lt;br /&gt;&lt;br /&gt;Sponsors&lt;br /&gt;========&lt;br /&gt;&amp;nbsp; - Japan Society for Software Science and Technology (JSSST) SIGPPL&lt;br /&gt;&lt;br /&gt;In Cooperation with&lt;br /&gt;===================&lt;br /&gt;&amp;nbsp; - ACM SIGPLAN&lt;br /&gt;&amp;nbsp; - Asian Association for Foundation of Software (AAFS)&lt;br /&gt;&amp;nbsp; - Association for Logic Programming (ALP)&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-7905124614862620806?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/7905124614862620806/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2011/12/flops-2012-final-call-for-papers-and.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/7905124614862620806'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/7905124614862620806'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2011/12/flops-2012-final-call-for-papers-and.html' title='FLOPS 2012: Final Call for Papers and Deadline Extension'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-4482045926382411368</id><published>2011-11-30T09:47:00.001+01:00</published><updated>2011-11-30T09:50:16.081+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Functional Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>PhD Position in Purely Functional Programming</title><content type='html'>The Programming Languages Group of Ghent University invites  applicants for a PhD position. This position centers around the modular  treatment of side-effects in purely functional programs and models. It is part  of the project "Modular handling of effects in purely functional programs and  models" under the direction of Tom Schrijvers.&lt;br /&gt;&lt;br /&gt;The successful applicant has a master degree in Computer Science or equivalent.  Ideally, she/he will also have a strong, documented interest in doing research.  Strong problem-solving and programming skills are essential. Prior knowledge of   purely functional programming (e.g., Haskell) and models of side-effects (e.g., monads)                 is an advantage.&lt;br /&gt;&lt;br /&gt;The PhD position is for 4 years. It starts between January and October 2012.  The position is a fully-funded post. The salary is compatible with other  Belgian PhD rates and among the better ones in Europe and abroad.&lt;br /&gt;&lt;br /&gt;See &lt;a href="http://users.ugent.be/%7Etschrijv/phdposition2.html"&gt;here&lt;/a&gt; for application details.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-4482045926382411368?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/4482045926382411368/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2011/11/phd-position-in-purely-functional.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/4482045926382411368'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/4482045926382411368'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2011/11/phd-position-in-purely-functional.html' title='PhD Position in Purely Functional Programming'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-9103938231491315529</id><published>2011-11-22T11:47:00.001+01:00</published><updated>2011-11-22T11:48:52.614+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logic Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Functional Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='events'/><category scheme='http://www.blogger.com/atom/ns#' term='CLP'/><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>FLOPS 2012: 2nd call for papers</title><content type='html'>&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Second Call For Papers&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; =====================&lt;br /&gt;&lt;br /&gt;&amp;nbsp;*Eleventh International Symposium on Functional and Logic&lt;br /&gt;Programming (FLOPS 2012)*&lt;br /&gt;&amp;nbsp;May 23-25, 2012&lt;br /&gt;&amp;nbsp;Kobe, Japan&lt;br /&gt;&amp;nbsp;[http://www.org.kobe-u.ac.jp/flops2012/]&lt;br /&gt;&amp;nbsp;_Submission deadline : December 9, 2011_&lt;br /&gt;&lt;br /&gt;&amp;nbsp;FLOPS is a forum for research on all issues concerning declarative&lt;br /&gt;&amp;nbsp;programming, including functional programming and logic programming,&lt;br /&gt;&amp;nbsp;and aims to promote cross-fertilization and integration between the&lt;br /&gt;&amp;nbsp;two paradigms. Previous FLOPS meetings were held in Fuji Susono&lt;br /&gt;&amp;nbsp;(1995), Shonan Village (1996), Kyoto (1998), Tsukuba (1999), Tokyo&lt;br /&gt;&amp;nbsp;(2001), Aizu (2002), Nara (2004), Fuji Susono (2006), Ise (2008),&lt;br /&gt;&amp;nbsp;and Sendai (2010).&lt;br /&gt;&lt;br /&gt;Topics&lt;br /&gt;======&lt;br /&gt;&amp;nbsp;FLOPS solicits original papers in all areas of functional and logic&lt;br /&gt;&amp;nbsp;programming, including (but not limited to):&lt;br /&gt;&amp;nbsp;- Declarative Pearls: new and excellent declarative programs with&lt;br /&gt;&amp;nbsp;&amp;nbsp; illustrative applications.&lt;br /&gt;&amp;nbsp;- Language issues: language design and constructs, programming methodology,&lt;br /&gt;&amp;nbsp;&amp;nbsp; integration of paradigms, interfacing with other languages, type systems,&lt;br /&gt;&amp;nbsp;&amp;nbsp; constraints, concurrency and distributed computing.&lt;br /&gt;&amp;nbsp;- Foundations: logic and semantics, rewrite systems and narrowing, type&lt;br /&gt;&amp;nbsp;&amp;nbsp; theory, proof systems.&lt;br /&gt;&amp;nbsp;- Implementation issues: compilation techniques, memory management, program&lt;br /&gt;&amp;nbsp;&amp;nbsp; analysis and transformation, partial evaluation, parallelism.&lt;br /&gt;&amp;nbsp;- Applications: case studies, real-world applications, graphical user&lt;br /&gt;&amp;nbsp;&amp;nbsp; interfaces, Internet applications, XML, databases, formal methods and model&lt;br /&gt;&amp;nbsp;&amp;nbsp; checking.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;The proceedings will be published as an LNCS volume. The proceedings&lt;br /&gt;&amp;nbsp;of the previous meeting (FLOPS 2010) were published as LNCS 6009.&lt;br /&gt;&lt;br /&gt;PC co-Chairs&lt;br /&gt;============&lt;br /&gt;&amp;nbsp;- Tom Schrijvers (Ghent University, Belgium)&lt;br /&gt;&amp;nbsp;- Peter Thiemann (University of Freiburg, Germany)&lt;br /&gt;&lt;br /&gt;PC Members&lt;br /&gt;==========&lt;br /&gt;&amp;nbsp;- Salvador Abreu (University of Evora, Portugal)&lt;br /&gt;&amp;nbsp;- Thorsten Altenkirch (University of Nottingham, UK)&lt;br /&gt;&amp;nbsp;- Sebastian Brand (NICTA, Australia)&lt;br /&gt;&amp;nbsp;- Giuseppe Castagna (CNRS Univ Paris 7, France)&lt;br /&gt;&amp;nbsp;- Sebastian Fischer (Germany)&lt;br /&gt;&amp;nbsp;- Marco Gavanelli (University of Ferrara, Italy)&lt;br /&gt;&amp;nbsp;- Joxan Jaffar (National University of Singapore, Singapore)&lt;br /&gt;&amp;nbsp;- Barry Jay (University of Sydney, Australia)&lt;br /&gt;&amp;nbsp;- Andy King (University of Kent, UK)&lt;br /&gt;&amp;nbsp;- Claude Kirchner (INRIA, France)&lt;br /&gt;&amp;nbsp;- Neelakantan R. Krishnaswami (Microsoft Cambridge, UK)&lt;br /&gt;&amp;nbsp;- Yulya Lierler (University of Kentucky, USA)&lt;br /&gt;&amp;nbsp;- Keiko Nakata (Tallinn University of Technology, Estonia)&lt;br /&gt;&amp;nbsp;- Peter Schneider-Kamp (University of Southern Denmark, Denmark)&lt;br /&gt;&amp;nbsp;- Olin Shivers (Northeastern University, USA)&lt;br /&gt;&amp;nbsp;- Paul Tarau (University of Northern Texas, USA)&lt;br /&gt;&amp;nbsp;- Kazunori Ueda (Waseda University, Japan)&lt;br /&gt;&amp;nbsp;- Meng Wang (Chalmers Technical University, Sweden)&lt;br /&gt;&lt;br /&gt;General Chair and Local co-Chairs&lt;br /&gt;=================================&lt;br /&gt;&amp;nbsp;- Naoyuki Tamura (Kobe University, Japan)&lt;br /&gt;&amp;nbsp;- Mutsunori Banbara (Kobe University, Japan)&lt;br /&gt;&amp;nbsp;- Katsutoshi Hirayama (Kobe University, Japan)&lt;br /&gt;&lt;br /&gt;Submission&lt;br /&gt;==========&lt;br /&gt;&amp;nbsp;Submissions must be unpublished and not submitted for publication&lt;br /&gt;&amp;nbsp;elsewhere. Work that already appeared in unpublished or informally&lt;br /&gt;&amp;nbsp;published workshops proceedings may be submitted. Submissions should&lt;br /&gt;&amp;nbsp;fall into one of the following categories:&lt;br /&gt;&amp;nbsp;- Regular research papers: they should describe new results and will be&lt;br /&gt;&amp;nbsp;&amp;nbsp; judged on originality, correctness, and significance.&lt;br /&gt;&amp;nbsp;- System descriptions: they should contain a link to a working system and&lt;br /&gt;&amp;nbsp;&amp;nbsp; will be judged on originality, usefulness, and design.&lt;br /&gt;&amp;nbsp;Submissions must be written in English and can be up to 15 pages&lt;br /&gt;&amp;nbsp;long, though pearls are typically considerably shorter. Authors are&lt;br /&gt;&amp;nbsp;required to use LaTeX2e and the Springer llncs class file, available at&lt;br /&gt;&amp;nbsp;[http://www.springer.de/comp/lncs/authors.html].&lt;br /&gt;&lt;br /&gt;&amp;nbsp;Regular research papers should be supported by proofs and/or&lt;br /&gt;&amp;nbsp;experimental results. In case of lack of space, this supporting&lt;br /&gt;&amp;nbsp;information should be made accessible otherwise (e.g., a link to a&lt;br /&gt;&amp;nbsp;web page, or an appendix). Papers should be submitted electronically&lt;br /&gt;&amp;nbsp;at [https://www.easychair.org/conferences/?conf=flops2012].&lt;br /&gt;&lt;br /&gt;Important Dates&lt;br /&gt;===============&lt;br /&gt;&amp;nbsp;- Submission deadline : December 9, 2011&lt;br /&gt;&amp;nbsp;- Author notification : February 3, 2012&lt;br /&gt;&amp;nbsp;- Camera-ready copy : March 2, 2012&lt;br /&gt;&lt;br /&gt;Place and Related Events&lt;br /&gt;========================&lt;br /&gt;&amp;nbsp;Takikawa Memorial Hall, Kobe University,&lt;br /&gt;&amp;nbsp;1-1 Rokkodai, Nada, Kobe 657-8501 Japan.&lt;br /&gt;&lt;br /&gt;&amp;nbsp;The 23rd International Conference on Rewriting Techniques and&lt;br /&gt;&amp;nbsp;Applications (RTA 2012) and satellite workshops including WFLP 2012&lt;br /&gt;&amp;nbsp;will be held in the week after FLOPS at Nagoya, Japan.&lt;br /&gt;&lt;br /&gt;Some Previous FLOPS&lt;br /&gt;===================&lt;br /&gt;&amp;nbsp;- FLOPS 2010, Sendai: [http://www.kb.ecei.tohoku.ac.jp/flops2010/]&lt;br /&gt;&amp;nbsp;- FLOPS 2008, Ise: [http://www.math.nagoya-u.ac.jp/~garrigue/FLOPS2008/]&lt;br /&gt;&amp;nbsp;- FLOPS 2006, Fuji Susono: [http://hagi.is.s.u-tokyo.ac.jp/FLOPS2006/]&lt;br /&gt;&lt;br /&gt;Sponsors&lt;br /&gt;========&lt;br /&gt;&amp;nbsp;- Japan Society for Software Science and Technology (JSSST) SIGPPL&lt;br /&gt;&lt;br /&gt;In Cooperation with&lt;br /&gt;===================&lt;br /&gt;&amp;nbsp;- ACM SIGPLAN&lt;br /&gt;&amp;nbsp;- Asian Association for Foundation of Software (AAFS)&lt;br /&gt;&amp;nbsp;- Association for Logic Programming (ALP)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-9103938231491315529?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/9103938231491315529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2011/11/flops-2012-2nd-call-for-papers.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/9103938231491315529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/9103938231491315529'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2011/11/flops-2012-2nd-call-for-papers.html' title='FLOPS 2012: 2nd call for papers'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-7280369672107211433</id><published>2011-11-10T13:28:00.003+01:00</published><updated>2011-11-10T13:28:24.702+01:00</updated><title type='text'>PhD Position in Rule-based Programming Systems</title><content type='html'>The Programming Languages Group of Ghent University invites applicants for a  PhD position. This position centers around the development of efficient  rule-based programming systems and is part of our new project &lt;em&gt;"Constraint  Programming for advanced joins in rule-based programming languages"&lt;/em&gt;. The  project is under the direction of Tom Schrijvers.&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt;    The successful applicant has a master degree in Computer Science or equivalent.  Ideally, she/he will also have a strong, documented interest in doing research.  Strong problem-solving and programming skills are essential. Prior knowledge of  rule-based/query/logic/constraint programming languages and/or database theory  is an advantage, but not required.  &lt;br /&gt;  &lt;br /&gt;The PhD position is for 4 years. It starts between January and October 2012.  The position is a fully-funded post. The salary is compatible with other  Belgian PhD rates and among the better ones in Europe and abroad.   &lt;br /&gt;    &lt;br /&gt;&lt;a href="http://www.ugent.be/"&gt;Ghent University&lt;/a&gt; has position 89 in the Shanghai Academic  Ranking of World Universities - 2011. It is located in the beautiful city of  Ghent, which is one of Lonely Planet's top 10 cities for 2011.  For more  information on life as a PhD researcher at UGent see  &lt;a href="http://www.ugent.be/en/research/doctoralresearch"&gt;here&lt;/a&gt;.  &lt;br /&gt;  &lt;div class="fiche"&gt;  &lt;br /&gt;Please direct inquiries and applications, preferably by e-mail, to:         &lt;br /&gt;&lt;blockquote&gt;&lt;tt&gt;      Professor Tom Schrijvers&lt;br /&gt;     Vakgroep Toegepaste Wiskunde en Informatica&lt;br /&gt;     Universiteit Gent&lt;br /&gt;     Krijgslaan 281 S9 WE02&lt;br /&gt;     B-9000 Gent, BELGIUM&lt;br /&gt;     &lt;br /&gt;     E-mail: tom.schrijvers@ugent.be  &lt;/tt&gt;&lt;/blockquote&gt;&lt;/div&gt;Notice of interest (including motivation and CV) should be received as soon as  possible. The start date is determined in consultation with the selected  candidate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-7280369672107211433?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/7280369672107211433/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2011/11/phd-position-in-rule-based-programming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/7280369672107211433'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/7280369672107211433'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2011/11/phd-position-in-rule-based-programming.html' title='PhD Position in Rule-based Programming Systems'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-3347716374311137307</id><published>2011-09-08T09:44:00.000+02:00</published><updated>2011-09-08T16:25:17.669+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='constraints'/><title type='text'>CONSTRAINTS JOURNAL - Special Issue on Modeling and Reformulation</title><content type='html'>&lt;pre&gt;First Call for Papers&lt;br /&gt;&lt;b&gt;&lt;br /&gt;CONSTRAINTS JOURNAL -&lt;br /&gt;Special Issue on Modeling and Reformulation&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A central aspect of using any reasoning or optimization tools to solve problems &lt;br /&gt;is expressing the problem within the language of the tool. While Constraint &lt;br /&gt;Programming is pursuing the goal of simple declarative problem modeling ("model &lt;br /&gt;and press 'solve'"), it is still often the case that building a high-performance&lt;br /&gt;model for a problem represents a significant effort in modeling, re-modeling, &lt;br /&gt;and reformulation. Similar challenges are encountered in related areas such as &lt;br /&gt;mixed-integer programming and SAT solving.&lt;br /&gt;&lt;br /&gt;In honour of the Tenth edition of the International Workshop on Constraint &lt;br /&gt;Modeling and Reformulation (ModRef 2011 - http://aenas.arfcd.com/modref11/), &lt;br /&gt;the Constraints journal solicits submissions for a special issue. While we &lt;br /&gt;encourage submissions of extended versions of papers that have appeared in &lt;br /&gt;previous ModRef workshops, this is an open call with no such requirement.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Topics of Interest&lt;/b&gt;&lt;br /&gt;-------------------&lt;br /&gt;These include, but are not limited to:&lt;br /&gt;&lt;br /&gt;- Problem Models&lt;br /&gt;   - novel, improved problem formulations&lt;br /&gt;   - novel problems that can be formulated and successfully solved as CSPs&lt;br /&gt;&lt;br /&gt;- Automated Modeling and Reformulation&lt;br /&gt;   - Automated generation of implied constraints.&lt;br /&gt;   - Automated generation of symmetry-breaking constraints.&lt;br /&gt;   - Automated generation of constraints to exploit dominance relations.&lt;br /&gt;   - Automated generation of relaxations. &lt;br /&gt;&lt;br /&gt;- Constraint Modeling Languages&lt;br /&gt;   - Abstraction in constraint languages.&lt;br /&gt;   - Abstract variable domains.&lt;br /&gt;   - Abstraction in search control.&lt;br /&gt;   - Automated refinement.&lt;br /&gt;&lt;br /&gt;- Interaction between Modeling/Reformulation and Search&lt;br /&gt;&lt;br /&gt;- Interaction between Modeling/Reformulation and Propagation&lt;br /&gt;&lt;br /&gt;- Applications of Automated Modeling Systems&lt;br /&gt;&lt;br /&gt;- Overviews of Modeling and Reformulation research in other closely related &lt;br /&gt;  areas such as mathematical programming and SAT solving&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Paper Forms&lt;/b&gt;&lt;br /&gt;-----------&lt;br /&gt;We are looking for papers that fit into any of the formats that Constraints &lt;br /&gt;publishes. In particular:&lt;br /&gt;&lt;br /&gt;- Survey papers - papers that review modeling and reformation within CP or other&lt;br /&gt;  areas that are of particular interest to the CP community (e.g., mathematical&lt;br /&gt;  programming, SAT). If you plan to submit such a paper, please contact the &lt;br /&gt;  guest editors as soon as possible as we would like to avoid submissions of &lt;br /&gt;  overlapping survey papers.&lt;br /&gt;- Application papers - papers the describe real-life applications of CP where &lt;br /&gt;  modeling and reformulation play a central role in the success of the &lt;br /&gt;  application.&lt;br /&gt;- Letters - short papers presenting that makes a significant contribution but &lt;br /&gt;  does not require a full-size journal paper.&lt;br /&gt;&lt;br /&gt;We are also interested in more speculative papers that, for example, extrapolate&lt;br /&gt;current research and practice to indicate trends, opportunities, and research &lt;br /&gt;topics over the next 10 years (e.g., ten challenge problems in modeling and &lt;br /&gt;reformulation).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Submission and Refereeing&lt;/b&gt;&lt;br /&gt;-------------------------&lt;br /&gt;All submission will be refereed to the usual standards of the Constraints &lt;br /&gt;journal. Final decisions on acceptance will be made by the guest editors in &lt;br /&gt;consultation with the editor-in-chief.&lt;br /&gt;&lt;br /&gt;Submissions will be made through the Constraints online submission&lt;br /&gt;system at http://cons.edmgr.com. Please select the article type "SI:&lt;br /&gt;Modeling and Reformulation" at submission time.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Guest Editors&lt;/b&gt;&lt;br /&gt;--------------&lt;br /&gt;Andrea Rendl, Austrian Institute of Technology&lt;br /&gt;J. Christopher Beck, University of Toronto&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Important Dates&lt;/b&gt;&lt;br /&gt;---------------&lt;br /&gt;Submissions: February 1, 2012&lt;br /&gt;Results of First Round of Reviewing: May 1, 2012&lt;br /&gt;Final versions: Summer 2012&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-3347716374311137307?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/3347716374311137307/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2011/09/constraints-journal-special-issue-on.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/3347716374311137307'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/3347716374311137307'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2011/09/constraints-journal-special-issue-on.html' title='CONSTRAINTS JOURNAL - Special Issue on Modeling and Reformulation'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-1477966621157772506</id><published>2011-08-15T08:48:00.000+02:00</published><updated>2011-08-15T08:49:08.143+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logic Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Functional Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='events'/><category scheme='http://www.blogger.com/atom/ns#' term='CLP'/><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>FLOPS 2012: 1st Call for Papers</title><content type='html'>&lt;div&gt;                        First Call For Papers&lt;/div&gt;&lt;div&gt;                        =====================&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  *Eleventh International Symposium on Functional and Logic Programming (FLOPS 2012)* &lt;/div&gt;&lt;div&gt;  May 23-25, 2012 &lt;/div&gt;&lt;div&gt;  Kobe, Japan &lt;/div&gt;&lt;div&gt;  [http://www.org.kobe-u.ac.jp/flops2012/] &lt;/div&gt;&lt;div&gt;  _Submission deadline : December 9, 2011_&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  FLOPS is a forum for research on all issues concerning declarative&lt;/div&gt;&lt;div&gt;  programming, including functional programming and logic programming,&lt;/div&gt;&lt;div&gt;  and aims to promote cross-fertilization and integration between the&lt;/div&gt;&lt;div&gt;  two paradigms. Previous FLOPS meetings were held in Fuji Susono&lt;/div&gt;&lt;div&gt;  (1995), Shonan Village (1996), Kyoto (1998), Tsukuba (1999), Tokyo&lt;/div&gt;&lt;div&gt;  (2001), Aizu (2002), Nara (2004), Fuji Susono (2006), Ise (2008),&lt;/div&gt;&lt;div&gt;  and Sendai (2010).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Topics&lt;/div&gt;&lt;div&gt;======&lt;/div&gt;&lt;div&gt;  FLOPS solicits original papers in all areas of functional and logic&lt;/div&gt;&lt;div&gt;  programming, including (but not limited to):&lt;/div&gt;&lt;div&gt;  - Declarative Pearls: new and excellent declarative programs with&lt;/div&gt;&lt;div&gt;    illustrative applications.&lt;/div&gt;&lt;div&gt;  - Language issues: language design and constructs, programming methodology,&lt;/div&gt;&lt;div&gt;    integration of paradigms, interfacing with other languages, type systems,&lt;/div&gt;&lt;div&gt;    constraints, concurrency and distributed computing.&lt;/div&gt;&lt;div&gt;  - Foundations: logic and semantics, rewrite systems and narrowing, type&lt;/div&gt;&lt;div&gt;    theory, proof systems.&lt;/div&gt;&lt;div&gt;  - Implementation issues: compilation techniques, memory management, program&lt;/div&gt;&lt;div&gt;    analysis and transformation, partial evaluation, parallelism.&lt;/div&gt;&lt;div&gt;  - Applications: case studies, real-world applications, graphical user&lt;/div&gt;&lt;div&gt;    interfaces, Internet applications, XML, databases, formal methods and model&lt;/div&gt;&lt;div&gt;    checking.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  The proceedings will be published as an LNCS volume. The proceedings&lt;/div&gt;&lt;div&gt;  of the previous meeting (FLOPS 2010) were published as LNCS 6009.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;PC co-Chairs&lt;/div&gt;&lt;div&gt;============&lt;/div&gt;&lt;div&gt;  - Tom Schrijvers (Ghent University, Belgium)&lt;/div&gt;&lt;div&gt;  - Peter Thiemann (University of Freiburg, Germany)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;PC Members&lt;/div&gt;&lt;div&gt;==========&lt;/div&gt;&lt;div&gt; - Salvador Abreu (University of Evora, Portugal)&lt;/div&gt;&lt;div&gt; - Thorsten Altenkirch (University of Nottingham, UK)&lt;/div&gt;&lt;div&gt; - Sebastian Brand (NICTA, Australia)&lt;/div&gt;&lt;div&gt; - Giuseppe Castagna (CNRS Univ Paris 7, France)&lt;/div&gt;&lt;div&gt; - Sebastian Fischer (Germany)&lt;/div&gt;&lt;div&gt; - Marco Gavanelli (University of Ferrara, Italy)&lt;/div&gt;&lt;div&gt; - Joxan Jaffar (National University of Singapore, Singapore)&lt;/div&gt;&lt;div&gt; - Barry Jay (University of Sydney, Australia)&lt;/div&gt;&lt;div&gt; - Andy King (University of Kent, UK)&lt;/div&gt;&lt;div&gt; - Claude Kirchner (INRIA, France)&lt;/div&gt;&lt;div&gt; - Neelakantan R. Krishnaswami (Microsoft Cambridge, UK)&lt;/div&gt;&lt;div&gt; - Yulya Lierler (University of Kentucky, USA)&lt;/div&gt;&lt;div&gt; - Keiko Nakata (Tallinn University of Technology, Estonia)&lt;/div&gt;&lt;div&gt; - Peter Schneider-Kamp (University of Southern Denmark, Denmark)&lt;/div&gt;&lt;div&gt; - Olin Shivers (Northeastern University, USA)&lt;/div&gt;&lt;div&gt; - Paul Tarau (University of Northern Texas, USA)&lt;/div&gt;&lt;div&gt; - Kazunori Ueda (Waseda University, Japan)&lt;/div&gt;&lt;div&gt; - Meng Wang (Chalmers Technical University, Sweden)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;General Chair and Local co-Chairs&lt;/div&gt;&lt;div&gt;=================================&lt;/div&gt;&lt;div&gt;  - Naoyuki Tamura (Kobe University, Japan)&lt;/div&gt;&lt;div&gt;  - Mutsunori Banbara (Kobe University, Japan)&lt;/div&gt;&lt;div&gt;  - Katsutoshi Hirayama (Kobe University, Japan)&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Submission&lt;/div&gt;&lt;div&gt;==========&lt;/div&gt;&lt;div&gt;  Submissions must be unpublished and not submitted for publication&lt;/div&gt;&lt;div&gt;  elsewhere. Work that already appeared in unpublished or informally&lt;/div&gt;&lt;div&gt;  published workshops proceedings may be submitted. Submissions should&lt;/div&gt;&lt;div&gt;  fall into one of the following categories:&lt;/div&gt;&lt;div&gt;  - Regular research papers: they should describe new results and will be&lt;/div&gt;&lt;div&gt;    judged on originality, correctness, and significance.&lt;/div&gt;&lt;div&gt;  - System descriptions: they should contain a link to a working system and&lt;/div&gt;&lt;div&gt;    will be judged on originality, usefulness, and design.&lt;/div&gt;&lt;div&gt;  Submissions must be written in English and can be up to 15 pages&lt;/div&gt;&lt;div&gt;  long, though pearls are typically considerably shorter. Authors are&lt;/div&gt;&lt;div&gt;  required to use LaTeX2e and the Springer llncs class file, available at&lt;/div&gt;&lt;div&gt;  [http://www.springer.de/comp/lncs/authors.html].&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  Regular research papers should be supported by proofs and/or&lt;/div&gt;&lt;div&gt;  experimental results. In case of lack of space, this supporting&lt;/div&gt;&lt;div&gt;  information should be made accessible otherwise (e.g., a link to a&lt;/div&gt;&lt;div&gt;  web page, or an appendix). Papers should be submitted electronically&lt;/div&gt;&lt;div&gt;  at [https://www.easychair.org/conferences/?conf=flops2012].&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Important Dates&lt;/div&gt;&lt;div&gt;===============&lt;/div&gt;&lt;div&gt;  - Submission deadline : December 9, 2011&lt;/div&gt;&lt;div&gt;  - Author notification : February 3, 2012&lt;/div&gt;&lt;div&gt;  - Camera-ready copy : March 2, 2012&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Place and Related Events&lt;/div&gt;&lt;div&gt;========================&lt;/div&gt;&lt;div&gt;  Takikawa Memorial Hall, Kobe University, &lt;/div&gt;&lt;div&gt;  1-1 Rokkodai, Nada, Kobe 657-8501 Japan.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;  The 23rd International Conference on Rewriting Techniques and&lt;/div&gt;&lt;div&gt;  Applications (RTA 2012) and satellite workshops including WFLP 2012&lt;/div&gt;&lt;div&gt;  will be held in the week after FLOPS at Nagoya, Japan.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Some Previous FLOPS&lt;/div&gt;&lt;div&gt;===================&lt;/div&gt;&lt;div&gt;  - FLOPS 2010, Sendai: [http://www.kb.ecei.tohoku.ac.jp/flops2010/]&lt;/div&gt;&lt;div&gt;  - FLOPS 2008, Ise: [http://www.math.nagoya-u.ac.jp/~garrigue/FLOPS2008/]&lt;/div&gt;&lt;div&gt;  - FLOPS 2006, Fuji Susono: [http://hagi.is.s.u-tokyo.ac.jp/FLOPS2006/]&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Sponsors&lt;/div&gt;&lt;div&gt;========&lt;/div&gt;&lt;div&gt;  - Japan Society for Software Science and Technology (JSSST) SIGPPL&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In Cooperation with&lt;/div&gt;&lt;div&gt;===================&lt;/div&gt;&lt;div&gt;  - ACM SIGPLAN (pending approval)&lt;/div&gt;&lt;div&gt;  - Asian Association for Foundation of Software (AAFS)&lt;/div&gt;&lt;div&gt;  - Association for Logic Programming (ALP)&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-1477966621157772506?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/1477966621157772506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2011/08/flops-2012-1st-call-for-papers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/1477966621157772506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/1477966621157772506'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2011/08/flops-2012-1st-call-for-papers.html' title='FLOPS 2012: 1st Call for Papers'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-9131362320359635124</id><published>2011-07-14T20:43:00.001+02:00</published><updated>2011-10-14T11:17:21.787+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><title type='text'>Report of the 18th Prolog Programming Contest</title><content type='html'>Update: &lt;a href="http://users.ugent.be/%7Etschrijv/ppc/ppc2011_probs.pdf"&gt;the problems&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://picasaweb.google.com/tomenannemie/PPC18?authuser=0&amp;amp;authkey=Gv1sRgCPXvv9q_87KqwwE&amp;amp;feat=directlink" style="color: red;"&gt;Pictures of the contest&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;First, for those of you who don't know: In the Prolog Programming Contest we lock up teams of Prolog programmers in a room for 2 hours with 5 challenges. Each team has up to 3 members and one laptop. The team that solves most challenges in the least amount of time is the winner.&lt;br /&gt;&lt;br /&gt;Now, like every year, participants could not wait to sign up for this year's contest.  Really, no extortion or heavy handling was required.&lt;br /&gt;&lt;br /&gt;Well, admittedly, there were the usual excuses for not participating, like:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I already do this for a day job, or&lt;/li&gt;&lt;li&gt;It would not be fair to the other participants, or&lt;/li&gt;&lt;li&gt;I am too old for this (now more about that later).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;There are better ways to get out of participating ... if you can afford them. I won't mention a petrol state professor who sent his students, instead of himself.&lt;br /&gt;&lt;br /&gt;Anyway, 9 teams showed up -- 1 more than last year -- constituting 24 participants.&lt;br /&gt;We had&lt;br /&gt;&lt;br /&gt;2 Leuven teams (again),&lt;br /&gt;1 Viking team,&lt;br /&gt;1 Italian team,&lt;br /&gt;1 Texas team,&lt;br /&gt;1 standardization team,&lt;br /&gt;1 "old boys" team -- see being old is no excuse,&lt;br /&gt;and 2 more mixed teams.&lt;br /&gt;&lt;br /&gt;Unfortunately, last year's winners, Jan Wielemaker and his team, could not come&lt;br /&gt;to Lexington.&lt;br /&gt;&lt;br /&gt;A few words of thanks are in order. There are more people involved in making the Prolog Programming Contest happen than you think.  I am very grateful to all of them.  I would like to thank the program chairs, John Gallagher and Michael Gelfond, for inviting the contest to ICLP 2011 and providing a slot in their program.  Thanks to the general chairs, Mirek and Marek, for providing us with the chairs, tables, the room and the many power sockets.  Finally, thanks to Jael for helping me run the contest and for telling the participants in the kindest possible way that their answers were wrong.&lt;br /&gt;&lt;br /&gt;I realize I say this every year: the problems were hard this year - but they were also doable. We had poultry, fast food and Joe the Plumber made an appearance.&lt;br /&gt;Every problem was solved by at least one team.  Moreover, every team solved at least one problem -- congratulations to all the participants! Before we move on to this year's winners, I want to say: there is no shame if you don't win the contest, there is only shame if you don't participate.&lt;br /&gt;&lt;br /&gt;We have had a slow but consistent trickle of answer submissions throughout the contest. All teams know they got one answer right. Several teams were told they got 2 answers right. One team has won, but does not know yet that it got 3 answers right. At the very end of the contest, in the last minute, there were 2 submissions that did not get feedback.&lt;br /&gt;&lt;br /&gt;This year's Prolog system of choice is &lt;span style="font-weight: bold;"&gt;Ciao Prolog&lt;/span&gt;.  Congratulation to this year’s winners, who have shown that you are never too old to win: &lt;span style="font-weight: bold;"&gt;Antonio Porto, Michael Leuschel and Manuel Hermenegildo&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;So, that's it for this year. I hope you've all enjoyed.  See you next year!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-9131362320359635124?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/9131362320359635124/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2011/07/report-of-18th-prolog-programming.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/9131362320359635124'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/9131362320359635124'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2011/07/report-of-18th-prolog-programming.html' title='Report of the 18th Prolog Programming Contest'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-2381539766210474282</id><published>2011-06-29T20:09:00.003+02:00</published><updated>2011-06-29T20:17:45.268+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scholarships'/><title type='text'>Mobility Grant for Postdocs from China, Vietnam, Cambodia, Myanmar, Indonesia and Thailand</title><content type='html'>Are you a South-East Asian postdoc in the area of &lt;span style="font-style: italic;"&gt;programming languages&lt;/span&gt; interested to spend some time at Ghent University in Belgium? Then contact me.&lt;br /&gt;&lt;br /&gt;For more information, see &lt;a href="http://www.lotus.ugent.be/"&gt; http://www.lotus.ugent.be/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center"&gt;&lt;span style="font-size: large"&gt;&lt;strong&gt;Call 4 of Lotus, the EU - South-East Asian Mobility Project: only for POSTDOC!&lt;br /&gt;Call 4 will be closed on Friday September 2nd, 2011 at 11am local Belgian time.&lt;br /&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt; Lotus is an Erasmus Mundus Action Two Partnership (EMA2) of European and  South-East Asian Higher Education Institutions (HEI) and Associations  aiming at fostering mutual enrichment and better understanding between  the EU and South-East Asia (China, Vietnam, Cambodia, Myanmar,  Indonesia, Thailand), through the exchange of persons, knowledge and  skills at higher education level and to co-operate in postdoc mobility.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-2381539766210474282?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/2381539766210474282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2011/06/mobility-grant-for-postdocs-from-china.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2381539766210474282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2381539766210474282'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2011/06/mobility-grant-for-postdocs-from-china.html' title='Mobility Grant for Postdocs from China, Vietnam, Cambodia, Myanmar, Indonesia and Thailand'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-2410664843574171684</id><published>2011-05-10T11:22:00.002+02:00</published><updated>2011-06-24T10:52:26.992+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='constraints'/><category scheme='http://www.blogger.com/atom/ns#' term='CLP'/><title type='text'>ModRef2011 - Call for Papers</title><content type='html'>The 10th International Workshop on&lt;br /&gt;Constraint Modelling and Reformulation (ModRef 2011)&lt;br /&gt;         &lt;a href="http://aenas.arfcd.com/modref11"&gt;http://aenas.arfcd.com/modref11&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;      To be held at the 17th International Conference on the&lt;br /&gt;     Principles and Practice of Constraint Programming (CP 2011)&lt;br /&gt;              Perugia, Italy, Monday 12 September 2011&lt;br /&gt;&lt;br /&gt;            &lt;span style="font-weight: bold; color: rgb(204, 0, 0);"&gt;*** Extended Deadline: 1 July 2011 ***&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;AIMS AND SCOPE&lt;br /&gt;&lt;br /&gt;Constraint Programming (CP) is a powerful technology to model and&lt;br /&gt;solve combinatorial problems, which are ubiquitous in academia and&lt;br /&gt;industry. The last ten years or so have witnessed significant research&lt;br /&gt;devoted to modelling and solving problems with constraints. CP is now&lt;br /&gt;a mature field and has been successfully used for tackling a wide&lt;br /&gt;range of real-life complex applications. However, such a technology is&lt;br /&gt;currently accessible to only a small number of experts. For CP to be&lt;br /&gt;more widely used by non-experts, more research effort is needed in&lt;br /&gt;order to ease the use of the CP technology. We solicit original papers&lt;br /&gt;that contribute to widen the use of the CP technology.&lt;br /&gt;&lt;br /&gt;Workshop topics include (but are not limited to):&lt;br /&gt;    * Application papers describing interesting problems and&lt;br /&gt;      interesting ways to model them;&lt;br /&gt;    * Contributions to understanding modelling that could guide the&lt;br /&gt;      manual or automatic formulation of models;&lt;br /&gt;    * Identification of the criteria that should be used in&lt;br /&gt;      evaluating models and the design of pragmatic techniques that&lt;br /&gt;      facilitate the choice and possibly combination among&lt;br /&gt;      alternative models;&lt;br /&gt;    * Design of higher-level modelling languages;&lt;br /&gt;    * Automatic reformulation techniques.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PROGRAMME COMMITTEE&lt;br /&gt;&lt;br /&gt;Andrea Rendl (chair) (Austria)&lt;br /&gt;J. Christopher Beck (co-chair) (Canada)&lt;br /&gt;&lt;br /&gt;Alan M. Frisch (UK)&lt;br /&gt;Stefan Heinz (Germany)&lt;br /&gt;Brahim Hnich (Turkey)&lt;br /&gt;Jimmy Lee (China)&lt;br /&gt;Ian Miguel (UK)&lt;br /&gt;Michaela Milano (Italy)&lt;br /&gt;Nina Narodytska (Australia)&lt;br /&gt;Justin K. Pearson (Sweden)&lt;br /&gt;Tom Schrijvers (Belgium)&lt;br /&gt;Helmut Simonis (Ireland)&lt;br /&gt;Pascal Van Hentenryck (USA)&lt;br /&gt;Mark Wallace (Australia)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IMPORTANT DATES&lt;br /&gt;&lt;br /&gt;Submission deadline        Friday 24 June 2011&lt;br /&gt;Author notification        Sunday 17 July 2011&lt;br /&gt;Camera-Ready Copy deadline Friday 19 August 2011&lt;br /&gt;Workshop                   Monday 12 September 2011&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SUBMISSION&lt;br /&gt;&lt;br /&gt;Submissions must be formatted in the Lecture Notes in Computer Science&lt;br /&gt;(LNCS) style and must not exceed 15 pages. Submissions of shorter&lt;br /&gt;papers, including position papers, are welcome.&lt;br /&gt;&lt;br /&gt;Papers must be submitted in PDF format using EasyChair:&lt;br /&gt;https://www.easychair.org/conferences/?conf=modref11&lt;br /&gt;&lt;br /&gt;All submissions will be reviewed and those that are well written and&lt;br /&gt;make a worthwhile contribution to the topic of the workshop will be&lt;br /&gt;accepted for publication in the workshop proceedings. The proceedings&lt;br /&gt;will be available electronically at CP 2011. At least one author of&lt;br /&gt;each accepted paper must attend the workshop. To attend the workshop&lt;br /&gt;it is necessary to pay the workshop fees.&lt;br /&gt;&lt;br /&gt;More info is available at the workshop web-site:&lt;br /&gt;http://aenas.arfcd.com/modref11&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-2410664843574171684?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/2410664843574171684/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2011/05/modref2011-call-for-papers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2410664843574171684'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2410664843574171684'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2011/05/modref2011-call-for-papers.html' title='ModRef2011 - Call for Papers'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-2122980800067209676</id><published>2011-04-25T10:09:00.001+02:00</published><updated>2011-04-25T10:28:17.944+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logic Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='ICLP'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='events'/><title type='text'>WLPE 2011: Call for Papers</title><content type='html'>------------------------------&lt;wbr&gt;------------------------------&lt;wbr&gt;----------&lt;br /&gt; 21st Workshop on Logic-based methods in Programming Environments&lt;br /&gt;&lt;br /&gt;                    Affiliated with ICLP 2011&lt;br /&gt;                July 10, Lexington, Kentucky, USA&lt;br /&gt;              &lt;a href="http://imada.sdu.dk/~petersk/WLPE2011/" target="_blank" style="color: rgb(28, 81, 168); "&gt;http://imada.sdu.dk/~petersk/&lt;wbr&gt;WLPE2011/&lt;/a&gt;&lt;br /&gt;------------------------------&lt;wbr&gt;------------------------------&lt;wbr&gt;----------&lt;br /&gt;&lt;br /&gt;NEWS&lt;br /&gt;&lt;br /&gt;* keynote given by Manuel Hermenegildo (see INVITED SPEAKER)&lt;br /&gt;* early registration is open until May 31 (see CONFERENCE VENUE)&lt;br /&gt;* EPTCS acceptance for refereed post-proceedings (see SUBMISSIONS)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;OBJECTIVES&lt;br /&gt;&lt;br /&gt;The goal of the 21s Workshop on Logic-based methods in Programming&lt;br /&gt;Environments (WLPE 2011) is to be a informal venue for presentation&lt;br /&gt;and discussion of research on logic-based methods and tools which&lt;br /&gt;support program development and analysis. In this way, the workshop&lt;br /&gt;tries to bridge the gaps between different communities interested&lt;br /&gt;and active in logic-based tools for programming.&lt;br /&gt;&lt;br /&gt;In addition to papers describing more conceptual and theoretical work,&lt;br /&gt;we explicitly also welcome papers describing the implementation of,&lt;br /&gt;and experience with, such tools.&lt;br /&gt;&lt;br /&gt;The 21st Workshop on Logic-based methods in Programming Environments&lt;br /&gt;continues the series of successful workshops held in Ohio, USA (1989),&lt;br /&gt;Eilat, Israel (1990), Paris, France (1991), Washington D.C., USA (1992),&lt;br /&gt;Vancouver, Canada (1993), Santa Margherita Ligure, Italy (1994),&lt;br /&gt;Portland, USA (1995), Leuven, Belgium and Port Jefferson, USA (1997),&lt;br /&gt;Las Cruces, USA (1999), Paphos, Cyprus (2001),&lt;br /&gt;Copenhagen, Denmark (2002), Mumbai, India (2003),&lt;br /&gt;Saint Malo, France (2004), Sitges (Barcelona), Spain (2005),&lt;br /&gt;Seattle, USA (2006), Porto, Portugal (2007), Udine, Italy (2008),&lt;br /&gt;Pasadena, USA (2009), and Edinburgh, UK (2010).&lt;br /&gt;&lt;br /&gt;We hope to attain the same friendly atmosphere as in past workshops,&lt;br /&gt;which enabled fruitful exchanges leading to joint research and&lt;br /&gt;subsequent publications.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;TOPICS&lt;br /&gt;&lt;br /&gt;Areas particularly relevant to the workshop include (but are not&lt;br /&gt;limited to):&lt;br /&gt;&lt;br /&gt;* static and dynamic analysis&lt;br /&gt;* debugging and testing&lt;br /&gt;* program verification and validation&lt;br /&gt;* code generation from specifications&lt;br /&gt;* termination analysis&lt;br /&gt;* reasoning on occurs-check freeness and determinacy&lt;br /&gt;* profiling and performance analysis&lt;br /&gt;* type and mode analysis&lt;br /&gt;* shape, point-to and escape analysis&lt;br /&gt;* module systems&lt;br /&gt;* optimization tools&lt;br /&gt;* program understanding&lt;br /&gt;* refactoring&lt;br /&gt;* logical meta-languages&lt;br /&gt;&lt;br /&gt;Authors who are interested in taking part in the workshop, but are&lt;br /&gt;unsure if their work falls within its scope, are warmly invited to&lt;br /&gt;contact the organizers and obtain suitable advice.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SUBMISSIONS&lt;br /&gt;&lt;br /&gt;We encourage the submission of original research in the area as well as&lt;br /&gt;relevant results that have been submitted, rejected, or accepted elsewhere&lt;br /&gt;as long as they are relevant for the WLPE community.&lt;br /&gt;&lt;br /&gt;All papers must be written in English and should not exceed 15 pages.&lt;br /&gt;We welcome also shorter submissions, e.g., extended abstracts and&lt;br /&gt;short papers, of at least 3 pages.&lt;br /&gt;&lt;br /&gt;There will be no formal reviewing and no formal proceedings. The accepted papers will be made available electronically before the workshop.&lt;br /&gt;In case there is a sufficient number of original publications,&lt;br /&gt;we will invite authors to refereed post-proceedings in EPTCS.&lt;br /&gt;&lt;br /&gt;Papers should be submitted electronically via the submission page:&lt;br /&gt;&lt;br /&gt;  &lt;a href="http://www.easychair.org/conferences/?conf=wlpe2011" target="_blank" style="color: rgb(28, 81, 168); "&gt;http://www.easychair.org/&lt;wbr&gt;conferences/?conf=wlpe2011&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Final versions should be created using LaTeX and the style file&lt;br /&gt;eptcs.cls (&lt;a href="http://style.eptcs.org/" target="_blank" style="color: rgb(28, 81, 168); "&gt;http://style.eptcs.org/&lt;/a&gt;). Alternatively, easychair.cls (&lt;a href="http://www.easychair.org/coolnews.cgi" target="_blank" style="color: rgb(28, 81, 168); "&gt;http://www.easychair.org/&lt;wbr&gt;coolnews.cgi&lt;/a&gt;) can be used for the informal proceedings.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IMPORTANT DATES&lt;br /&gt;&lt;br /&gt;Paper submission      April 29&lt;br /&gt;Notification          May   16&lt;br /&gt;Final versions due    May   28&lt;br /&gt;Workshop date         July  10&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;INVITED SPEAKER&lt;br /&gt;&lt;br /&gt;The keynote speaker will be Manuel Hermenegildo from Universidad&lt;br /&gt;Politecnica de Madrid and University of New Mexico.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CONFERENCE VENUE&lt;br /&gt;&lt;br /&gt;The workshop will be held as a satellite workshop of ICLP 2011&lt;br /&gt;organized by the Computer Science Department of the University of&lt;br /&gt;Kentucky in Lexington, Kentucky, USA.&lt;br /&gt;&lt;br /&gt;Registration fees will be discounted until May 31. Registration&lt;br /&gt;is now possible at:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cs.uky.edu/iclp2011/iclp11Registration.html" target="_blank" style="color: rgb(28, 81, 168); "&gt;http://www.cs.uky.edu/&lt;wbr&gt;iclp2011/iclp11Registration.&lt;wbr&gt;html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;PROGRAM COMMITTEE&lt;br /&gt;&lt;br /&gt;Michael Codish        Ben-Gurion University, Israel&lt;br /&gt;Carsten Fuhs          RWTH Aachen, Germany&lt;br /&gt;John Gallagher        University of Roskilde, Denmark&lt;br /&gt;Samir Genaim          Complutense University of Madrid, Spain&lt;br /&gt;Petra Hofstedt        TU Berlin, Germany&lt;br /&gt;Andy King             University of Kent, UK&lt;br /&gt;Ulrich Neumerkel      TU Wien, Austria&lt;br /&gt;Peter Schneider-Kamp  University of Southern Denmark, Denmark&lt;br /&gt;Tom Schrijvers        Ghent University, Belgium&lt;br /&gt;Alexander Serebrenik  TU Eindhoven, The Netherlands&lt;br /&gt;Wim Vanhoof           University of Namur, Belgium&lt;br /&gt;German Vidal          Universitat Politecnica de Valencia, Spain&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-2122980800067209676?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/2122980800067209676/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2011/04/wlpe-2011-call-for-papers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2122980800067209676'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2122980800067209676'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2011/04/wlpe-2011-call-for-papers.html' title='WLPE 2011: Call for Papers'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-1794405852957294411</id><published>2011-02-13T14:12:00.002+01:00</published><updated>2011-02-13T14:19:01.166+01:00</updated><title type='text'>“Sandwich”-type  doctoral grants for candidates from developing countries</title><content type='html'>Are you a PhD candidate in a developing country who would like to spend 2 years at the University of Ghent (Belgium) doing research on programming languages?&lt;br /&gt;&lt;br /&gt;Read the full details &lt;a href="http://www.ugent.be/nl/onderzoek/financiering/bof/DOS/callDOS.doc"&gt;here.&lt;/a&gt; If you are interested, get in touch with me asap and we may be able to work out an application. The deadline for the submission of applications is 15 March 2011, at 5 p.m.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-1794405852957294411?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/1794405852957294411/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2011/02/sandwich-type-doctoral-grants-for.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/1794405852957294411'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/1794405852957294411'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2011/02/sandwich-type-doctoral-grants-for.html' title='“Sandwich”-type  doctoral grants for candidates from developing countries'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-6455716615224465078</id><published>2011-01-21T12:03:00.004+01:00</published><updated>2011-01-21T12:12:52.416+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VPW'/><title type='text'>Vlaamse Programmeerwedstrijd 2011</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_Sh235RGes-w/TTlqH-i2oMI/AAAAAAAAFEg/qnSGsUZlibo/s1600/vpw2011.png"&gt;&lt;img style="float: left; margin: 0pt 10px 10px 0pt; cursor: pointer; width: 171px; height: 116px;" src="http://1.bp.blogspot.com/_Sh235RGes-w/TTlqH-i2oMI/AAAAAAAAFEg/qnSGsUZlibo/s200/vpw2011.png" alt="" id="BLOGGER_PHOTO_ID_5564595499873771714" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;De Vlaamse Programmeerwedstrijd, intussen al een vaste waarde bij de programmerende Vlaamse jongeren en studenten, is aan zijn derde editie toe. Deze gaat door in Kortrijk op 23 maart.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Tijdens de VPW lossen de deelnemers (in teams van 3) in een beperkte tijd van 3 uren zoveel mogelijk problemen op in een van de ondersteunde programmeertalen, namelijk C,  C++, Java, Haskell, PHP, Prolog, Python, Ruby, Visual Basic, C#, Pascal  of Scheme.                   &lt;p&gt;Leerlingen uit het secundair onderwijs en uit het hoger onderwijs (hogeschool en universiteit) kunnen deelnemen aan de Vlaamse Programmeerwedstrijd, net als doctoraatstudenten en mensen uit de industrie.&lt;/p&gt;&lt;p&gt;&lt;span class="txt"&gt;Binnen elke categorie krijgen de drie beste programmeerteams een prijs. Dankzij onze sponsors kunnen we een aanzienlijke prijzenpot aanbieden. Bovendien gaat niemand met lege handen naar huis.                   &lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;Voor meer informatie en inschrijving kan je op de &lt;a href="http://www.vlaamseprogrammeerwedstrijd.be/"&gt;VPW site&lt;/a&gt; terecht.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-6455716615224465078?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/6455716615224465078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2011/01/vlaamse-programmeerwedstrijd-2011.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/6455716615224465078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/6455716615224465078'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2011/01/vlaamse-programmeerwedstrijd-2011.html' title='Vlaamse Programmeerwedstrijd 2011'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Sh235RGes-w/TTlqH-i2oMI/AAAAAAAAFEg/qnSGsUZlibo/s72-c/vpw2011.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-4299647905242347822</id><published>2010-10-28T10:57:00.002+02:00</published><updated>2010-10-28T11:03:10.976+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>Symposium: Functional Programming in Industry</title><content type='html'>At the occasion of BelHac, the first Belgian Haskell Hackathon from 5-7  Nov 2010, the Ghent Functional Programming Group is organizing a  symposium on &lt;span style="font-weight: bold;"&gt;"Functional Programming in Industry"&lt;/span&gt;, to which you are  cordially invited.&lt;br /&gt;&lt;br /&gt;The symposium is  is held on Friday, November 5th at  17:00 in the Jozef Plateauzaal in the Plateau building of Ghent  University (Jozef Plateaustraat 22, 9000 Gent).&lt;br /&gt;&lt;br /&gt;The program is as  follows: &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Duncan Coutts&lt;/span&gt; (Well-Typed, &lt;a href="http://www.well-typed.com/" target="_blank"&gt;http://www.well-typed.com/&lt;/a&gt;,  BelHac sponsor) who will be talking on how Well-Typed are providing  consultancy services for Haskell, a pure functional programming  language.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Romain Slootmaekers&lt;/span&gt; (Incubaid, &lt;a href="http://www.incubaid.com/" target="_blank"&gt;http://www.incubaid.com&lt;/a&gt;, BelHac sponsor) who will be talking on the use of functional programming in Incubaid, a company based in the Ghent area.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Don Stewart&lt;/span&gt; (Galois, &lt;a href="http://www.galois.com/" target="_blank"&gt;http://www.galois.com&lt;/a&gt;) who will be talking on how Galois is using Haskell in many of their projects, including government contracts.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;The talks will be followed by a reception.&lt;br /&gt;&lt;br /&gt;Please &lt;a href="https://spreadsheets.google.com/viewform?hl=en&amp;amp;formkey=dFVsNWZPWTdyT3NYOWRnT25GUzdJSFE6MQ#gid=0"&gt;register&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-4299647905242347822?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/4299647905242347822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2010/10/symposium-functional-programming-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/4299647905242347822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/4299647905242347822'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2010/10/symposium-functional-programming-in.html' title='Symposium: Functional Programming in Industry'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-4092611341852762667</id><published>2010-08-05T11:40:00.000+02:00</published><updated>2010-08-05T11:41:06.678+02:00</updated><title type='text'>Doctoral Position</title><content type='html'>I have a doctoral position available:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DOCTORAL POSITION&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;  Programming Languages Group&lt;br /&gt;  Department of Applied Mathematics and Computer Science&lt;br /&gt;  University of Ghent, Belgium&lt;br /&gt;&lt;br /&gt;The new Programming Languages Group at the University of Ghent is looking for&lt;br /&gt;doctoral research candidates in the area of Datalog.&lt;br /&gt;The position concerns research related to language development, program&lt;br /&gt;optimization, integration with constraint solvers, problem modeling,&lt;br /&gt;refactoring, profiling, debugging, ...  Close collaboration with our US-based&lt;br /&gt;industrial partner is expected.&lt;br /&gt;&lt;br /&gt;Applicants should have a masters degree in Computer Science or equivalent.&lt;br /&gt;Experience in Datalog, logic programming (Prolog, ASP, ...), databases or&lt;br /&gt;constraint programming is an asset.&lt;br /&gt;&lt;br /&gt;Appointment to the doctoral position will be for the period of one year&lt;br /&gt;initially with possibility for extension to four years ending in a Ph.D.  The&lt;br /&gt;salary is compatible with the departmental rates for doctoral research fellows.&lt;br /&gt;&lt;br /&gt;Please direct inquiries and applications, preferably by e-mail, to:&lt;br /&gt;&lt;br /&gt;   Professor Tom Schrijvers&lt;br /&gt;   Vakgroep Toegepaste Wiskunde en Informatica&lt;br /&gt;   Universiteit Gent&lt;br /&gt;   Krijgslaan 281-S9,&lt;br /&gt;   B-9000 Gent, BELGIUM&lt;br /&gt;&lt;br /&gt;   E-mail: datalog.ugent@gmail.com&lt;br /&gt;&lt;br /&gt;Notice of interest (including motivation and CV) should be received as soon as&lt;br /&gt;possible. Review of applications begins as of August 15, 2010, and the start date&lt;br /&gt;is determined in consultation with the selected candidate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-4092611341852762667?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/4092611341852762667/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2010/08/doctoral-position.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/4092611341852762667'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/4092611341852762667'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2010/08/doctoral-position.html' title='Doctoral Position'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-6323927954862873663</id><published>2010-07-30T10:35:00.001+02:00</published><updated>2010-07-30T10:38:22.844+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>BelHac 2010</title><content type='html'>We are very pleased to officially announce an international&lt;br /&gt;&lt;span class="il"&gt;Hackaton&lt;/span&gt; in &lt;span class="il"&gt;Ghent&lt;/span&gt;,  Belgium, on 5, 6 and 7 November 2010.&lt;br /&gt;&lt;br /&gt;If you are interested in attending, we have put some information on&lt;br /&gt;&lt;a href="http://www.haskell.org/haskellwiki/Ghent_Functional_Programming_Group/BelHac"&gt;the wiki&lt;/a&gt;. We will soon put up more details about transportation,&lt;br /&gt;accommodation and food. (And Belgian beer, of course!) You can&lt;br /&gt;&lt;a href="http://www.haskell.org/haskellwiki/Ghent_Functional_Programming_Group/BelHac/Register"&gt;register here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WHEN&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Friday November 5: 2pm - 7pm&lt;br /&gt;Saturday November 6: 10am - 6pm&lt;br /&gt;Sunday November 7: 10am - 6pm&lt;/blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WHERE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;In “The Therminal”, in &lt;span class="il"&gt;Ghent&lt;/span&gt;, Belgium. Please  see the wiki for more details.&lt;/blockquote&gt;&lt;br /&gt;We hope to see you in Belgium!&lt;br /&gt;&lt;br /&gt;The GhentFPG organizing committee.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-6323927954862873663?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/6323927954862873663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2010/07/belhac-2010.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/6323927954862873663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/6323927954862873663'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2010/07/belhac-2010.html' title='BelHac 2010'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-8074772487329035997</id><published>2010-07-19T11:41:00.007+02:00</published><updated>2010-07-19T11:58:57.031+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><title type='text'>Report of the 17th Prolog Programming Contest</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh3.ggpht.com/_Sh235RGes-w/TEK2SE0sOHI/AAAAAAAAE9k/r34QdYDffOo/s640/IMG_4006.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 640px; height: 480px;" src="http://lh3.ggpht.com/_Sh235RGes-w/TEK2SE0sOHI/AAAAAAAAE9k/r34QdYDffOo/s640/IMG_4006.JPG" alt="" border="0" /&gt;&lt;/a&gt;In the Prolog Programming Contest we lock up teams of Prolog programmers in a room for a short time with 5 challenges.  Each team has 3 members and one laptop. The team that solves most challenges in the least amount of time is the winner.&lt;br /&gt;&lt;br /&gt;Participants eagerly presented themselves: 8 teams of 3 people showed up.&lt;br /&gt;&lt;p&gt;We had&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt; 2 Leuven teams, &lt;/li&gt;&lt;br /&gt;&lt;li&gt; 1 Low Countries team, &lt;/li&gt;&lt;br /&gt;&lt;li&gt; 3 country teams: one each from Italy, Denmark and Germany, &lt;/li&gt;&lt;br /&gt;&lt;li&gt; 2 mixed teams&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; an Austrian-Portugese-US team with Neng-Fa Zhou, and&lt;/li&gt;&lt;br /&gt;&lt;li&gt; a Danish-English-Italian team with Marco Gavanelli.&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;   &lt;/li&gt;&lt;/ul&gt;Last years winners were represented by Peter Van Weert in a Leuven team.&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;It is at least as much fun running the contest as it is participating. Many teams have learned from last year's techniques. Swapping around the keyboard like mad and reading the problem description pages on both sides simultaneously were definitely popular again.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;You learn a lot of things running the contest. Practicing in advance is very effective, but it's not too late to learn Prolog during the contest. Knowing your team mates intimately is no guarantee for success, nor is having won last year.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;I am grateful to quite a few people who have made the Prolog Programming Contest possible. Firstly, thanks to Bart Demoen for founding the contest series and running it for so many years; also thanks for supplying one particularly nasty problem description.  Secondly, I would like to thank the FLoC organizers and ICLP chairs, Manuel Hermenegildo and Torsten Schaub, for providing us with an excellent venue with many power sockets and making the contest an integral part of the programme.  Finally, thanks to Gerda Janssens for helping me run the contest very smoothly.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Now, on to the ranking. This year's contest was much more challenging than last year's. Three out of eight teams have not submitted any correct solution; one of these did not submit anyting.  The time pressure was immense: solve 5 problems in 90 minutes rather than the usual 120. But Prolog is great at rapid prototyping, right? Unfazed by this time pressure, most teams ignored the 4 easy problems and went straight for the hardest... without success. The most successful teams were those that remembered in time to also look at the other problems.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Having 2 solutions was enough to make the top 3 this year.  The team that came in third, is the team of Jon Sneyers, Peter Van Weert and Dean Voets.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Then, there are two teams left, just 2 minutes apart, also with 2 correct solutions.  These are the teams of Neng-Fa Zhou and Jan Wielemaker. Clearly being a Prolog system implementer gives you an edge in the contest.  Congratulation to this year's winners: &lt;span style="font-weight: bold;"&gt;Jan Wielemaker, Paolo Pilozzi and Peter Biener&lt;/span&gt;. The winners' Prolog system of choice is SWI-Prolog.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;I hope you enjoyed it.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;Tom&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The problem descriptions are available &lt;a href="http://www.cs.kuleuven.be/%7Etoms/Research/papers/ppc2010.pdf"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-8074772487329035997?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/8074772487329035997/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2010/07/report-of-17th-prolog-programming.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/8074772487329035997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/8074772487329035997'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2010/07/report-of-17th-prolog-programming.html' title='Report of the 17th Prolog Programming Contest'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh3.ggpht.com/_Sh235RGes-w/TEK2SE0sOHI/AAAAAAAAE9k/r34QdYDffOo/s72-c/IMG_4006.JPG' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-662520124223236343</id><published>2010-07-16T12:39:00.000+02:00</published><updated>2010-07-16T12:40:22.429+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='events'/><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>PADL 2011</title><content type='html'>13th International Symposium on&lt;br /&gt;      Practical Aspects of Declarative Languages (PADL 2011)&lt;br /&gt;&lt;br /&gt;                 &lt;a href="http://www.dcc.fc.up.pt/PADL-2011" target="_blank"&gt;http://www.dcc.fc.up.pt/PADL-&lt;wbr&gt;2011&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;              Austin, Texas, USA, January 24-25, 2011&lt;br /&gt;                    Co-located with ACM POPL'11&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                      Conference Description&lt;br /&gt;                      ======================&lt;br /&gt;&lt;br /&gt;   Declarative languages build on sound theoretical bases to provide&lt;br /&gt;attractive frameworks for application development. These languages&lt;br /&gt;have been successfully applied to many different real-world&lt;br /&gt;situations, ranging from data base management to active networks to&lt;br /&gt;software engineering to decision support systems.&lt;br /&gt;&lt;br /&gt;   New developments in theory and implementation have opened up new&lt;br /&gt;application areas. At the same time, applications of declarative&lt;br /&gt;languages to novel problems raise numerous interesting research&lt;br /&gt;issues. Well-known questions include designing for scalability,&lt;br /&gt;language extensions for application deployment, and programming&lt;br /&gt;environments. Thus, applications drive the progress in the theory and&lt;br /&gt;implementation of declarative systems, and benefit from this progress&lt;br /&gt;as well.&lt;br /&gt;&lt;br /&gt;   PADL is a forum for researchers and practitioners to present&lt;br /&gt;original work emphasizing novel applications and implementation&lt;br /&gt;techniques for all forms of declarative concepts, including,&lt;br /&gt;functional, logic, constraints, etc. Topics of interest include, but&lt;br /&gt;are not limited to:&lt;br /&gt;&lt;br /&gt;   * Innovative applications of declarative languages&lt;br /&gt;   * Declarative domain-specific languages and applications&lt;br /&gt;   * Practical applications of theoretical results&lt;br /&gt;   * New language developments and their impact on applications&lt;br /&gt;   * Declarative languages and Software Engineering&lt;br /&gt;   * Evaluation of implementation techniques on practical applications&lt;br /&gt;   * Practical experiences and industrial applications&lt;br /&gt;   * Novel uses of declarative languages in the classroom&lt;br /&gt;&lt;br /&gt;   PADL'11 welcomes new ideas and approaches pertaining to&lt;br /&gt;applications and implementation of declarative languages. In this&lt;br /&gt;occasion PADL is co-located, as traditionally, with ACM POPL, which&lt;br /&gt;will be held immediately following PADL, January 26-28. The symposium&lt;br /&gt;will be held in Austin, Texas, USA.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;              Important Dates and Submission Guidelines&lt;br /&gt;              ==============================&lt;div id=":bh" class="ii gt"&gt;&lt;wbr&gt;===========&lt;br /&gt;&lt;br /&gt;              Abstract Submission:    September 1, 2010&lt;br /&gt;              Paper Submission:       September 8, 2010&lt;br /&gt;              Notification:            October 11, 2010&lt;br /&gt;              Camera-ready:            November 1, 2010&lt;br /&gt;              Symposium:            January 24-25, 2011&lt;br /&gt;&lt;br /&gt;  Authors should submit an electronic copy of the full paper in PDF&lt;br /&gt;using the Springer LNCS format. The submission will be done through&lt;br /&gt;EasyChair conference system. If electronic submission is impossible,&lt;br /&gt;please contact the program chairs for information on how to submit&lt;br /&gt;hard copies. All submissions must be original work written in&lt;br /&gt;English. Submissions must be unpublished and not submitted for&lt;br /&gt;publication elsewhere. Work that already appeared in unpublished or&lt;br /&gt;informally published workshops proceedings may be submitted. PADL'11&lt;br /&gt;will accept both technical and application papers:&lt;br /&gt;&lt;br /&gt;   * Technical papers must describe original, previously unpublished&lt;br /&gt;     research results. Technical papers must not exceed 15 pages in&lt;br /&gt;     Springer LNCS format.&lt;br /&gt;   * Application papers are a mechanism to present important practical&lt;br /&gt;     applications of declarative languages that occur in industry or&lt;br /&gt;     in areas of research other than Computer Science. Application&lt;br /&gt;     papers will be published in the Springer-Verlag conference&lt;br /&gt;     proceedings, and will be presented in a separate session.&lt;br /&gt;     Application papers are expected to describe complex and/or&lt;br /&gt;     real-world applications that rely on an innovative use of&lt;br /&gt;     declarative languages. Application descriptions, engineering&lt;br /&gt;     solutions and real-world experiences (both positive and negative)&lt;br /&gt;     are solicited. The limit for application papers is 3 pages in&lt;br /&gt;     Springer LNCS format.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                     Most Practical Paper Award&lt;br /&gt;                     ==========================&lt;br /&gt;&lt;br /&gt;   The Most Practical Paper award will be given to the submission that&lt;br /&gt;is judged by the program committee to be the best in terms of&lt;br /&gt;practicality, originality, and clarity of presentation. The program&lt;br /&gt;committee may choose not to make an award, or to make multiple awards.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                         Program Committee&lt;br /&gt;                         =================&lt;br /&gt;&lt;br /&gt;   Ricardo Rocha, University of Porto, Portugal (co-chair)&lt;br /&gt;   John Launchbury, Galois, USA (co-chair)&lt;br /&gt;   Agostino Dovier, University of Udine, Italy&lt;br /&gt;   André Santos, Federal University of Pernambuco, Brazil&lt;br /&gt;   Bryan O'Sullivan, Serpentine Green Design, USA&lt;br /&gt;   Byron Cook, Microsoft Research, UK&lt;br /&gt;   C. R. Ramakrishnan, SUNY Stony Brook, USA&lt;br /&gt;   Germán Puebla, Technical University of Madrid, Spain&lt;br /&gt;   Konstantinos Sagonas, National Technical University of Athens, Greece&lt;br /&gt;   Maria Garcia de la Banda, Monash University, Australia&lt;br /&gt;   Martin Erwig, Oregon State University, USA&lt;br /&gt;   Neal Glew, Intel Corporation, USA&lt;br /&gt;   Neng-Fa Zhou, CUNY Brooklyn College, USA&lt;br /&gt;   Salvador Abreu, University of Évora, Portugal&lt;br /&gt;   Sukyoung Ryu, Advanced Institute of Science and Technology, Korea&lt;br /&gt;   Tom Schrijvers, Katholieke Universiteit Leuven, Belgium&lt;br /&gt;   Xavier Leroy, INRIA, France&lt;br /&gt;   Yitzhak Mandelbaum, AT&amp;amp;T Labs Research, USA&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                              Contacts&lt;br /&gt;                              ========&lt;br /&gt;&lt;br /&gt;   For additional information about papers and submissions, please&lt;br /&gt;contact the Program Chairs:&lt;br /&gt;&lt;br /&gt;   Ricardo Rocha&lt;br /&gt;   CRACS @ INESC-Porto LA &amp;amp; University of Porto, Portugal&lt;br /&gt;   Email: &lt;a href="mailto:ricroc@dcc.fc.up.pt"&gt;ricroc@dcc.fc.up.pt&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;   John Launchbury&lt;br /&gt;   Galois, USA&lt;br /&gt;   Email: &lt;a href="mailto:john@galois.com"&gt;john@galois.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                      With the Cooperation of&lt;br /&gt;                      =======================&lt;br /&gt;&lt;br /&gt;                 The University of Texas at Dallas&lt;br /&gt;                            ACM SIGPLAN&lt;br /&gt;&lt;br /&gt;                ==============================&lt;wbr&gt;=====&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-662520124223236343?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/662520124223236343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2010/07/padl-2011.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/662520124223236343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/662520124223236343'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2010/07/padl-2011.html' title='PADL 2011'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-2521267632894704793</id><published>2010-06-04T22:35:00.000+02:00</published><updated>2010-06-04T22:36:27.664+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>Haskell 2010, Final Call for Papers</title><content type='html'>Haskell 2010&lt;br /&gt;&lt;br /&gt;                  ACM SIGPLAN Haskell Symposium 2010&lt;br /&gt;                     Baltimore MD, United States&lt;br /&gt;                         30th September, 2010&lt;br /&gt;&lt;br /&gt;                        FINAL CALL FOR PAPERS&lt;br /&gt;&lt;br /&gt;            &lt;a href="http://www.haskell.org/haskell-symposium/2010/" target="_blank"&gt;http://www.haskell.org/&lt;wbr&gt;haskell-symposium/2010/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;   The ACM SIGPLAN Haskell Symposium 2010 will be co-located with the&lt;br /&gt;   2010 International Conference on Functional Programming (ICFP), in&lt;br /&gt;   Baltimore, Maryland.&lt;br /&gt;&lt;br /&gt;   The purpose of the Haskell Symposium is to discuss experiences with&lt;br /&gt;   Haskell and future developments for the language. The scope of the&lt;br /&gt;   symposium includes all aspects of the design, semantics, theory,&lt;br /&gt;   application, implementation, and teaching of Haskell.&lt;br /&gt;&lt;br /&gt;   Topics of interest include, but are not limited to:&lt;br /&gt;&lt;br /&gt;     * Language Design, with a focus on possible extensions and&lt;br /&gt;       modifications of Haskell as well as critical discussions of the&lt;br /&gt;       status quo;&lt;br /&gt;&lt;br /&gt;     * Theory, such as formal treatments of the semantics of the present&lt;br /&gt;       language or future extensions, type systems, and foundations&lt;br /&gt;       for program analysis and transformation;&lt;br /&gt;&lt;br /&gt;     * Implementations, including program analysis and transformation,&lt;br /&gt;       static and dynamic compilation for sequential, parallel, and&lt;br /&gt;       distributed architectures, memory management as well as foreign&lt;br /&gt;       function and component interfaces;&lt;br /&gt;&lt;br /&gt;     * Tools, in the form of profilers, tracers, debuggers,&lt;br /&gt;       pre-processors, and suchlike;&lt;br /&gt;&lt;br /&gt;     * Functional Pearls, being elegant, instructive examples of using&lt;br /&gt;       Haskell;&lt;br /&gt;&lt;br /&gt;     * Applications, Practice, and Experience, using Haskell for&lt;br /&gt;       scientific and symbolic computing, database, multimedia and Web&lt;br /&gt;       applications, and so forth, as well as general experience with&lt;br /&gt;       Haskell in education and industry.&lt;br /&gt;&lt;br /&gt;   Papers in the latter two categories need not necessarily report&lt;br /&gt;   original research results; they may instead, for example, report&lt;br /&gt;   practical experience that will be useful to others, reusable&lt;br /&gt;   programming idioms, or elegant new ways of approaching a&lt;br /&gt;   problem. (More advice appears on the symposium webpage.)&lt;br /&gt;   The key criterion for such a paper is that it makes a&lt;br /&gt;   contribution from which other Haskellers can benefit. It is not&lt;br /&gt;   enough simply to describe a program!&lt;br /&gt;&lt;br /&gt;   Before 2008, the Haskell Symposium was known as the Haskell&lt;br /&gt;   Workshop.  The name change reflects both the steady increase of&lt;br /&gt;   influence of the Haskell Workshop on the wider community, as well as&lt;br /&gt;   the increasing number of high quality submissions. The selection&lt;br /&gt;   process is highly competitive.  After eleven Haskell Workshops&lt;br /&gt;   between 1995 and 2007, the first Haskell Symposium was held in&lt;br /&gt;   Victoria in 2008, and the second in Edinburgh in 2009.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Submission Details&lt;br /&gt;&lt;br /&gt;     * Submission Deadline: Monday, 14th June 2010, 15:00 UTC&lt;br /&gt;     * Author Notification: Monday, 12th July 2010&lt;br /&gt;     * Final Papers Due   : Monday, 2nd August 2010&lt;br /&gt;&lt;br /&gt;   Submitted papers should be in portable document format (PDF),&lt;br /&gt;   formatted using the ACM SIGPLAN style guidelines&lt;br /&gt;   (&lt;a href="http://www.acm.org/sigs/sigplan/authorInformation.htm" target="_blank"&gt;http://www.acm.org/sigs/&lt;wbr&gt;sigplan/authorInformation.htm&lt;/a&gt;)&lt;div class="im"&gt;&lt;wbr&gt;.  The text&lt;br /&gt;   should be in a 9pt font in two columns; the length is restricted to&lt;br /&gt;   12 pages, except for "Applications, Practice, and Experience"&lt;br /&gt;   papers, which are restricted to 6 pages. Each submission must&lt;br /&gt;   adhere to SIGPLAN's republication policy, as explained on the web.&lt;br /&gt;   Violation risks summary rejection of the offending submission.&lt;br /&gt;   Accepted papers will be published by the ACM and will appear in the&lt;br /&gt;   ACM Digital Library.&lt;br /&gt;&lt;br /&gt;   In addition, we solicit proposals for system demonstrations, based&lt;br /&gt;   on running (perhaps prototype) software rather than necessarily on&lt;br /&gt;   novel research results. Proposals are limited to 2-page abstracts,&lt;br /&gt;   in the same ACM format as papers, and should explain why a&lt;br /&gt;   demonstration would be of interest to the Haskell community. They&lt;br /&gt;   will be assessed for relevance by the PC; accepted proposals will&lt;br /&gt;   be published on the Symposium website, but not formally published&lt;br /&gt;   in the proceedings.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Links&lt;br /&gt;&lt;br /&gt;     * &lt;a href="http://www.haskell.org/haskell-symposium" target="_blank"&gt;http://www.haskell.org/&lt;wbr&gt;haskell-symposium&lt;/a&gt;,&lt;br /&gt;       the permanent homepage of the Haskell Symposium.&lt;br /&gt;     * &lt;a href="http://www.haskell.org/haskell-symposium/2010" target="_blank"&gt;http://www.haskell.org/&lt;wbr&gt;haskell-symposium/2010&lt;/a&gt;,&lt;br /&gt;       the 2010 Haskell Symposium web page.&lt;br /&gt;     * &lt;a href="http://www.icfpconference.org/icfp2010" target="_blank"&gt;http://www.icfpconference.org/&lt;wbr&gt;icfp2010&lt;/a&gt;,&lt;br /&gt;       the ICFP 2010 web page.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Programme Committee&lt;br /&gt;&lt;br /&gt;     * Jeremy Gibbons, University of Oxford (chair)&lt;br /&gt;     * James Cheney, University of Edinburgh&lt;br /&gt;     * Duncan Coutts, Well-Typed LLP&lt;br /&gt;     * Sharon Curtis, Oxford Brookes University&lt;br /&gt;     * Fritz Henglein, Kobenhavns Universitet&lt;br /&gt;     * Tom Schrijvers, Katholieke Universiteit Leuven&lt;br /&gt;     * Chung-chieh Shan, Rutgers - The State University of New Jersey&lt;br /&gt;     * Martin Sulzmann, Informatik Consulting Systems AG&lt;br /&gt;     * Wouter Swierstra, Vector Fabrics&lt;br /&gt;     * Peter Thiemann, Universitaet Freiburg&lt;br /&gt;     * Andrew Tolmach, Portland State University&lt;br /&gt;     * Malcolm Wallace, University of York&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-2521267632894704793?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/2521267632894704793/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2010/06/haskell-2010-final-call-for-papers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2521267632894704793'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2521267632894704793'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2010/06/haskell-2010-final-call-for-papers.html' title='Haskell 2010, Final Call for Papers'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-2038757138588167413</id><published>2010-04-03T14:56:00.004+02:00</published><updated>2010-04-03T16:14:50.020+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>Brief report of 1st FPUG meeting in Ghent</title><content type='html'>The 1ste Functional Programming Users Group meeting in Ghent took place on April 1 -- not a prank! There were about 30 attendants, not bad for a first meeting: plenty of students, PhD students and postdocs from Ghent University as well as few outsiders.&lt;br /&gt;&lt;br /&gt;We had a full program:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Jeroen Janssen - &lt;span style="font-style: italic;"&gt;Welcome and short introduction to FP&lt;/span&gt; &lt;/li&gt;&lt;li&gt;Jasper  Van der Jeugt - &lt;span style="font-style: italic;"&gt;BlazeHtml: a blazingly fast Html generator in Haskell&lt;/span&gt; &lt;/li&gt;&lt;li&gt;  Tom Schrijvers - &lt;span style="font-style: italic;"&gt;The Monad Zipper&lt;/span&gt; &lt;/li&gt;&lt;li&gt;Romain  Slootmaekers - &lt;span style="font-style: italic;"&gt;Functional Programming at Amplidata&lt;br /&gt;&lt;/span&gt;Insightful: how to convince the management that Ocaml is better than C++.&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;Denis Defreyne, Pieter De Baets - &lt;span style="font-style: italic;"&gt;An introduction to  PHunctional Programming&lt;br /&gt;&lt;/span&gt;Functional Programming in PHP (April 1 after all)&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;More info and slides are available from the &lt;a href="http://groups.google.com/group/ghent-fpg"&gt;Ghent FPG&lt;/a&gt; page. I'm looking forward to the next edition. If you are around, then do join us.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-2038757138588167413?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/2038757138588167413/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2010/04/brief-report-of-1ste-fpug-meeting-in.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2038757138588167413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2038757138588167413'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2010/04/brief-report-of-1ste-fpug-meeting-in.html' title='Brief report of 1st FPUG meeting in Ghent'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-400434531194586008</id><published>2010-03-23T10:00:00.007+01:00</published><updated>2010-05-12T10:20:18.211+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>The Monad Zipper</title><content type='html'>Bruno Oliveira and I are working on a functional pearl called &lt;span style="font-weight: bold;"&gt;The Monad Zipper&lt;/span&gt; (*). You know how dealing with monad transformers can be quite awkward -- especially when developing highly modular programs where every component comes with its own effects?&lt;br /&gt;Well, we bring relief in this situation by applying Huet's zipper to a type-level data structure: the monad stack.&lt;br /&gt;&lt;br /&gt;We're submitting to ICFP on April 2, and would greatly appreciate your feedback on the current &lt;a href="http://www.cs.kuleuven.be/%7Etoms/Research/papers/monad_zipper_draft.pdf"&gt;draft&lt;/a&gt;. Please let us know what you think of the presented approach, the clarity and style of writing, examples of situations where you could have used the monad zipper, ...&lt;br /&gt;&lt;br /&gt;(*) not to be confused with the zipper monad&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt; By popular request the source code is now &lt;a href="http://www.cs.kuleuven.be/%7Etoms/Research/papers/MonadZipper.tgz"&gt;available&lt;/a&gt; to play with. Mind, it's extracted right out of our literate Haskell code -- the paper is the documentation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update 2:&lt;/span&gt; The latest version of Monatron, by Mauro Jaskelioff, together with our Monad Zipper are now &lt;a href="http://hackage.haskell.org/package/Monatron-0.3"&gt;available on Hackage&lt;/a&gt;. Note that the organization of Monatron is somewhat revised compared to the version used in our paper, but the Monad Zipper approach is exactly the same.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-400434531194586008?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/400434531194586008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2010/03/bruno-oliveira-and-i-are-working-on.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/400434531194586008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/400434531194586008'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2010/03/bruno-oliveira-and-i-are-working-on.html' title='The Monad Zipper'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-8691784301442772847</id><published>2010-03-20T11:07:00.002+01:00</published><updated>2010-03-20T11:08:44.643+01:00</updated><title type='text'>IFL 2010: Call for Papers</title><content type='html'>&lt;pre&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;CALL FOR PAPERS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;22nd Symposium on Implementation and Applications of Functional Languages (IFL 2010)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;September 1-3, 2010&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Utrecht University&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Alphen aan den Rijn, The Netherlands&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;http://www.cs.uu.nl/wiki/bin/view/IFL2010/WebHome&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;After a first successful visit to the USA, the Symposium on Implementation and Applications of Functional&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Languages returns to Europe for its 22nd edition. The hosting institution is Utrecht University in the&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Netherlands, although the conference itself will take place in the ornithological theme park Avifauna&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;in Alphen aan den Rijn, situated conveniently close to Schiphol (Amsterdam Airport). The symposium dates&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;are September 1-3, 2010.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The goal of the IFL symposia is to bring together researchers actively engaged in the implementation and&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;application of functional and function-based programming languages. IFL 2010 will be a venue for researchers&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;to present and discuss new ideas and concepts, work in progress, and publication-ripe results related to&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;the implementation and application of functional languages and function-based programming.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Following the IFL tradition, IFL 2010 will use a post-symposium review process to produce formal proceedings&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;which will be published by Springer Verlag in the Lecture Notes in Computer Science series. All participants in&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;IFL 2010 are invited to submit either a draft paper or an extended abstract describing work to be presented&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;at the symposium. At no time may work submitted to IFL be simultaneously submitted to other venues. Here&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;we follow the ACM Sigplan republication policy as defined on http://www.sigplan.org/republicationpolicy.htm.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The submissions will be screened by the program committee chair to make sure they are within the scope of IFL,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;and will appear in the draft proceedings distributed at the symposium. Submissions appearing in the draft&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;proceedings are not peer-reviewed publications. After the symposium, authors will be given the opportunity&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;to incorporate the feedback from discussions at the symposium and will be invited to submit a revised full&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;article for the formal review process. These revised submissions will be reviewed by the program committee&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;using prevailing academic standards to select the best articles, which will appear in the formal proceedings.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;INVITED SPEAKER&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Johan Nordlander of Lulea University, the designer and developer of the Timber language, is the invited&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;speaker at IFL 2010. Timber is a functional programming language that draws some of its concepts from&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;object-oriented programming, and has built-in facilities for concurrent execution. The language is&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;specifically targeted at implementing real-time embedded systems.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;TOPICS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;IFL welcomes submissions describing practical and theoretical work as well as submissions describing&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;applications and tools. If you are not sure that your work is appropriate for IFL 2010, please contact&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;the PC chair at jur@cs.uu.nl. Topics of interest include, but are not limited to:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;language concepts&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;type checking&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;contracts&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;compilation techniques&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;staged compilation&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;runtime function specialization&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;runtime code generation&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;partial evaluation&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(abstract) interpretation&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;generic programming techniques&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;automatic program generation&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;array processing&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;concurrent/parallel programming&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;concurrent/parallel program execution&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;functional programming and embedded systems&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;functional programming and web applications&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;functional programming and security&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;novel memory management techniques&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;runtime profiling and performance measurements&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;debugging and tracing&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;virtual/abstract machine architectures&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;validation and verification of functional programs&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;tools and programming techniques&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;industrial applications of functional programming&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;PAPER SUBMISSIONS&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Prospective authors are encouraged to submit papers or extended abstracts to be published in the draft proceedings&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;and to present them at the symposium. All contributions must be written in English, conform to the Springer-Verlag&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;LNCS series format and not exceed 16 pages. The draft proceedings will appear as a technical report of the&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Department of Computer Science of Utrecht University.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;PETER LANDIN PRIZE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The Peter Landin Prize is awarded to the best paper presented at the symposium every year.&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The honored article is selected by the program committee based on the submissions received for&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;the formal review process. The prize carries a cash award equivalent to 150 Euros.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;IMPORTANT DATES&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Draft proceedings submission deadline   July 25, 2010&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Registration deadline                   August 1, 2010&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;IFL 2010 Symposium                      September 1-3, 2010&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Submission for review process deadline  October 25, 2010&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Notification Accept/Reject              December 22, 2010&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Camera ready version                    February 17, 2011&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;PROGRAM COMMITTEE&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Jost Berthold    University of Copenhagen (DIKU), Denmark&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Olaf Chitil   University of Kent, UK&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;John Clements   California Polytechnic State University, USA&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Matthew Fluet   Rochester Institute of Technology, USA&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Andy Gill   Kansas University, USA&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Jurriaan Hage (Chair) University of Utrecht, Netherlands&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Bastiaan Heeren  Open University, Netherlands&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ralf Hinze   University of Oxford, UK&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;John Hughes   Chalmers University of Technology, Sweden&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Yukiyoshi Kameyama  University of Tsukuba, Japan&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Gabriele Keller  University of New South Wales, Australia&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Pieter Koopman   Radboud University Nijmegen, Netherlands&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Luc Maranget   INRIA, France&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Simon Marlow   Microsoft Research, UK&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Marco T. Morazan  Seton Hall University, USA&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Rex Page   University of Oklahoma, USA&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Ricardo Pena   Universidad Complutense de Madrid, Spain&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Sven-Bodo Scholz  University of Hertfordshire, UK&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Tom Schrijvers   Catholic University of Leuven, Belgium&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Don Stewart   Galois, USA&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Wouter Swierstra  Vector Fabrics, Netherlands&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Don Syme   Microsoft, UK&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Peter Thiemann   University of Freiburg, Germany&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Phil Trinder   Heriott-Watt University, Scotland&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Janis Voigtlaender  University of Bonn, Germany&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Viktoria Zsok   Eotvos Lorand University, Hungary&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-8691784301442772847?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/8691784301442772847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2010/03/ifl-2010-call-for-papers.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/8691784301442772847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/8691784301442772847'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2010/03/ifl-2010-call-for-papers.html' title='IFL 2010: Call for Papers'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-7977665660461069063</id><published>2010-02-01T22:30:00.001+01:00</published><updated>2010-02-01T22:32:08.165+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logic Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Datalog'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='constraints'/><category scheme='http://www.blogger.com/atom/ns#' term='CLP'/><category scheme='http://www.blogger.com/atom/ns#' term='CHR'/><title type='text'>PhD Position for Datalog Research</title><content type='html'>Declarative Languages and Artificial Intelligence Group&lt;br /&gt;Department of Computer Science&lt;br /&gt;Catholic University of Leuven, Belgium&lt;br /&gt;&lt;br /&gt;The Declarative Languages and Artificial Intelligence Group at the Catholic&lt;br /&gt;University of Leuven is looking for doctoral research candidates in the area of&lt;br /&gt;Datalog.&lt;br /&gt;The position concerns research related to language development, program&lt;br /&gt;optimization, integration with constraint solvers, problem modeling,&lt;br /&gt;refactoring, profiling, debugging, ...  Close collaboration with our US-based&lt;br /&gt;industrial partner is expected.&lt;br /&gt;&lt;br /&gt;Applicants should have a masters degree in Computer Science or equivalent.&lt;br /&gt;Experience in at least one of Datalog, logic programming (Prolog, ASP, ...),&lt;br /&gt;databases or constraint programming is required. Implementation experience is&lt;br /&gt;an important asset.&lt;br /&gt;&lt;br /&gt;Appointment to the doctoral position will be for the period of one year&lt;br /&gt;initially with possibility for extension to four years ending in a Ph.D.  The&lt;br /&gt;salary is compatible with the departmental rates for doctoral research fellows.&lt;br /&gt;&lt;br /&gt;Please direct inquiries and applications, preferably by e-mail, to:&lt;br /&gt;&lt;br /&gt;Professor Bart Demoen&lt;br /&gt;Department of Computer Science&lt;br /&gt;K.U.Leuven&lt;br /&gt;Celestijnenlaan 200A&lt;br /&gt;B-3001 Heverlee&lt;br /&gt;Belgium&lt;br /&gt;&lt;br /&gt;Email: bart.demoen@cs.kuleuven.be&lt;br /&gt;Phone: +32 16 327547&lt;br /&gt;&lt;br /&gt;Notice of interest (including motivation and CV) should be received as soon as&lt;br /&gt;possible. Review of applications begins as of March 1, 2010, and the start date&lt;br /&gt;is determined in consultation with the selected candidate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-7977665660461069063?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/7977665660461069063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2010/02/phd-position-for-datalog-research.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/7977665660461069063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/7977665660461069063'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2010/02/phd-position-for-datalog-research.html' title='PhD Position for Datalog Research'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-3403738204961649784</id><published>2009-12-15T18:13:00.003+01:00</published><updated>2009-12-15T18:26:54.729+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logic Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='ICLP'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='CULP'/><category scheme='http://www.blogger.com/atom/ns#' term='CLP'/><title type='text'>CULP 2010: Commercial Users of Logic Programming workshop</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.cs.kuleuven.be/%7Etoms/CULP2010/culp_banner.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 1300px; height: 148px;" src="http://www.cs.kuleuven.be/%7Etoms/CULP2010/culp_banner.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;This year's workshop for Commercial Users of Logic Programming (CULP 2010) takes place on July 21, 2010 in Edinburgh (UK) at the occasion of the International Conference Logic Programming and the Federated Logic Conference (8 conferences related to logic in computer science).&lt;br /&gt;&lt;br /&gt;If you're a commercial user of Logic Programming technology or theory, do consider giving a talk at CULP 2010 and share your experience. If you're a Logic Programming researcher, please tell all your industrial partners about CULP 2010 and encourage them to participate.&lt;br /&gt;&lt;br /&gt;More information on the &lt;a href="http://www.cs.kuleuven.be/%7Etoms/CULP2010/"&gt;CULP 2010&lt;/a&gt; website.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-3403738204961649784?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/3403738204961649784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/12/culp-2010-commercial-users-of-logic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/3403738204961649784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/3403738204961649784'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/12/culp-2010-commercial-users-of-logic.html' title='CULP 2010: Commercial Users of Logic Programming workshop'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-3202778797182860634</id><published>2009-12-11T15:05:00.004+01:00</published><updated>2009-12-15T17:52:28.821+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='types'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><title type='text'>New Release of Prolog Type Checker</title><content type='html'>Here is a new release of the Prolog type checker:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.cs.kuleuven.be/%7Etoms/PrologTypes/type_check.pl"&gt;type_check.pl&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cs.kuleuven.be/%7Etoms/PrologTypes/functor_constraint.pl"&gt;functor_constraint.pl&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;Based on extensive use by a.o. Jose Santos the compatibility with Yap has been considerably improved, and many features have been added. See the documentation at the start of type_check.pl.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-3202778797182860634?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/3202778797182860634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/12/new-release-of-prolog-type-checker.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/3202778797182860634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/3202778797182860634'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/12/new-release-of-prolog-type-checker.html' title='New Release of Prolog Type Checker'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-336201565152492364</id><published>2009-11-04T16:48:00.003+01:00</published><updated>2009-12-01T11:32:04.685+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='constraints'/><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>Postdoc/PhD Positions on the Monadic Constraint Programming project</title><content type='html'>The position has been filled.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-336201565152492364?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/336201565152492364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/11/postdocphd-positions-on-monadic.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/336201565152492364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/336201565152492364'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/11/postdocphd-positions-on-monadic.html' title='Postdoc/PhD Positions on the Monadic Constraint Programming project'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-1003736807623103040</id><published>2009-11-04T11:25:00.004+01:00</published><updated>2010-04-22T04:31:30.651+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='types'/><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>Haskell Type Constraints Unleashed</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt; Due to the canceled flights, Dominic has not been able to present our paper at FLOPS.&lt;br /&gt;However, he's made a nice &lt;a href="http://flops2010.blogspot.com/2010/04/haskell-type-constraints-unleashed.html"&gt;video of his talk&lt;/a&gt; that the FLOPS organizers have made available on a discussion page for the paper.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Dominic Orchard and I have written &lt;a href="http://www.cs.kuleuven.be/%7Etoms/Research/papers/constraint_families.pdf"&gt;a new paper&lt;/a&gt; on new type system features for supporting EDSLs.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;Haskell Type Constraints Unleashed&lt;/span&gt;&lt;br /&gt;D. Orchard, T. Schrijvers&lt;br /&gt;&lt;br /&gt;The popular Glasgow Haskell Compiler extends the Haskell 98 type system with several powerful features, leading to an expressive language of type terms. In contrast, constraints over types have received much less attention, creating an imbalance in the expressivity of the type system.&lt;br /&gt;In this paper, we rectify the imbalance, transferring familiar type-level constructs, synonyms and families, to the language of constraints, providing a symmetrical set of features at the type-level and constraint-level. We introduce constraint synonyms and constraint families, and illustrate their increased expressivity for improving the utility of polymorphic EDSLs in Haskell, amongst other examples. We provide a discussion of the semantics of the new features relative to existing type system features and similar proposals, including details of termination.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;We greatly appreciate your feedback. Also example of other problems that could be solved by the new features are very welcome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-1003736807623103040?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/1003736807623103040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/11/haskell-type-constraints-unleashed.html#comment-form' title='6 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/1003736807623103040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/1003736807623103040'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/11/haskell-type-constraints-unleashed.html' title='Haskell Type Constraints Unleashed'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>6</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-2209307681351761100</id><published>2009-10-07T15:59:00.003+02:00</published><updated>2009-10-07T16:12:08.842+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='constraints'/><category scheme='http://www.blogger.com/atom/ns#' term='Gecode'/><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>Release 0.6 of Monadic Constraint Programming</title><content type='html'>We've just released version 0.6 of the Monadic Constraint Programming framework &lt;a href="http://hackage.haskell.org/package/monadiccp-0.6"&gt;on Hackage&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This release provides a whole lot of generic support for Finite Domain (FD) constraint solvers: a common modeling language and infrastructure for targeting different backends. Very useful if you happen to develop an FD solver and want to hook it up to our framework to benefit from its advanced search capabilities.&lt;br /&gt;&lt;br /&gt;Users will of course be much more interested in the actual backends that we provide.  Besides the basic Haskell FD solver we had before, there are now three different ways of interfacing &lt;a href="http://www.gecode.org/"&gt;Gecode&lt;/a&gt;, one of the best FD solvers out there and open source too.  To get started, the examples directory shows how to model a number of well-known problems.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-2209307681351761100?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/2209307681351761100/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/10/release-06-of-monadic-constraint.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2209307681351761100'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2209307681351761100'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/10/release-06-of-monadic-constraint.html' title='Release 0.6 of Monadic Constraint Programming'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-8940008518622293474</id><published>2009-09-07T21:16:00.002+02:00</published><updated>2010-02-08T09:02:24.542+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='AOP'/><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>Haskell @ AOSD 2010</title><content type='html'>How to reason about effectful advice? Write your AOP programs in Haskell, the world's best imperative programming language. Use monads and monad transformers for effects and functional mixins for advice. In return you get powerful reasoning tools: equational reasoning and parametricity.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Update:&lt;/span&gt; Our &lt;a href="http://www.cs.kuleuven.be/%7Etoms/Research/papers/aosd2010.pdf"&gt;paper&lt;/a&gt; on the topic has been accepted at AOSD 2010. The &lt;a href="http://www.cs.kuleuven.be/publicaties/rapporten/cw/CW556.abs.html"&gt;technical report&lt;/a&gt; has some pretty cool parametricity proofs in its appendix on non-interference of advice, based on Janis' Voigtlaender's ICFP'09 paper "Free Theorems Involving Type Constructor Classes". &lt;a href="http://www.cs.kuleuven.be/%7Etoms/Research/talks/EffectiveAdvice.pdf"&gt;Slides&lt;/a&gt; of my PLSIG seminar at K.U.Leuven are also available.&lt;br /&gt;&lt;br /&gt;&lt;em&gt;&lt;/em&gt;&lt;blockquote&gt;&lt;b style="font-style: italic;"&gt;EffectiveAdvice: Disciplined Advice with Explicit Effects&lt;/b&gt;&lt;br /&gt;Bruno Oliveira, Tom Schrijvers and William Cook&lt;br /&gt;&lt;p&gt;&lt;b&gt;Abstract&lt;/b&gt;&lt;/p&gt; &lt;p&gt; Advice is a mechanism, widely used in aspect-oriented languages, that allows one program component to augment or modify the behavior of other components. Advice is useful for modularizing concerns, including logging, error handling, and some optimizations, that would otherwise require code to be scattered throughout a system. When advice and other components are composed together they become tightly coupled, sharing both control and data flows. However this creates important problems: modular reasoning about a component becomes very difficult; and two tightly coupled components may interfere with the control and data flows of each other. &lt;/p&gt; &lt;p&gt; This paper presents EffectiveAdvice, a disciplined model of advice, inspired by Aldrich's Open Modules, that has full support for effects in both base components and advice. With EffectiveAdvice, equivalence of advice, as well as base components, can be checked by equational reasoning. The paper describes an implementation of EffectiveAdvice as a Haskell library and shows how to use it to solve well-known programming problems. Advice is modeled by mixin inheritance and effects are modeled by monads. Interference patterns previously identified in the literature are expressed as combinators. Parametricity, together with the combinators, is used to prove two harmless advice theorems. The result is an effective model of advice that supports effects in both advice and base components, and allows these effects to be separated with strong non-interference guarantees, or merged as needed.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-8940008518622293474?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/8940008518622293474/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/09/effectiveadvice-aop-mixin-inheritance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/8940008518622293474'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/8940008518622293474'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/09/effectiveadvice-aop-mixin-inheritance.html' title='Haskell @ AOSD 2010'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-5485386071748585148</id><published>2009-08-04T16:00:00.003+02:00</published><updated>2009-08-19T12:55:32.817+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='constraints'/><category scheme='http://www.blogger.com/atom/ns#' term='Gecode'/><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>Monadic Constraint Programming with Gecode</title><content type='html'>We have a &lt;a href="http://www.cs.kuleuven.be/%7Epieterw/static/mcp-gecode.pdf"&gt;new paper&lt;/a&gt; available, reporting on the next stage in the Monadic Constraint Programming project:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;Monadic Constraint Programming with Gecode&lt;/span&gt;&lt;br /&gt;Pieter Wuille and Tom Schrijvers&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;This paper presents FD-MCP, a finite domain modeling language on top of the&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Monadic Constraint Programming framework for Haskell. FD-MCP leverages&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Haskell's rich static type system and powerful abstraction mechanisms for&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;implementing syntactic sugar, model transformations and compilation to&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;solver backends. Two backends are provided: a basic Haskell solver and a&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Gecode code generator.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Our benchmarks establish that FD-MCP models are much more concise than&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;hand-coded Gecode programs, more so when using disjunction, without sacrificing&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;performance.&lt;/span&gt;&lt;/blockquote&gt;The code is available from the &lt;a href="http://www.cs.kuleuven.be/%7Epieterw/site.php/Topics/FDMCP"&gt;project page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;NEW:&lt;/span&gt; The paper has been accepted at &lt;a href="http://www-users.cs.york.ac.uk/%7Efrisch/ModRef/09/"&gt;ModRef 2009&lt;/a&gt;, and a &lt;a href="http://www.cs.kuleuven.be/%7Etoms/Research/papers/modref2009.pdf"&gt;revised version&lt;/a&gt; is available.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-5485386071748585148?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/5485386071748585148/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/08/monadic-constraint-programming-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/5485386071748585148'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/5485386071748585148'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/08/monadic-constraint-programming-with.html' title='Monadic Constraint Programming with Gecode'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-3322611785232215186</id><published>2009-07-18T19:02:00.004+02:00</published><updated>2009-07-30T23:44:31.719+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><title type='text'>16th Prolog Programming Contest Results</title><content type='html'>[&lt;a href="http://picasaweb.google.co.uk/tomenannemie/The16thPrologProgrammingContest?feat=directlink"&gt;Here&lt;/a&gt; are my photos of the contest.]&lt;br /&gt;&lt;br /&gt;Most of you already know what the Prolog programming contest is about. To the&lt;br /&gt;others I have to say, shame on you! The contest is of course about locking up&lt;br /&gt;several teams of Prolog programmers in a room for two hours with 5 challenges.&lt;br /&gt;Each team has at most 3 members and one laptop. The team that solves most&lt;br /&gt;challenges in the least amount of time is the winner.&lt;br /&gt;&lt;br /&gt;You should know that the first rule of the contest is:&lt;br /&gt;&lt;br /&gt;The contest is for fun and there are no losers.&lt;br /&gt;&lt;br /&gt;Of course, there are losers outside of the contest, with silly excuses for&lt;br /&gt;not participating, like:&lt;br /&gt;- I have to go sight-seeing in Hollywood tonight, or&lt;br /&gt;- My talk for the Commercial Users workshop is not written yet.&lt;br /&gt;The silliest of all is:&lt;br /&gt;- I don't know Prolog.&lt;br /&gt;How low can you go.&lt;br /&gt;&lt;br /&gt;Fortunately, we had many eager and willing participants. Very few of them had&lt;br /&gt;to be pressed into it. They readily agreed, even before their first coffee of&lt;br /&gt;the morning! No less than 10 teams showed up.&lt;br /&gt;So we had&lt;br /&gt;- 2 all-American teams,&lt;br /&gt;- 3 Leuven teams,&lt;br /&gt;- 1 team from Italy and 1 from Spain,&lt;br /&gt;- a bunch of Danish rookies, and&lt;br /&gt;- 2 mixed teams&lt;br /&gt; * an Austrian, Scottish, and commercial New-Zealander team&lt;br /&gt; * a French-Dutch-Italian team with Marco Gavanelli.&lt;br /&gt;&lt;br /&gt;In fact, Marco is the only of of last year's winners here to defend the&lt;br /&gt;title.  Shame on the other two.&lt;br /&gt;&lt;br /&gt;Now, I must say it is at least as much fun running the contest as it is&lt;br /&gt;participating. You get to watch all the teams in action, doing all kinds of&lt;br /&gt;things to get ahead. Like swapping around the keyboard.  The Italians were&lt;br /&gt;really smart, reading the challenge pages on both sides simultaneously.&lt;br /&gt;&lt;br /&gt;You learn a lot of things running the contest. For instance, reading the&lt;br /&gt;problem statement is actually useful: minimizing the maximal distance is not&lt;br /&gt;the same as computing the average. Another one: Did you know that Danes read&lt;br /&gt;from left to right, but write from right to left. Finally, a revelation:&lt;br /&gt;base cases do seem to be essential.&lt;br /&gt;&lt;br /&gt;Before we move on to the ranking, there are a number of people I have to&lt;br /&gt;thank.  Firstly, there is Bart Demoen, the creator of this contest who has&lt;br /&gt;helped me with the problem statements and given practical advice on running&lt;br /&gt;the contest.  He enjoys a well-deserved sabbatical from the contest this&lt;br /&gt;year. Thank you, Bart!&lt;br /&gt;&lt;br /&gt;Secondly, I would like to thank the local organizers, Hai-Feng Guo and Gopal&lt;br /&gt;Gupta,  who have provided us with an excellent venue and sponsoring the prizes.&lt;br /&gt;Thanks to Brian DeVries, Stanley Jointer and their colleagues, who have helped&lt;br /&gt;get everything ready and put the room back to order after the herd of Logic&lt;br /&gt;Programmers. Thanks guys!&lt;br /&gt;&lt;br /&gt;Also thanks to the program chairs, Pat and David, for making the Programming&lt;br /&gt;Contest an integral part of the program. Thank you!&lt;br /&gt;&lt;br /&gt;Last but not least, I would like to thank my wife, Annemie, who has&lt;br /&gt;created the prizes. Thank you.&lt;br /&gt;&lt;br /&gt;Now, on to the ranking. This year's challenges were too easy. All teams had&lt;br /&gt;at least one solution, and most teams had more than one. We got 38&lt;br /&gt;submissions, of which 25 were correct. Bart Demoen would be ashamed of&lt;br /&gt;passing so many.  With the challenges being so easy having 3 correct&lt;br /&gt;solutions was not enough to make the top 3.&lt;br /&gt;&lt;br /&gt;The team that came in third, with four submission and four correct answers, is&lt;br /&gt;the team of Alessandro Dal Palu, Agostino Dovier and Enrico Pontelli!&lt;br /&gt;&lt;br /&gt;Then, there are two teams left: the team of Leslie De Coninck and the team&lt;br /&gt;of Jan Wielemaker. Both know they have four correct submissions, but Jan's&lt;br /&gt;team has also submitted a solution for the 5th challenge. Sorry guys, but&lt;br /&gt;Jan's team forgot a base case there, and the other team was more than 100&lt;br /&gt;minutes ahead. So I'd like to call forward this year's winners:&lt;br /&gt;Leslie De Koninck, Hanne Vlaeminck and Peter Van Weert!&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://lh6.ggpht.com/_Sh235RGes-w/SnHVJQGvJWI/AAAAAAAAC6s/RHQJvaSrgeI/s288/IMG_2925.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 288px; height: 216px;" src="http://lh6.ggpht.com/_Sh235RGes-w/SnHVJQGvJWI/AAAAAAAAC6s/RHQJvaSrgeI/s288/IMG_2925.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I hope you enjoyed it.&lt;br /&gt;&lt;br /&gt;Tom&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-3322611785232215186?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/3322611785232215186/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/07/16th-prolog-programming-contest-results.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/3322611785232215186'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/3322611785232215186'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/07/16th-prolog-programming-contest-results.html' title='16th Prolog Programming Contest Results'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/_Sh235RGes-w/SnHVJQGvJWI/AAAAAAAAC6s/RHQJvaSrgeI/s72-c/IMG_2925.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-6452356277802307282</id><published>2009-07-16T04:14:00.002+02:00</published><updated>2009-07-16T04:16:25.208+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><title type='text'>Prolog Programming Contest</title><content type='html'>The 16th Prolog Programming is in full swing with 10 teams competing for the title of best Prolog programmers of the year.&lt;br /&gt;&lt;br /&gt;You can still participate in the &lt;a href="http://www.cs.kuleuven.be/%7Etoms/PPC16"&gt;online contest&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-6452356277802307282?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/6452356277802307282/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/07/prolog-programming-contest.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/6452356277802307282'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/6452356277802307282'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/07/prolog-programming-contest.html' title='Prolog Programming Contest'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-8972496234573423329</id><published>2009-07-02T11:52:00.001+02:00</published><updated>2009-07-02T11:54:06.967+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><title type='text'>The 16th Prolog Programming Contest</title><content type='html'>The 16th Prolog Programming contest takes place at 6pm on July 15 at&lt;br /&gt;ICLP 2009 in Pasadena (CA), USA. There is also a web contest for those&lt;br /&gt;who cannot make it to ICLP.&lt;br /&gt;&lt;br /&gt;Have a look at the &lt;a href="http://www.cs.kuleuven.be/%7Etoms/PPC16/"&gt;contest website&lt;/a&gt; for the details.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-8972496234573423329?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/8972496234573423329/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/07/16th-prolog-programming-contest.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/8972496234573423329'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/8972496234573423329'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/07/16th-prolog-programming-contest.html' title='The 16th Prolog Programming Contest'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-9013640307877601959</id><published>2009-06-12T13:31:00.003+02:00</published><updated>2009-06-12T13:35:45.032+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logic Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='CULP'/><title type='text'>CULP 2009 programme</title><content type='html'>The Commercial Users of Logic Programming (CULP 2009) takes place on July 16 in Pasadena, CA, during ICLP 2009. We have 8 great speakers -- you can see the programme below. Everyone is welcome to attend!&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;9.30 - 10.20: Session 1                                                                                                                                                        &lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; 9.30 - 9.55: Mike Elston, Scientific Software and Systems Ltd.&lt;br /&gt;&lt;i&gt;From Prolog to Porsche: experiences developing a large scale financial application in Prolog.&lt;/i&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; 9.55 - 10.20: Terrance Swift, CENTRIA.&lt;br /&gt;   &lt;i&gt;The logic of programming in Prolog: then and now.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;10.20 - 10.50: Coffee break&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;10.50 - 12.40: Session 2&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; 10.50 - 11.15: Molham Aref, LogicBlox.&lt;br /&gt;     &lt;i&gt;Logic for enterprise decision automation applications.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; 11.15 - 11.40: Lindsey Spratt, Ontology Works Inc.&lt;br /&gt;&lt;i&gt;The Ontology Works deductive database system.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; 11.40 - 12:05: David Warren, XSB Inc.&lt;br /&gt;&lt;i&gt;From data to knowledge.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; 12.05 - 12.40: Discussion&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;li&gt;12.40 - 14.40: Lunch break&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;14.40 - 15.55: Session 3&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt; 14.40 - 15.05: Hai-Feng Guo, Logical Software Solutions.&lt;br /&gt;&lt;i&gt;TransBraille: completely automatic backtranslation of braille&lt;br /&gt;mathematics documents.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; 15.05 - 15.30: Benjamin Grosof, Vulcan.&lt;br /&gt;&lt;i&gt;Hyper logic programs in SILK for business and science: an overview.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt; 15.30 - 15.55: Walter Wilson, SDA Inc.&lt;br /&gt;&lt;i&gt;An automated targeting system for US customs and border patrol inspectors.&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-9013640307877601959?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/9013640307877601959/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/06/culp-2009-programme.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/9013640307877601959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/9013640307877601959'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/06/culp-2009-programme.html' title='CULP 2009 programme'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-6501429697813123345</id><published>2009-05-21T10:26:00.001+02:00</published><updated>2009-05-21T10:28:20.557+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logic Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><title type='text'>Chris Mungall has joined Planet Prolog</title><content type='html'>Chris Mungall has joined &lt;a href="http://www.cs.kuleuven.be/~toms/PlanetProlog/"&gt;Planet Prolog &lt;/a&gt;with his &lt;a href="http://blipkit.wordpress.com/"&gt;Blip Blog&lt;/a&gt; on Logic Programming in Biology.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-6501429697813123345?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/6501429697813123345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/05/chris-mungall-has-joined-planet-prolog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/6501429697813123345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/6501429697813123345'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/05/chris-mungall-has-joined-planet-prolog.html' title='Chris Mungall has joined Planet Prolog'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-8337882968954995514</id><published>2009-05-15T19:08:00.003+02:00</published><updated>2009-05-15T19:16:15.913+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='types'/><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>Dictionaries: Eager or Lazy Type Class Witnesses?</title><content type='html'>Today, I gave a talk at the Cambridge computer lab:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Type classes are Haskell’s acclaimed solution to ad-hoc overloading. This talk gives an introductory overview of type classes and their   runtime witnesses, dictionaries. It asks the questions whether dictionaries should abide by Haskell’s default lazy evaluation strategy.&lt;br /&gt;&lt;br /&gt;Conceptually, a type class is a type-level predicate: a type is an                                                                                                                                                                                                              &lt;br /&gt;instance of a type class iff it type provides an implementation for                                                                                                                                                                                                             &lt;br /&gt;overloaded functions. For instance, `Eq a’ declares that type `a’                                                                                                                                                                                                               &lt;br /&gt;implements a function `(==) :: a → a → Bool’ for checking equality.                                                                                                                                                                                                             &lt;br /&gt;                                                                                                                                                                                                                                                                              &lt;br /&gt;Type classes are used as constraints on type variables, in so-called                                                                                                                                                                                                            &lt;br /&gt;constrained polymorphic functions. E.g. `sort :: Ord a =&gt; [a] → [a]’                                                                                                                                                                                                            &lt;br /&gt;sorts a list with any type of elements `a’ that are an instance of the                                                                                                                                                                                                          &lt;br /&gt;Ord type class, i.e. provide implementations for comparison.                                                                                                                                                                                                                    &lt;br /&gt;                                                                                                                                                                                                                                                                              &lt;br /&gt;Witnesses for type class constraints are necessary to select the appropriate implementation for the overloaded functions at runtime. For instance, if `sort’ is called with Int elements, the Int comparison must be used, versus say Float comparison for Float elements.&lt;br /&gt;                                                                                                                                                                                                                                                                              &lt;br /&gt;Two forms of witnesses have been considered in the literature, runtime type representations and so-called dictionaries, of which the latter are the most most commonly implementation, e.g. in GHC . Haskell implementations treat dictionaries just like all other data, as lazy values that may potentially consists of non-terminating computations. This way part of the type checker’s work, who has made sure that the dictionaries do exist, is simply forgotten. Is this really necessary? Can performance be gained by exploiting the strict nature of dictionaries? &lt;/blockquote&gt;   &lt;br /&gt;You can get the slides &lt;a href="http://www.cs.kuleuven.be/%7Etoms/Research/talks/eagerdictionaries.pdf"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-8337882968954995514?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/8337882968954995514/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/05/dictionaries-eager-or-lazy-type-class.html#comment-form' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/8337882968954995514'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/8337882968954995514'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/05/dictionaries-eager-or-lazy-type-class.html' title='Dictionaries: Eager or Lazy Type Class Witnesses?'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-577142000813602603</id><published>2009-04-08T14:55:00.003+02:00</published><updated>2009-04-08T14:59:52.438+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ICLP'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='CHR'/><title type='text'>Attributed Data for CHR Indexing</title><content type='html'>Our ICLP 2009 submission was accepted:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;Attributed Data for CHR Indexing&lt;/span&gt;&lt;br /&gt;Beata Sarna-Starosta and Tom Schrijvers&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The overhead of matching CHR rules is alleviated by constraint store indexing. Attributed variables provide an efficient means of indexing on logical variables. Existing indexing strategies for ground terms, based on hash tables, incur considerable performance overhead, especially when frequently computing hash values for large terms. &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;In this paper we (1) propose attributed data, a new data representation for &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;ground terms inspired by attributed variables, that avoids the overhead &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;of hash-table indexing, (2) describe program analysis and transformation &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;techniques that make attributed data more effective, and (3) provide &lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;experimental results that establish the usefulness of our approach.&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;Get the current &lt;a href="http://www.cs.kuleuven.be/%7Etoms/Research/papers/attrdata2009.pdf"&gt;version&lt;/a&gt; here, or come and attend the talk at ICLP in Pasadena.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-577142000813602603?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/577142000813602603/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/04/attributed-data-for-chr-indexing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/577142000813602603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/577142000813602603'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/04/attributed-data-for-chr-indexing.html' title='Attributed Data for CHR Indexing'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-879740508305796933</id><published>2009-03-03T12:48:00.002+01:00</published><updated>2009-03-03T12:49:17.509+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><title type='text'>New blogger on Planet Prolog: Jocelyn Paine</title><content type='html'>Jocelyn Paine's blog is now available on &lt;a href="http://www.cs.kuleuven.be/%7Etoms/PlanetProlog/"&gt;Planet Prolog&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-879740508305796933?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/879740508305796933/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/03/new-blogger-on-planet-prolog-jocelyn.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/879740508305796933'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/879740508305796933'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/03/new-blogger-on-planet-prolog-jocelyn.html' title='New blogger on Planet Prolog: Jocelyn Paine'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-3419413351423088450</id><published>2009-03-02T20:23:00.005+01:00</published><updated>2009-03-02T20:32:36.609+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='types'/><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>Complete and Decidable Type Inference for GADTs</title><content type='html'>We have a new approach to type inference for GADTs that's much simpler than previous approaches and not ad-hoc:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Complete and Decidable Type Inference for GADTs&lt;/span&gt;&lt;br /&gt;Tom Schrijvers, Simon Peyton Jones, Martin Sulzmann, Dimitrios Vytiniotis&lt;br /&gt;Submitted to ICFP 2009&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;GADTs have proven to be an invaluable language extension, a.o. for ensuring&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;data invariants and program correctness. Unfortunately, they pose a tough&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;problem for type inference: we lose the principal-type property, which is&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;necessary for modular type inference.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;We present a novel and simplified type inference approach for local type&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;assumptions from GADT pattern matches. Our approach is complete and decidable,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;while more liberal than previous such approaches.&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;br /&gt;Get the &lt;a href="http://www.cs.kuleuven.be/%7Etoms/Research/papers/implication_constraints.pdf"&gt;draft&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-3419413351423088450?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/3419413351423088450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/03/complete-and-decidable-type-inferennce.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/3419413351423088450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/3419413351423088450'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/03/complete-and-decidable-type-inferennce.html' title='Complete and Decidable Type Inference for GADTs'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-3999096763360093188</id><published>2009-02-24T22:29:00.003+01:00</published><updated>2009-02-24T22:32:53.363+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logic Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='CLP'/><category scheme='http://www.blogger.com/atom/ns#' term='CHR'/><title type='text'>Commercial Users of Logic Programming</title><content type='html'>Are you a commercial user of Logic Programming (Prolog, CHR, CLP, ASP, ...)?&lt;br /&gt;&lt;br /&gt;Consider giving a talk at CULP 2009!&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;COMMERCIAL USERS OF LOGIC PROGRAMMING&lt;br /&gt;                                       CULP 2009&lt;br /&gt;&lt;br /&gt;    &lt;a href="http://www.cs.kuleuven.be/%7Etoms/CULP2009/"&gt;http://www.cs.kuleuven.be/~toms/CULP2009/&lt;/a&gt;&lt;br /&gt;                 Pasadena, CA, USA -- July 13-17&lt;br /&gt;           Co-located with ICLP 2009&lt;br /&gt;&lt;br /&gt;              CALL FOR COMPANIES&lt;br /&gt;&lt;br /&gt;Academic research in Logic Programming goes back at least as far as the early&lt;br /&gt;1970s -- that is already more than 35 years. During most of that time, ICLP has&lt;br /&gt;been the premier venue for presenting academic research, and many more related&lt;br /&gt;workshops and symposia exist.  At the same time, Logic Programming is being&lt;br /&gt;used widely in industry. However, it has enjoyed at lot less visibility there,&lt;br /&gt;and until now it has lacked a designated forum that brings together industrial&lt;br /&gt;practitioners and researchers.&lt;br /&gt;&lt;br /&gt;The goal of this first Commercial Users of Logic Programming (CULP) workshop is&lt;br /&gt;to put the commercial and practical use (and users) of Logic Programming in the&lt;br /&gt;spotlight. It aims at providing professionals with an opportunity to share&lt;br /&gt;their experience, and to enable contacts with other commercial users and&lt;br /&gt;academics.&lt;br /&gt;&lt;br /&gt;If you use Logic Programming in a commercial, industrial or governmental&lt;br /&gt;setting, we warmheartedly invite you to consider giving a talk at the workshop.&lt;br /&gt;Alternatively, if you know someone who would give a talk, please forward this&lt;br /&gt;message to them.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;FORMAT&lt;br /&gt;&lt;br /&gt;CULP is organized as a workshop co-located with the 25th International&lt;br /&gt;Conference on Logic Programming. The workshop takes place on a date to be&lt;br /&gt;determined between July 13-17, 2009, in the Pasadena Convention Center in&lt;br /&gt;Pasadena, California, USA.&lt;br /&gt;&lt;br /&gt;Presentations will have 30 minute slots, of which at least 5 are reserved for&lt;br /&gt;discussion. They inform participants about the use of logic programming in an&lt;br /&gt;industrial setting.&lt;br /&gt;&lt;br /&gt;Insights and reflections on many aspects are sought. For example, but not&lt;br /&gt;exclusively:&lt;br /&gt;- Programming in the different stages and styles of commercial development,&lt;br /&gt;- Engineering, scalability and usability issues,&lt;br /&gt;- Success stories and (non-)viability of Logic Programming in particular&lt;br /&gt;application areas,&lt;br /&gt;- Aspects not directly related to application development, such as marketing,&lt;br /&gt;recruitment, management,...,&lt;br /&gt;- ...&lt;br /&gt;&lt;br /&gt;Novel research results are not expected. Of course, novel fields of application&lt;br /&gt;and novel approaches will be very welcome.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SUBMISSIONS&lt;br /&gt;&lt;br /&gt;If you are interested in presenting at CULP 2009, send an e-mail to&lt;br /&gt;    tom -dot- schrijvers -at- cs -dot -kuleuven -dot -be&lt;br /&gt;with your name, affiliation and a short description (at most one page)&lt;br /&gt;of the proposed talk.&lt;br /&gt;&lt;br /&gt;Full paper submissions are not required.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;IMPORTANT DATES&lt;br /&gt;&lt;br /&gt;  Submission before:        April 5, 2009&lt;br /&gt;      Notification:            April 15, 2009&lt;br /&gt;  CULP workshop:            July 13-17, 2009&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CONFIRMED PRESENTATIONS&lt;br /&gt;&lt;br /&gt;The following companies have already confirmed to give a presentation.&lt;br /&gt;&lt;br /&gt;- Logic Blox                    http://www.logicblox.com/ &lt;br /&gt;- Logisoft Solutions LLC              http://www.logicalsoft.net/ &lt;br /&gt;- Scientific Software and Systems Ltd.     http://www.sss.co.nz/&lt;br /&gt;- US Department of Defense                   &lt;br /&gt;- XSB Inc.                                       http://www.xsb.com/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-3999096763360093188?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/3999096763360093188/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/02/commercial-users-of-logic-programming.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/3999096763360093188'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/3999096763360093188'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/02/commercial-users-of-logic-programming.html' title='Commercial Users of Logic Programming'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-9147121076722476732</id><published>2009-02-16T13:24:00.002+01:00</published><updated>2009-02-16T13:26:15.003+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logic Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='CLP'/><title type='text'>CLP(FD)  in the ASP solver competition</title><content type='html'>If you want to join the CLP(FD) team in the ASP solver competition,&lt;br /&gt;read &lt;a href="http://groups.google.com/group/comp.lang.prolog/browse_thread/thread/9bd6a34d042f7462#"&gt;this tread&lt;/a&gt; in comp.lang.prolog.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-9147121076722476732?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/9147121076722476732/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/02/clpfd-in-asp-solver-competition.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/9147121076722476732'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/9147121076722476732'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/02/clpfd-in-asp-solver-competition.html' title='CLP(FD)  in the ASP solver competition'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-2664825997652100527</id><published>2009-01-13T20:56:00.002+01:00</published><updated>2009-01-13T21:05:06.520+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VPW'/><title type='text'>Vlaamse Programmeerwedstrijd</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.cs.kuleuven.be/~toms/logo.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 125px;" src="http://www.cs.kuleuven.be/~toms/logo.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 10px; -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;span class="Apple-style-span" style="font-family: Georgia; font-size: 16px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;De eerste Vlaamse Programmeerwedstrijd (VPW 2009) gaat door op woensdag &lt;span class="Apple-style-span" style="font-weight: bold;"&gt;4 maart 2009&lt;/span&gt; vanaf 14u in het gebouw van het departement Computerwetenschappen van de KULeuven.&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;span class="Apple-style-span" style="font-family: Verdana; font-size: 10px; -webkit-border-horizontal-spacing: 5px; -webkit-border-vertical-spacing: 5px; "&gt;&lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Leerlingen uit het secundair onderwijs en uit het hoger onderwijs (hogeschool en universiteit) kunnen deelnemen aan de VPW. De teams worden opgedeeld in 2 categorien: teams bestaande uit leerlingen van het secundair of eerste bachelor studenten en teams met studenten vanaf de tweede bachelor (met inbegrip van de masters). Programmeren kan in Java, C, C++, Ruby, Haskell en Prolog.&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Binnen elke categorie krijgen de drie beste programmeerteams een prijs. In totaal is er 2000 euro prijzengeld dankzij onze sponsors.&lt;/p&gt; &lt;p style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; "&gt;Meer info &lt;a href="http://www.vlaamseprogrammeerwedstrijd.be"&gt;hier&lt;/a&gt;.&lt;/p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-2664825997652100527?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/2664825997652100527/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/01/vlaamse-programmeerwedstrijd.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2664825997652100527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2664825997652100527'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/01/vlaamse-programmeerwedstrijd.html' title='Vlaamse Programmeerwedstrijd'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-4704747439458699498</id><published>2009-01-08T20:22:00.005+01:00</published><updated>2009-01-13T21:05:55.169+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logic Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='events'/><category scheme='http://www.blogger.com/atom/ns#' term='CLP'/><category scheme='http://www.blogger.com/atom/ns#' term='CHR'/><title type='text'>ICLP 2009 doctoral consortium</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ist.unomaha.edu/iclp2009/la.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px; height: 273px;" src="http://www.ist.unomaha.edu/iclp2009/la.jpg" border="0" alt="" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div&gt;Are you a Ph.D. student in the are of Logic Programming, or considering to start one? Then the &lt;a href="http://www.cs.kuleuven.be/~toms/DC2009/"&gt;ICLP 2009 doctoral consortium&lt;/a&gt; is just the thing for you:&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;You get to attend &lt;span class="Apple-style-span" style="font-style: italic; "&gt;&lt;span class="Apple-style-span" style="font-weight: bold; "&gt;the&lt;/span&gt;&lt;/span&gt; International Conference on Logic Programming.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You'll meet lots of famous people in your area of research.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;You get a forum to present your own ideas, goals (and current results).&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Part of your expenses will be covered (depending on funds). For instance, last year registration fee and accomodation were covered.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;All this takes place in Pasadena, California.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;The submission deadline is April 10, 2009. More information &lt;a href="http://www.cs.kuleuven.be/~toms/DC2009/"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-4704747439458699498?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/4704747439458699498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/01/iclp-2009-doctoral-consortium.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/4704747439458699498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/4704747439458699498'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/01/iclp-2009-doctoral-consortium.html' title='ICLP 2009 doctoral consortium'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-7827793321375725851</id><published>2009-01-05T11:42:00.013+01:00</published><updated>2009-09-28T18:58:54.162+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logic Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='CLP'/><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>Monadic Constraint Programming</title><content type='html'>by Tom Schrijvers, Peter Stuckey and Philip Wadler&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Edit:&lt;/span&gt; The slides of my invited talk at WLP 2009 on Monadic Constraint Programming are now &lt;a href="http://www.cs.kuleuven.be/%7Etoms/Research/talks/wlp2009_mcp.pdf"&gt;available&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Abstract:&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;A constraint programming system combines two essential components: a constraint      solver and a search engine. The constraint solver reasons about satisfiability      of conjunctions of constraints, and the search engine controls the search for      solutions by iteratively exploring a disjunctive search tree defined by the      constraint program.  In this paper we give a monadic definition of constraint      programming where the solver is defined as a monad threaded through the monadic      search tree.  We are then able to define search and search strategies as first      class objects that can themselves be built or extended by composable search      transformers.  Search transformers give a powerful and unifying approach to      viewing search in constraint programming, and the resulting constraint      programming system is first class and extremely flexible.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Let's briefly look at the &lt;span style="font-style: italic;"&gt;n queens&lt;/span&gt; example from the paper. First, there is the &lt;tt&gt;nqueens&lt;/tt&gt; model:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;nqueens n = exist n $ \queens -&gt; model queens n /\&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;                                 enumerate queens&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;model queens n = queens ‘allin‘ (1,n) /\ &lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;                 alldifferent queens /\ &lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;                 diagonals queens&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt; &lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;allin queens range = conj [q ‘in_domain‘ range | q &lt;- queens ]     alldifferent queens = conj [ qi @\= qj | qi:qjs &lt;- tails queens,                                          qj &lt;- qjs ]  diagonals queens = conj [ qi @\== (qj @+ d) /\ qj @\== (qi @+ d)                         | qi:qjs &lt;- tails queens, (qj,d) &lt;- zip qjs [1..]]  conj = foldl (/\) true&lt;/span&gt;&lt;span style="font-size:130%;"&gt;  &lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The enumeration of possible values can be quite sophisticated, e.g.&lt;br /&gt;&lt;br /&gt;&lt;tt&gt;&lt;/tt&gt;&lt;pre&gt;&lt;tt&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;enumerate = Lazy . (label firstfail middleout)&lt;/span&gt;&lt;br /&gt;&lt;/tt&gt;&lt;/pre&gt;&lt;br /&gt;where &lt;tt&gt;firstfail&lt;/tt&gt; selects the queen with the smallest&lt;br /&gt;domain first, and &lt;tt&gt;middleout&lt;/tt&gt; selects the middle values&lt;br /&gt;in the domain first. You can easily write custom variable and&lt;br /&gt;value selection strategies, or alternative enumeration functions.&lt;br /&gt;&lt;br /&gt;To actually compute solutions, we have to solve the model:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;&gt; solve dfs it $ nqueens 4&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;[[2,4,1,3],[3,1,4,2]]&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;i.e. we yields these two solutions of 4 queens:&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 272px; height: 277px;" src="http://1.bp.blogspot.com/_Sh235RGes-w/SWHtU_YejmI/AAAAAAAABHk/-ZW4eTu0KGo/s320/chess3.png" alt="" id="BLOGGER_PHOTO_ID_5287768382376939106" border="0" /&gt;&lt;br /&gt;&lt;br /&gt;&lt;img style="margin: 0pt 10px 10px 0pt; cursor: pointer; width: 272px; height: 277px;" src="http://3.bp.blogspot.com/_Sh235RGes-w/SWHtlhp5LeI/AAAAAAAABHs/2uQSPi7jQGE/s320/chess2.png" alt="" id="BLOGGER_PHOTO_ID_5287768666454699490" border="0" /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;br /&gt;The search strategy used above is depth-first search (&lt;tt&gt;dfs&lt;/tt&gt;) without&lt;br /&gt;any additional search transformers (i.e. identity transformer &lt;tt&gt;it&lt;/tt&gt;).&lt;br /&gt;Here are three variations, using alternative search strategies:&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&gt; solve dfs (nb 100 :- db 25 :- bb newBound) $ nqueens 4&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&gt; solve bfs (db 25 :- nb 100 :- bb newBound) $ nqueens 4&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&gt; solve bfs (ld 10 :- nb 100 :- bb newBound) $ nqueens 4&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;where&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;tt&gt;bfs&lt;/tt&gt; is the breadth-first queueing strategy,&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;tt&gt;nb &lt;/tt&gt;&lt;i&gt;n&lt;/i&gt; stops search after visiting &lt;i&gt;n&lt;/i&gt; nodes in the search tree,&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;tt&gt;db&lt;/tt&gt;&lt;i&gt;n&lt;/i&gt; does not visit nodes below depth &lt;i&gt;n&lt;/i&gt; in the search tree,&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;tt&gt;ld &lt;/tt&gt;&lt;i&gt;n&lt;/i&gt; does not visit nodes that are more than &lt;i&gt;n&lt;/i&gt; right branches from the root of the search tree (limited discrepancy), and&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;tt&gt;bb newBound&lt;/tt&gt; is branch-and-bound optimization (in this example the value of the last queen is minimized; makes more sense for other problems).&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;The &lt;tt&gt;:-&lt;/tt&gt; operator combines the various (composable) search transformers. The purpose of these search transformers is of course to find (all, one, the best) solutions more quickly.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;More&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.cs.kuleuven.be/%7Etoms/Research/papers/monadic_cp_draft.pdf"&gt;Draft paper&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.cs.kuleuven.be/%7Etoms/Haskell/"&gt;Prototype code&lt;/a&gt; (requires GHC &gt;= 6.10)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Your feedback is appreciated.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-7827793321375725851?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/7827793321375725851/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/01/monadic-constraint-programming.html#comment-form' title='8 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/7827793321375725851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/7827793321375725851'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/01/monadic-constraint-programming.html' title='Monadic Constraint Programming'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_Sh235RGes-w/SWHtU_YejmI/AAAAAAAABHk/-ZW4eTu0KGo/s72-c/chess3.png' height='72' width='72'/><thr:total>8</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-259688354688347961</id><published>2009-01-01T12:32:00.002+01:00</published><updated>2009-01-02T14:17:58.408+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logic Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='CHR'/><title type='text'>Constraint Handing Rules: Current Research Topics</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.cs.kuleuven.be/%7Etoms/Research/papers/lnai5388.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 95px; height: 144px;" src="http://www.cs.kuleuven.be/%7Etoms/Research/papers/lnai5388.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.springer.com/computer/artificial/book/978-3-540-92242-1"&gt;About this book&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;The Constraint Handling Rules (CHR) language is a declarative concurrent committed-choice constraint logic programming language consisting of guarded rules that transform multisets of relations called constraints until no more change occurs.&lt;br /&gt;&lt;br /&gt;The CHR language saw the light more than 15 years ago. Since then, it has become a major declarative specification and implementation language for constraint-based algorithms and applications. In recent years, five workshops on constraint handling rules have spurred the exchange of ideas within the CHR community, which has led to increased international collaboration, new theoretical results and optimized implementations.&lt;br /&gt;&lt;br /&gt;The aim of this volume was to attract high-quality research papers on these recent advances in Constraint Handling Rules. The 7 papers presented together with an introductory paper on CHR cover topics on search, applications, theory, and implementation of CHR.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-259688354688347961?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/259688354688347961/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2009/01/constraint-handing-rules-current.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/259688354688347961'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/259688354688347961'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2009/01/constraint-handing-rules-current.html' title='Constraint Handing Rules: Current Research Topics'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-5030975373157009770</id><published>2008-12-15T09:52:00.000+01:00</published><updated>2008-12-17T08:33:31.203+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logic Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><title type='text'>Uniting the Prolog Community @ ICLP 2008</title><content type='html'>by Tom Schrijvers and Bart Demoen&lt;br /&gt;&lt;br /&gt;In his article "A Wake-Up Call for the Logic Programming Community",&lt;br /&gt;published in the ALP Newsletter, Tom raised several concerns about the&lt;br /&gt;viability of the Prolog programming language in the near future.&lt;br /&gt;&lt;br /&gt;This session on "Uniting the Prolog Community" was organized to reiterate these&lt;br /&gt;concerns, to announce recent positive developments and to involve the whole&lt;br /&gt;community in the discussion.&lt;br /&gt;Bart started out with an overview of the issues at stake:&lt;br /&gt;1. Love &amp; Passion: for Logic Programming, and Prolog in particular&lt;br /&gt;                   (witnessed by the packed sala Floria)&lt;br /&gt;2. Separation: many fragmented systems&lt;br /&gt;3. Guilt: for causing separation&lt;br /&gt;4. Jealousy &amp; Envy: for more thriving communities&lt;br /&gt;5. Hope &amp; Reconciliation: SWI-Prolog and Yap are joining forces&lt;br /&gt;He ended with a call to the audience to contribute with positive arguments.&lt;br /&gt;&lt;br /&gt;Next, Tom compared the state of affairs between the Prolog and Haskell communities. The Haskell community strongly integrates researchers, hobbyists, open source volunteers and industry. For Prolog the picture is much less clear.&lt;br /&gt;Few attendants could name more than one company using Prolog. This does not indicate so much that they don't exist, but rather that the community as a whole is simply not aware of them. In order to address the separation issue, Tom suggested we might learn a thing or two from Haskell community tools, of which the two most important ones are a community-maintained wiki portal with all the information you may possibly want to know about the language, and a library database for code sharing.&lt;br /&gt;&lt;br /&gt;Jan Wielemaker and Vitor Santos Costa reported on a hopeful development: they are joining forces, sharing code and increasing portability between their systems. All parties benefit, not only the users of YAP and SWI, but also Jan and Vitor who do not have to do the same work twice. Vitor concluded with a challenge for the community: we should give the outside world (and ourselves) a strong message: Prolog is simply the best and we can do things with it that others simply cannot conceive.&lt;br /&gt;&lt;br /&gt;In the last presentation, Paulo Moura related on the pain and struggle to port a Prolog application to different system. If Prolog systems would behave more consistently, his life and that of many other users would be so much easier.&lt;br /&gt;&lt;br /&gt;Throughout we had plenty of constructive discussion and suggestions from all the participants. For instance, Michael Codish reminded us of LP teachers and LP users in other communities, such as Natural Language Processing, and Markus Triska pointed out the existence of a #prolog IRC channel. Many other good points were raised.&lt;br /&gt;&lt;br /&gt;Will all this discussion lead to any concrete action? The answer is yes! The developers of Ciao, SWI-Prolog and Yap will reconcile at a hackaton beginning next year, to improve interoperability bottom-up. The ALP is setting up a wiki on very short term, and programming competitions will be organized to improve Prolog's presence at the Programming Language Shoot-Out. The rest is up to you: content for the wiki, programs for the shoot-out, and libraries for the interoperable Prolog systems. Other ideas are welcome and the wiki will give you the means to realise them.&lt;br /&gt;&lt;br /&gt;The session ended in an optimistic atmosphere and we are very grateful for the positivism of the participants.&lt;br /&gt;&lt;br /&gt;Finally, we would like to thank the ALP, the program chairs and local organizers for giving us the opportunity to organize this session.&lt;br /&gt;&lt;br /&gt;We hope to see you again next year, at ICLP 2009, with more good news.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;?- can(we).&lt;br /&gt;Yes&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-5030975373157009770?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/5030975373157009770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2008/12/uniting-prolog-community-iclp-2008.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/5030975373157009770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/5030975373157009770'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2008/12/uniting-prolog-community-iclp-2008.html' title='Uniting the Prolog Community @ ICLP 2008'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-1761552441181094020</id><published>2008-11-14T15:55:00.000+01:00</published><updated>2008-11-14T16:24:26.766+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='types'/><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>Type Invariants for Haskell</title><content type='html'>Our paper on Type Invariants for Haskell was recently accepted at PLPV'09. It contains a proposal for extending the power of type families (and type classes) by allowing the programmer to express invariants about them.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;Type Invariants for Haskell&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Tom Schrijvers, Louis-Julien Guillemette, Stefan Monnier&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Abstract&lt;/span&gt;&lt;br /&gt;Haskell's multi-parameter type classes, together with functional    dependencies, allow the specification of complex type-level operations, and    the recent introduction of open type families in GHC makes such type-level    programming even more accessible and flexible.  But type-level code is    special in that its correctness is crucial to the safety of the program; so    except in those cases simple enough for the type checker to see trivially    that the code is correct (or harmless), type-level programs need to come    with their specification and correctness proof.        &lt;br /&gt;In this article, we propose an extension to Haskell that allows the    specification of invariants for type classes and open type families,    together with accompanying evidence that those invariants hold.    To accommodate the open nature of type classes and type families, the    evidence itself needs to be open and every subcase of the proof can be    provided independently from the others.&lt;/blockquote&gt;&lt;br /&gt;Get the paper &lt;a href="http://www.cs.kuleuven.be/%7Etoms/Research/papers/plpv2009_draft.pdf"&gt;here&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-1761552441181094020?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/1761552441181094020/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2008/11/type-invariants-for-haskell.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/1761552441181094020'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/1761552441181094020'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2008/11/type-invariants-for-haskell.html' title='Type Invariants for Haskell'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-1079590057612142574</id><published>2008-09-13T15:41:00.000+02:00</published><updated>2008-09-13T15:54:56.184+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='CLP'/><category scheme='http://www.blogger.com/atom/ns#' term='CHR'/><title type='text'>Mockitator uses CHR</title><content type='html'>Here's another bit of evidence of CHR's industrial relevance: a commercial product, for test generation, using CHR:&lt;br /&gt;&lt;blockquote&gt;AgitarOne is a comprehensive unit testing product for Java  developed at Agitar Software. It combines tools for software agitation (a technique for exploratory testing), regression test generation, reporting, and continuous integration. Test generation is supported in AgitarOne by two distinct test generation engines. Agitar’s Agitator is a dynamic test generation engine that uses runtime feedback and limited on-the-fly static analysis to generate input data for software agitation and for regression test generation. Agitar’s Mockitator (internal code-name) is a static test generation engine that creates regression tests based on static program analysis.&lt;br /&gt;&lt;/blockquote&gt;It mentions CHR right &lt;a href="http://www.agitar.com/products/downloads/contrib/contrib421.html"&gt;here&lt;/a&gt; that their software contains a modified version of JCHR, the Java implementation of CHR by Peter Van Weert.&lt;br /&gt;&lt;br /&gt;Thanks to Peter Van Weert for spotting it.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-1079590057612142574?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/1079590057612142574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2008/09/mockitator-uses-chr.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/1079590057612142574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/1079590057612142574'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2008/09/mockitator-uses-chr.html' title='Mockitator uses CHR'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-8536950055441270112</id><published>2008-09-02T01:29:00.000+02:00</published><updated>2008-09-02T01:44:46.495+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logic Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='types'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><title type='text'>Gradual Typing for Prolog</title><content type='html'>&lt;span style="font-size:85%;"&gt;(See my previous post titled "Types for Prolog")&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I got the lead developers of two major open source Prolog systems, Vitor Santos Costa (Yap Prolog) and Jan Wielemaker (SWI-Prolog), interested in my Typed Prolog project. With their help and Bart Demoen's, the type checker library has much improved.&lt;br /&gt;&lt;br /&gt;We've written up a summary of our work in a 5 page short paper (poster), which has just been accepted at ICLP:&lt;br /&gt;&lt;b&gt;&lt;/b&gt;&lt;blockquote&gt;&lt;b&gt;Moving SWI and Yap gradually to Typed Prolog&lt;/b&gt;,    T. Schrijvers, V. Santos Costa, J. Wielemaker, B. Demoen.&lt;/blockquote&gt;Come to the poster session in December to hear about it, or have a look at the &lt;a href="http://www.cs.kuleuven.be/%7Etoms/Research/papers/draft_ptypes_iclp08.pdf"&gt;draft&lt;/a&gt; right now.&lt;br /&gt;&lt;br /&gt;Most notable new features of the new version:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;new ways of interfacing typed and untyped code&lt;/li&gt;&lt;li&gt;the same function symbol in multiple types&lt;/li&gt;&lt;li&gt;new built-in types &lt;span style="font-weight: bold;"&gt;string&lt;/span&gt; and &lt;span style="font-weight: bold;"&gt;any&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;Also a number of error messages have been improved, and the type checker prints statistics after checking a file (number of clauses checked and errors found).&lt;br /&gt;&lt;br /&gt;Get the latest version here: &lt;a href="http://www.cs.kuleuven.be/%7Etoms/PrologTypes/type_check.pl"&gt;type_check.pl&lt;/a&gt; and &lt;a href="http://www.cs.kuleuven.be/%7Etoms/PrologTypes/functor_constraint.pl"&gt;functor_constraint.pl&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Stay tuned as more details will follow.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-8536950055441270112?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/8536950055441270112/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2008/09/gradual-typing-for-prolog.html#comment-form' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/8536950055441270112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/8536950055441270112'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2008/09/gradual-typing-for-prolog.html' title='Gradual Typing for Prolog'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-4408642875299865496</id><published>2008-04-03T09:43:00.000+02:00</published><updated>2008-04-03T09:50:09.474+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>Type Checking with Open Type Functions</title><content type='html'>We've got a &lt;a href="http://www.cs.kuleuven.be/%7Etoms/Research/papers/draft_type_functions_2008.pdf"&gt;new paper&lt;/a&gt; on the type checking algorithm for type functions/families:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;Type Checking with Open Type Functions&lt;/span&gt;&lt;br /&gt;T. Schrijvers, S. Peyton Jones, M. Chakravarty, M. Sulzmann&lt;br /&gt;&lt;br /&gt;   We report on an extension of Haskell with open type-level functions and equality    constraints that unifies earlier work on GADTs, functional dependencies,    and associated types. The contribution of the paper is that we    identify and characterise the key technical challenge of &lt;em&gt;entailment    checking&lt;/em&gt;; and we give a novel, decidable, sound, and    complete algorithm to solve it, together with some practically-important variants.    Our system is implemented in GHC, and is already in active use.&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-4408642875299865496?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/4408642875299865496/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2008/04/type-checking-with-open-type-functions.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/4408642875299865496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/4408642875299865496'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2008/04/type-checking-with-open-type-functions.html' title='Type Checking with Open Type Functions'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-1532701573309171426</id><published>2008-03-27T21:34:00.000+01:00</published><updated>2008-03-27T21:39:39.581+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='CHR'/><title type='text'>New CHR Survey</title><content type='html'>There's a new survey on CHR available &lt;a href="http://www.cs.kuleuven.be/%7Etoms/Research/papers/draft_chr_survey.pdf"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;As Time Goes By: Constraint Handling Rules                             - A Survey of CHR Research from 1998 to 2007.&lt;/span&gt;&lt;br /&gt;J. Sneyers, P. Van Weert, T. Schrijvers, L. De Koninck.&lt;/blockquote&gt;&lt;blockquote&gt;Constraint Handling Rules (CHR) is a high-level programming language based on multi-headed multiset rewrite rules. Originally designed for writing user-deﬁned constraint solvers,  it is now recognized as an elegant general purpose language.&lt;br /&gt;CHR-related research has surged during the decade following the previous survey by Fruwhwirth (1998). Covering more than 180 publications, this new survey provides an overview of recent results in a wide range of research areas, from semantics and analysis to systems, extensions and applications.&lt;br /&gt;&lt;/blockquote&gt;If there are any omissions or mistakes, please let me know!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-1532701573309171426?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/1532701573309171426/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2008/03/new-chr-survey.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/1532701573309171426'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/1532701573309171426'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2008/03/new-chr-survey.html' title='New CHR Survey'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-2835016242842973887</id><published>2008-02-26T13:59:00.000+01:00</published><updated>2008-02-28T15:04:20.261+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><title type='text'>Types for Prolog</title><content type='html'>There's been quite a discussion on types over at comp.lang.Prolog. In my opinion types are essential for programming in the large. The lack of types is one of the reasons for making Prolog a small language.&lt;br /&gt;&lt;br /&gt;So Prolog should have types that are statically enforced. What types? I'd rather not invent an awkwardly ad-hoc type system that  fits existing code patterns. In order to make types work a lot for you, you must work a little too. What I mean is that certain programming style must be adopted that is not necessarily the anything-you-write-is-fine style of an untyped language. So why invent a new type system if we can reuse a tried-and-true one: the Hindley-Milner type system. It's been around for about 30 years, and applied with success in several languages. In particular, it's being used in Mercury, and it works!&lt;br /&gt;&lt;br /&gt;Of course, we don't want to switch from Prolog to Mercury overnight. There's all the legacy code we don't have the time and money to port. &lt;span style="color: rgb(153, 51, 153);"&gt;Moreover, Mercury's demand for declarations is pretty heavy weight: not only types are demanded, but also modes and determinism.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;That's why I started a type checker library in &lt;span style="color: rgb(255, 0, 0);"&gt;(SWI-)&lt;/span&gt;Prolog: &lt;a href="http://www.cs.kuleuven.be/%7Etoms/PrologTypes/type_check.pl"&gt;&lt;tt&gt;type_check.pl&lt;/tt&gt;&lt;/a&gt;. Include this library in your code, and you can use Mercury-style type declarations and predicate signatures.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-size:130%;" &gt;Basic use the library&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;In order to use the type checker, you must include the library in your module:&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;:- use_module(type_check).&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;This way the type checker will be run whenever you load your library. Any type errors it finds, will be reported during the loading process.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Now, before you can use any types, you must defined them. This is done using Mercury-style type definitions. There are two forms. The first form is for defining a new algebraic data type. E.g.&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(0, 0, 153);"&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;:- type list(T) ---&gt; [] ; [T|list(T)].&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;defines a polymorphic type of lists. Note that this particular type is already predefined by the type_check library, as well as a few others (integer/0, boolean/0 and pair/2, for now).&lt;br /&gt;&lt;br /&gt;The second form is for defining an alias (type alias) of another type. E.g.&lt;br /&gt;&lt;/span&gt;&lt;blockquote style="color: rgb(0, 0, 153);"&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;:- type intlist == list(integer).&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;defines a shorter name intlist for the type list(integer). For the type checker these two are equal.&lt;br /&gt;&lt;br /&gt;Once you have defined the types you need, you can use them to write signatures for your predicates. E.g.&lt;br /&gt;&lt;/span&gt;&lt;blockquote style="color: rgb(0, 0, 153);"&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;:- pred mem(E,list(E)).&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;states that mem/2's first argument is of any one type E and mem/2's argument is of type list(E). With the signature in place, you can happily write the predicate definition:&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(0, 0, 153);"&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;mem(X,[X|_]).&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;mem(X,[_|T]) :- mem(X,T).&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt;  &lt;span style="color: rgb(255, 0, 0);"&gt;Now load your module, and the type checker verifies wether the predicate definition conforms to the predicate signature. If it doesn't, it complains with an error message.&lt;/span&gt; There is no further runtime overhead&lt;span style="color: rgb(255, 0, 0);"&gt; (like runtime assertions)&lt;/span&gt;: well-typed code can't go wrong.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;Assume that I wrote the first clause as (the arguments switched):&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(0, 0, 153);"&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;mem([X|_],X).&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt;  &lt;span style="color: rgb(255, 0, 0);"&gt;When I load the file, I get the error message:&lt;/span&gt;&lt;br /&gt;&lt;blockquote style="color: rgb(0, 0, 153);"&gt;&lt;pre&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;TYPE ERROR: expected type `list(list(_G759))' for term `_G730'&lt;br /&gt;           inferred type `_G759'&lt;br /&gt;       in head `mem([_G730|_G733], _G730)' of clause:&lt;br /&gt;mem([A|_], A).&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;/blockquote&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;Admittedly, the error messages are currently far from the most informative, but this project has just begun. Your suggestions for improvement and patches are much appreciated.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);font-size:130%;" &gt;Untyped legacy code&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Of course, we still have that untyped legacy code. We don't want to type all that code, let alone rewrite it to make it typable. That's why I added the ability to have typed and untyped code interact in a safe manner:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;When untyped code calls the typed code, a runtime test is performed right before the call to check whether the call is well-typed. This also holds for calls from the Prolog toplevel!&lt;br /&gt;&lt;/li&gt;&lt;li&gt;When typed code calls untyped code, you must annotate the call with a singature. A runtime check will then verify whether the call behaves according to its signature.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;This was inspired by Phil Waddler's recent paper, which establishes that well-typed code is not to blame. Any type errors will be caught at the interface between the  untyped and the typed  code, and the untyped code is to blame.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;You can find a fully annotated library module for binomial heaps &lt;/span&gt;&lt;a style="color: rgb(153, 51, 153);" href="http://www.cs.kuleuven.be/%7Etoms/PrologTypes/binomialheap.pl"&gt;here&lt;/a&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;. It's a port from Haskell code.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-2835016242842973887?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/2835016242842973887/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2008/02/types-for-prolog.html#comment-form' title='7 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2835016242842973887'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2835016242842973887'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2008/02/types-for-prolog.html' title='Types for Prolog'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-6115371434148225972</id><published>2008-02-02T13:39:00.001+01:00</published><updated>2008-02-02T13:46:51.898+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='CHR'/><title type='text'>Union-Find has Linear Time Complexity</title><content type='html'>There is a new time complexity &lt;a href="http://www.cs.uiowa.edu/%7Ehzhang/union-find.pdf"&gt;result&lt;/a&gt; for the union-find algorithm by Hantao Zhang. Tarjan showed that the algorithm has near linear complexity: O( n . a(n)) where a(n)  is the inverse Ackermann function. The new result shows that the algorithm in fact has a linear time complexity O(n).&lt;br /&gt;&lt;br /&gt;This means that I have to revise the &lt;a href="http://arxiv.org/abs/cs.PL/0501073"&gt;joint paper&lt;/a&gt; with Thom Fruehwirth on implementing union-find in CHR with optimal complexity. It's still optimal, but the absolute complexity is simply better :-)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-6115371434148225972?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/6115371434148225972/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2008/02/union-find-has-linear-time-complexity.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/6115371434148225972'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/6115371434148225972'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2008/02/union-find-has-linear-time-complexity.html' title='Union-Find has Linear Time Complexity'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-2715053286594004289</id><published>2008-01-30T10:53:00.000+01:00</published><updated>2008-01-30T10:57:40.968+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='CHR'/><title type='text'>CHR 2008 Announced</title><content type='html'>The &lt;a href="http://www.uni-ulm.de/in/pm/research/events/chr2008"&gt;CHR 2008&lt;/a&gt; workshop has  just been announced.  It will be held on July 14 in&lt;span style="font-size:100%;"&gt; Hagenberg, Austria at the occasion of &lt;a href="http://www.risc.uni-linz.ac.at/about/conferences/rta2008/"&gt;RTA 2008&lt;/a&gt;. I'm already looking forward to it!&lt;/span&gt;&lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/span&gt; &lt;span style="display: block;" id="formatbar_Buttons"&gt;&lt;span class="down" style="display: block;" id="formatbar_CreateLink" title="Link" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 8);ButtonMouseDown(this);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-2715053286594004289?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/2715053286594004289/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2008/01/chr-2008-announced.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2715053286594004289'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2715053286594004289'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2008/01/chr-2008-announced.html' title='CHR 2008 Announced'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-1639636661479157966</id><published>2008-01-25T21:28:00.000+01:00</published><updated>2008-01-25T21:43:49.366+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><title type='text'>New aggregates library in SWI-Prolog</title><content type='html'>I just saw that a new &lt;a href="http://gollem.science.uva.nl/git/pl.git?a=blob;f=library/aggregate.pl;h=74cbd338e0911660925b3f385014308eb0b2a646;hb=f1401b93d536f12d00bc6d74b8eaf3cccd2ff0bd"&gt;library for aggregates&lt;/a&gt; was added in SWI-Prolog's GIT repository. &lt;br /&gt;That should be pretty useful. It's not that difficult to write your own aggregation functions using findall and friends, but rather tedious. I bet there are plenty such handwritten aggregates in the CHR compiler.  Let's see how many can be replaced with calls to this new library.&lt;br /&gt;&lt;br /&gt;There is an interesting note in the library:&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;@tbd    Analysing the aggregation template and compiling a predicate&lt;br /&gt;              for the list aggregation can be done at compile time.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;It would be really cool to see Prolog systems do smart source code optimizations. All the manuals tell you how to exploit first-argument indexing and put your predicate arguments in the appropriate order. In my opinion it should really be the Prolog compiler that figures out what argument to index on, so that you as a programmer can choose argument order based on other factors. Yes, performance has to be predictable, but I bet nobody complains when the code runs faster than expected. There must be plenty of ways to do better than doing nothing.&lt;br /&gt;&lt;br /&gt;Anyway, if you want to use it, you can grab it from &lt;a href="http://www.swi-prolog.org/download.html"&gt;the repository&lt;/a&gt; or wait for the next release, which should be soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-1639636661479157966?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/1639636661479157966/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2008/01/new-aggregates-library-in-swi-prolog.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/1639636661479157966'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/1639636661479157966'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2008/01/new-aggregates-library-in-swi-prolog.html' title='New aggregates library in SWI-Prolog'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-8702449870726049082</id><published>2008-01-16T12:24:00.000+01:00</published><updated>2008-01-16T12:29:14.831+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logic Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><title type='text'>Planet Prolog</title><content type='html'>I learned about blog planets, and how easy they are to set up. There are many planets for other programming languages. One I enjoy reading is Planet Haskell.&lt;br /&gt;Wouldn't it be neat to have a planet for Prolog. So I just went ahead and started &lt;a href="http://www.cs.kuleuven.be/%7Etoms/PlanetProlog/"&gt;Planet Prolog&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;If you have a Prolog or Logic Programming related blog. Please let me know, and I'll gladly add you to Planet Prolog. Also tell your friends who may be interested.&lt;br /&gt;This should be a great way to let other people know what's going on in the community!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-8702449870726049082?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/8702449870726049082/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2008/01/planet-prolog.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/8702449870726049082'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/8702449870726049082'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2008/01/planet-prolog.html' title='Planet Prolog'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-2389906920130715752</id><published>2007-12-27T11:35:00.000+01:00</published><updated>2007-12-27T11:39:36.696+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='CLP'/><category scheme='http://www.blogger.com/atom/ns#' term='CHR'/><title type='text'>TCHR: a framework for tabled CHR</title><content type='html'>This joint paper with Bart Demoen and David S. Warren has just been accepted at the Theory and Practice of Logic Programming journal. It is the extended version of our award-winning ICLP 2004 paper.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt; Tabled Constraint Logic Programming is a powerful execution mechanism for dealing with Constraint Logic Programming without worrying about fixpoint computation. Various applications, e.g in the fields of program analysis and model checking, have been proposed. Unfortunately, a high-level system for developing new applications is lacking, and programmers are forced to resort to complicated ad hoc solutions.&lt;br /&gt;This papers presents TCHR, a high-level framework for tabled Constraint Logic Programming. It integrates in a light-weight manner Constraint Handling Rules (CHR), a high-level language for constraint solvers, with tabled Logic Programming. The framework is easily instantiated with new application-specific constraint domains. Various high-level operations can be instantiated to control performance. In particular, we propose a novel, generalized technique for compacting answer sets.&lt;/blockquote&gt;&lt;br /&gt;Read more in the &lt;a href="http://arxiv.org/abs/0712.3830"&gt;arxiv.org entry&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-2389906920130715752?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/2389906920130715752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2007/12/tchr-framework-for-tabled-chr.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2389906920130715752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/2389906920130715752'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2007/12/tchr-framework-for-tabled-chr.html' title='TCHR: a framework for tabled CHR'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-8499404331813332137</id><published>2007-12-27T11:22:00.000+01:00</published><updated>2008-01-21T10:56:03.932+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Logic Programming'/><category scheme='http://www.blogger.com/atom/ns#' term='Prolog'/><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>A Wake-Up Call for the Logic Programming Community</title><content type='html'>I have written an &lt;a href="http://www.cs.kuleuven.ac.be/%7Edtai/projects/ALP//newsletter/dec07/content/Articles/tom/content.html"&gt;article&lt;/a&gt; for the ALP newsletter, comparing the Logic Programming community to the Functional Programming community and in particular the Haskell community.&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;In the 6 six years that I have been doing research in the Logic Programming community, I have met a lot of nice people and heard about a lot of interesting research ideas. However, the community itself isn't exactly thriving and LP has a serious PR problem. It's my fear that if we happily continue along our current path, then there will be little left of LP and its flagship Prolog in a couple of years...&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://www.cs.kuleuven.ac.be/%7Edtai/projects/ALP//newsletter/dec07/content/Articles/tom/content.html"&gt;Read the whole article&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Reactions:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://impactanalysis.blogspot.com/2007/12/logic-programming-wake-up-call.html"&gt;Jim Law's blog article&lt;/a&gt;: "There is a massive body of experience in logic programming, Prolog in particular, that we can't afford to lose."&lt;/li&gt;&lt;li&gt;&lt;a href="http://anarchaia.org/archive/2007/12/28.html"&gt;Anarchaia&lt;/a&gt;: "I hope it works."&lt;/li&gt;&lt;li&gt;Bernd Brassel: &lt;blockquote&gt;"I have just read your wake up call for the logic programming community. It was very gripping and exactly what I felt. There is even one more point I would like to add to your pile of suggestions: improve the reviews for ICLP. Do you remember Norman Ramsey's speech about how thorough and thoughtful&lt;br /&gt;reviews improve people's will to submit next time again, even if you were rejected? I think that was totally to the point. If you compare my reviews from ICLP with those of ICFP you can easily tell who took the work more seriously. And if for some reason I could only submit to one of those conferences this year, my choice would be clear..."&lt;br /&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;li&gt;Michael Hanus:&lt;blockquote&gt;"I just read your "Wake-Up Call" article. Congratulations&lt;br /&gt;and many thanks for this article!&lt;br /&gt;&lt;br /&gt;I fully agree with you since this largely overlaps with&lt;br /&gt;my statement I presented at the ICLP 2005 panel discussion.&lt;br /&gt;I concluded there with the suggestions:&lt;br /&gt;&lt;br /&gt;Language design is not enough&lt;br /&gt;&lt;br /&gt;- good web pages (e.g., activate www.logic-programming.org)&lt;br /&gt;- collect resources, libraries, projects etc.&lt;br /&gt;- show that LP is alive&lt;br /&gt;&lt;br /&gt;ALP EC as a driving force (establish committee...)&lt;br /&gt;&lt;br /&gt;This was also influenced from my experience with the&lt;br /&gt;FP community. Unfortunately, I haven't seen much activity&lt;br /&gt;since then, although this issue is crucial for the future of LP.&lt;br /&gt;&lt;br /&gt;I hope that your wake-up call will have a better effect!"&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Paulo Moura pointed me to his &lt;a href="http://www.cs.kuleuven.ac.be/%7Edtai/projects/ALP/newsletter/aug05/nav/articles/three/article.html"&gt;ALP newsletter article&lt;/a&gt; on Prolog standardization a while ago. From the article:&lt;br /&gt;&lt;blockquote&gt;This would be a followup to my first newsletter article, published on May 1999. However, the present text turned out to be more political than technical. For a good reason. Six years later, what has changed? Not much, I'm afraid. Sure, several Prolog compilers, specially open-source ones, improved their compatibility with the Part I of the ISO Prolog standard. However, there is still no  certification process in place or widely accepted conformance tests that a programmer may use and rely on when porting its Prolog applications...&lt;/blockquote&gt; &lt;/li&gt;&lt;li&gt;Clive Spenser:&lt;br /&gt;&lt;blockquote&gt;I do tend to agree with your analysis. Many years ago I tried to expose the commercial ues of Prolog thru the Prolog Vendors Group and Practical Applications of Prolog series of conferences&lt;br /&gt;and seminars. Both the ALP and CompulogNet [at the time] where very supportive.&lt;br /&gt;However, we have never been more than an interetsing niche language and suffered as the AI and Expert Systems wave has too gone up and down. Prolog is not an acceptable programming language within industry and seen a both our-dated by the new breed of programmers and not mainstream enough by the old breed.&lt;br /&gt;Where does that leave us? Answers on a postcard please ....&lt;br /&gt;regards,&lt;br /&gt;Clive&lt;br /&gt;FWIW: LPA do try to get customers to go public with their applications [like PDC, Sics etc]; you can read about some successful applications of LPA&lt;br /&gt;Prolog on the &lt;a href="http://www.lpa.co.uk/new_lin.htm"&gt;LPA web-site&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-8499404331813332137?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/8499404331813332137/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2007/12/wake-up-call-for-logic-programming.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/8499404331813332137'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/8499404331813332137'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2007/12/wake-up-call-for-logic-programming.html' title='A Wake-Up Call for the Logic Programming Community'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-3922355928384593055</id><published>2007-11-21T14:15:00.001+01:00</published><updated>2007-11-21T15:12:22.577+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CLP'/><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>Nested Parallel List Comprehensions</title><content type='html'>It's been a couple of years ago that I read about parallel list comprehensions. I cannot remember actually seeing them used by anyone. Today I needed them, infact I needed them twice: nested parallel list comphrehension.&lt;br /&gt;&lt;br /&gt;The problem is the n-queens puzzle. The object is to place n queens on an n-by-n chess board, such that the queens do not attack each other, i.e.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;there are no two queens in the same &lt;span style="font-weight: bold;"&gt;column&lt;/span&gt;&lt;/li&gt;&lt;li&gt;there are no two queens in the same &lt;span style="font-weight: bold;"&gt;row&lt;/span&gt;&lt;/li&gt;&lt;li&gt;there are no two queens on the same &lt;span style="font-weight: bold;"&gt;diagonal&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt; In Constraint Logic Programming the usual trick is to have a list of queens, where the position&lt;br /&gt;in the list corresponds to the column of that queen. In this form the columns constraint is already satisfied.&lt;br /&gt;&lt;br /&gt;Now only the column of the queen has to be determined. Hence, the representation of a queen is an integer constraint variable, denoting the row of that queen. We can easily satisfy the row constraint with an out-of-the-box CLP constraint, alldifferent, which forces a list of constraint variables to take on different variables.&lt;br /&gt;&lt;br /&gt;Now, we are left with the diagonals constraints and not so many more trick left in our bag.&lt;br /&gt;We have to set up  n*(n - 1)/2 pairwise constraints between the queens, saying that they are not on the same diagonal. If the rows of two queens are q1 and q2 and their relative distance is n &gt;  0 (hence q1 comes first), the diagonal constraint amounts to q1 \= q2 + n /\ q2 \= q1 + n (verify!). The tricky bit is to set up all the constraints from the list of queens.&lt;br /&gt;&lt;br /&gt;Here's my solution:&lt;br /&gt;&lt;pre&gt;&lt;blockquote&gt;&lt;br /&gt;queens qs = conj . map conj $&lt;br /&gt;                 [  [ neqp q1 q2 n /\ neqp q2 q1 n&lt;br /&gt;                    | n  &lt;- [1..]&lt;br /&gt;                    | q2 &lt;- q2s&lt;br /&gt;                    ]&lt;br /&gt;                 | q1  &lt;- qs&lt;br /&gt;                 | q2s &lt;- tails qs&lt;br /&gt;                 ]&lt;br /&gt;&lt;/blockquote&gt;&lt;/pre&gt;&lt;br /&gt;That's a nicely double nested use of parallel list comprehensions.&lt;br /&gt;&lt;br /&gt;Did you ever use parallel list comprehension?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-3922355928384593055?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/3922355928384593055/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2007/11/nested-parallel-list-comprehensions.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/3922355928384593055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/3922355928384593055'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2007/11/nested-parallel-list-comprehensions.html' title='Nested Parallel List Comprehensions'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-4542001162174922419</id><published>2007-11-21T08:42:00.000+01:00</published><updated>2007-11-21T08:45:14.904+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>SingHaskell</title><content type='html'>I'm currently visiting Martin Sulzmann in Singapore. We thought it'd be fun to organize a &lt;a href="http://taichi.ddns.comp.nus.edu.sg/taichiwiki/SingHaskell2007"&gt;SingHaskell&lt;/a&gt; meeting next Wednesday, because there is a higher than usual concentration of Haskellers in Singapore then (it's right before APLAS, the Asian programming languages conferences). Want to come and/or present too? Let me know!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-4542001162174922419?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/4542001162174922419/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2007/11/singhaskell.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/4542001162174922419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/4542001162174922419'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2007/11/singhaskell.html' title='SingHaskell'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-6201419992733550550</id><published>2007-11-21T03:46:00.000+01:00</published><updated>2008-04-09T15:39:16.584+02:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>Type Functions for CPS Transformation</title><content type='html'>&lt;a href="http://www-etud.iro.umontreal.ca/%7Eguillelj/"&gt;Louis-Julien Guillemette&lt;/a&gt; presented &lt;span style="font-style: italic;"&gt;A Type-Preserving Closure Conversion in Haskell&lt;/span&gt; at the Haskell Workshop. The type preservation involved a lot of manual proof term construction, using GADTs, i.e. at the value level.&lt;br /&gt;&lt;br /&gt;I suggested converting his code to use &lt;a href="http://www.cs.kuleuven.be/%7Etoms/Research/papers/type_functions.pdf"&gt;type functions&lt;/a&gt;, our latest extension of the GHC type system, instead. This would lift the proof term construction from the value level to the type-level. More importantly, rather than having to construct the proof terms yourself, now the type checker does it automatically for you. It should yield savings in both brain power and lines of code.&lt;br /&gt;&lt;br /&gt;He's taken up the challenge and sent me the adapted version of his code. Before, there were&lt;br /&gt;397 LoC in his CPS transformer. Now there are only 264 LoC or &lt;span style="font-weight: bold;"&gt;66.5%&lt;/span&gt;. That's a third less code! The ratio closure conversion versus type preservation is now much bigger: the eliminated code is related to type preservation only.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update&lt;/span&gt;&lt;br /&gt;Louis-Juilen has made his new TFP'08 paper &lt;span style="font-style: italic;"&gt;"One Vote for Type Families in Haskell!"&lt;/span&gt; &lt;a href="http://www-etud.iro.umontreal.ca/%7Eguillelj/tfp08.pdf"&gt;available&lt;/a&gt;. The paper has some interesting arguments for type families. The code itself is also &lt;a href="http://www-etud.iro.umontreal.ca/%7Eguillelj/cps-tf/"&gt;available&lt;/a&gt;. The type families version is &lt;span style="font-weight: bold;"&gt;30 times faster&lt;/span&gt; than the GADT version!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-6201419992733550550?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/6201419992733550550/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2007/11/type-functions-for-cps-transformation.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/6201419992733550550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/6201419992733550550'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2007/11/type-functions-for-cps-transformation.html' title='Type Functions for CPS Transformation'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-7020659809679463634</id><published>2007-11-16T12:00:00.001+01:00</published><updated>2007-11-18T06:55:57.768+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Haskell'/><title type='text'>An extension proposal for Uniplate</title><content type='html'>I'm working on a Haskell model for a Constraint Logic Programming search tree:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;data&lt;/span&gt; Tree (sm :: * -&gt; *) c t&lt;br /&gt;= Fail&lt;br /&gt;| Return&lt;br /&gt;| Try (Tree sm c t) (Tree sm c t)&lt;br /&gt;| Add c (Tree sm c t)         &lt;br /&gt;| NewVar &lt;span style="color: rgb(204, 0, 0);"&gt;(t -&gt; Tree sm c t)&lt;/span&gt;&lt;br /&gt;| Label &lt;span style="color: rgb(153, 0, 0);"&gt;(sm (Tree sm c t))&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;for which I wrote this extension function:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;extendTree :: Monad sm =&gt; Tree sm c t -&gt; Tree sm c t -&gt; Tree sm c t&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Fail       `extendTree` k  = Fail&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Return     `extendTree` k  = k&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(Try m n)  `extendTree` k  = Try (m `extendTree` k) (n `extendTree` k)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(Add c m)  `extendTree` k  = Add c (m `extendTree` k)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(NewVar f) `extendTree` k  = NewVar (\x -&gt; f x `extendTree` k)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(Label m)  `extendTree` k  = Label (m &gt;&gt;= \t -&gt; return (t `extendTree` k))&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;which takes two trees and basically replaces all &lt;span style="font-family:courier new;"&gt;Return&lt;/span&gt; nodes in the first tree with the second tree.&lt;br /&gt;&lt;br /&gt;Having attended Neil Mitchell's compelling talk at the Haskell Workhop, I wanted to try and see whether I could come up with a concise version with &lt;a href="http://www-users.cs.york.ac.uk/%7Endm/uniplate/"&gt;Uniplate&lt;/a&gt;.&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;instance&lt;/span&gt; &lt;/span&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;Uniplate&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; (Tree sm c t) &lt;span style="font-weight: bold;"&gt;where&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;uniplate&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; = ...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;j `extendTree` k = &lt;/span&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;transform&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; tf j&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;               &lt;span style="font-weight: bold;"&gt;where&lt;/span&gt; tf Return = k&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;                     tf x      = x&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;It turned out that I could not make &lt;span style="font-family:courier new;"&gt;(Tree sm c t)&lt;/span&gt; an instance of the Uniplate type class because of the &lt;span style="font-family:courier new;"&gt;NewVar&lt;/span&gt; and &lt;span style="font-family:courier new;"&gt;Label &lt;/span&gt;constructors. These two constructors do not allow their children to be inspected, because they are respectively hidden in a function and a monad.&lt;br /&gt;&lt;br /&gt;To solve this problem, I propose to introduce a more limited type class, &lt;span style="font-family:courier new;"&gt;Semiplate&lt;/span&gt;, which only allows the transformation of its instances.&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;class&lt;/span&gt; Semiplate on &lt;span style="font-weight: bold;"&gt;where&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  &lt;span style="color: rgb(0, 102, 0);"&gt;-- apply the given function to the children&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;  -- to construct a new value&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  semiplate :: (on -&gt; on) -&gt; on -&gt; on&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;instance&lt;/span&gt; Monad sm =&gt; Semiplate (Tree sm c t) &lt;span style="font-weight: bold;"&gt;where&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  semiplate tf Fail  =  Fail&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  ...&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  semiplate tf (Newvar f)  = NewVar (\var -&gt; tf (f var))&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  semiplate tf (Label m)   = Label (m &gt;&gt;= \t -&gt; return (tf f))&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;stransform :: Semiplate a =&gt; (a -&gt; a) -&gt; a -&gt; a&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;stransform tf  = tf . (stransform tf)&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;Using GHC's &lt;span style="font-style: italic;"&gt;overlapping instances&lt;/span&gt;, we can even make every &lt;span style="font-family:courier new;"&gt;Uniplate&lt;/span&gt; instance a &lt;span style="font-family:courier new;"&gt;Semiplate&lt;/span&gt; instance:&lt;br /&gt;&lt;blockquote&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;instance&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; Uniplate on =&gt; Semiplate on &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;where&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;  semiplate tf x  = construct (map tf children)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;                  &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;where&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; (children,construct) = uniplate x&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;I have no idea whether this would be useful for other cases where Uniplate does not work out of the box.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-7020659809679463634?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/7020659809679463634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2007/11/extension-proposal-for-uniplate.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/7020659809679463634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/7020659809679463634'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2007/11/extension-proposal-for-uniplate.html' title='An extension proposal for Uniplate'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5844006452378085451.post-3820046532791892615</id><published>2007-11-16T05:48:00.001+01:00</published><updated>2007-11-16T05:48:48.775+01:00</updated><title type='text'>First post</title><content type='html'>This is my first post.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5844006452378085451-3820046532791892615?l=tomschrijvers.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://tomschrijvers.blogspot.com/feeds/3820046532791892615/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://tomschrijvers.blogspot.com/2007/11/first-post.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/3820046532791892615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5844006452378085451/posts/default/3820046532791892615'/><link rel='alternate' type='text/html' href='http://tomschrijvers.blogspot.com/2007/11/first-post.html' title='First post'/><author><name>Tom Schrijvers</name><uri>http://www.blogger.com/profile/05575578560152022579</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='23' height='32' src='http://2.bp.blogspot.com/_Sh235RGes-w/SwBIn8B85VI/AAAAAAAADiE/MhmbNdrFPKw/S220/tom3.jpg'/></author><thr:total>0</thr:total></entry></feed>
