This is a project where I, José Proença, worked on since April until October 2005. It was supervised by Jorge Sousa Pinto and Alcino Cunha, who supported and helped me during this time. The proposal is explained in more detailed in here. The results can be found in my internship report, here.
The project consists on two parts:
Definition of two refactorings -- the conversion from point-wise to pointfree and the removal of guards;
Automatic simplification and transformation of pointfree expressions.
Refactorings in HaRe
In the begining of the project, I spent two weeks in Canterbury developing two refactorings to be part of HaRe:
A snapshot of the source code where these transformations are applied can be found here.
There are also some examples that can be found in the following links:
Allows for the automatic simplification and some program transformation of Haskell code, written in a point-free style. The technical report is available here. The SimpliFree tool is now available in the Uminho Haskell Libraries, that can be downloaded from the CVS repository.
This tool uses Haskell pattern matching to apply rules, by creating an auxiliary file with the functions where the strategies, rules and the pointfree terms are defined. In spite of the fact that this approach meant to be simpler than most approaches where a pattern matching algorithm is defined, the definitions of functions that apply a rule were more complex than expected.
In September, this tool, together with the DrHylo tool and the Pointless library, were presented in IFL'05 workshop.
The presentation "A Framework for Point-free Program Transformation", shown in this workshop, can be found here.
The SimpliFree tool was also presented in the PURe Workshop 2005. The slides can be found here.
Point free Program Transformation This is a project where I, José Proença, worked on since April until October 2005. It was supervised by Jorge Sousa Pinto and Cunha ...
Personal/Ze Web Preferences The following settings are web preferences of the Personal/Ze web. These preferences overwrite the site level preferences in . ...
This is a subscription service to be automatically notified by e mail when topics change in this Personal/Ze web. This is a convenient service, so you do not have ...
Centrum voor Wiskunde en Informatica (CWI) Kruislaan 413 P.O. Box 94079 1090 GB Amsterdam The Netherlands
Introduction
I am currently a PhD student at CWI, working on "Deployment of Distributed Component Based Systems", since January 2006.
Publications
Alcino Cunha, Jorge Sousa Pinto and José Proença, A Framework for Point-free Program Transformation. Revised Proceedings of the 17th International Workshop on Implementation and Application of Functional Languages (IFL'05). To appear in Springer LNCS.
Techical Reports
Tranformações pointwise - point-free, José Proença, DI-PURe-05.02.01, February 2005. (pdf)
Down with Variables, Alcino Cunha, Jorge Sousa Pinto, and José Proença, DI-PURe-05.06.01, June 2005 (pdf)
Point-free Simplification, José Proença, DI-PURe-05.08.01, August 2005. (pdf)
Point-free Program Transformation
Point-free Program Transformation. It consists on the development of a tool that reads a pointfree program annotated with information about the transformations to be made, and tries to apply them. To view the project proposal click here. Detailed information about the project can be found here.
Point free Program Transformation This is a project where I, José Proença, worked on since April until October 2005. It was supervised by Jorge Sousa Pinto and Cunha ...
This is a subscription service to be automatically notified by e mail when topics change in this Personal/Ze web. This is a convenient service, so you do not have ...
Personal/Ze Web Preferences The following settings are web preferences of the Personal/Ze web. These preferences overwrite the site level preferences in . ...
This is a subscription service to be automatically notified by e-mail when topics change in this Personal/Ze web. This is a convenient service, so you do not have to come back and check all the time if something has changed. To subscribe, please add a bullet with your WikiName in alphabetical order to this list:
Each TWiki web has an automatic e-mail notification service that sends you an e-mail with links to all of the topics modified since the last alert.
Users subscribe to email notifications using their WikiName or an alternative email address, and can specify the webs/topics they wish to track using one of these bullet list formats:
three spaces * [ webname . ] wikiName - SMTP mail address three spaces * [ webName . ] wikiName three spaces * SMTP mail address three spaces * SMTP mail address : topics three spaces * [ webname . ] wikiName : topics
In the above examples, topics is a space-separated list of topic names. The user may further customize the specific content they will receive using the following formats:
Specify topics without a Web. prefix
Topics must exist in this web.
Topics may be specified using * wildcards
Each topic may optionally be preceded by a '+' or '-' sign. The '+' sign means "subscribe to this topic" (the same as not putting anything). The '-' sign means "unsubscribe" or "don't send notifications regarding this topic". This allows users to elect to filter out certain topics (and their children, to an arbitrary depth). Topic filters ('-') take precedence over topic includes ('+').
Each topic may optionally be followed by an integer in parentheses, indicating the depth of the tree of children below that topic. Changes in all these children will be detected and reported along with changes to the topic itself. Note This uses the TWiki "Topic parent" feature.
Each topic may optionally be immediately followed by an exclamation mark ! or a question mark ? with no intervening spaces, indicating that the topic (and children if there is a tree depth specifier as well) should be mailed out as complete topics instead of change summaries. ! causes the topic to be mailed every time even if there have been no changes, ? will mail the topic only if there have been changes to it. This only makes sense for subscriptions.
For example:
Subscribe Daisy to all changes to topics in this web.
* daisy.cutter@flowers.com
Subscribe Daisy to all changes in all webs that start with Web.
* daisy.cutter@flowers.com: Web*
Subscribe Daisy to changes to topics starting with Petal, and their immediate children, WeedKillers and children to a depth of 3, and all topics that match start with Pretty and end with Flowers e.g. PrettyPinkFlowers
Subscribe Daisy to the full content of NewsLetter whenever it has changed
* daisy@flowers.com: TWiki.NewsLetter?
Subscribe buttercup to NewsLetter and its immediate children, even if it hasn't changed.
* buttercup@flowers.com: TWiki.NewsLetter! (1)
Subscribe GardenGroup (which includes Petunia) to all changed topics under AllnewsLetters to a depth of 3. Then unsubscribe Petunia from the ManureNewsLetter, which she would normally get as a member of GardenGroup? :
A user may be listed many times in the WebNotify topic. Where a user has several lines in WebNotify that all match the same topic, they will only be notified about changes that topic once (though they will still receive individual mails for news topics).
If a TWiki group is listed for notification, the group will be recursively expanded to the e-mail addresses of all members.
Tip: List names in alphabetical order to make it easier to find the names.
Note for System Administrators: Notification is supported by an add-on to the TWiki kernel called the MailerContrib. See the MailerContrib topic for details of how to set up this service.
Note: If you prefer a news feed, point your reader to WebRss (for RSS 1.0 feeds) or WebAtom? (for ATOM 1.0 feeds). Learn more at WebRssBase and WebAtomBase, respectively.
Related topics:WebChangesAlert, TWikiUsers, TWikiRegistration
The following settings are web preferences of the Personal.Ze web. These preferences overwrite the site-level preferences in TWikiPreferences, and can be overwritten by user preferences (your personal topic, eg: TWikiGuest in the Main web).
Preferences:
Set WEBTITLE = José Proença
List of topics of the TWiki.Personal/Ze web:
Web specific background color: (Pick a lighter one of the StandardColors)
If yes, set SITEMAPLIST to on, do not set NOSEARCHALL, and add the "what" and "use to..." description for the site map. Make sure to list only links that include the name of the web, e.g. Personal/Ze.Topic links.
Set SITEMAPLIST = on
Set SITEMAPWHAT = José Proença
Set SITEMAPUSETO = ...collaborate on
Exclude web from a web="all" search: (Set to on for hidden webs)
Set NOSEARCHALL =
Prevent automatic linking of WikiWords and acronyms (if set to on); link WikiWords (if empty); can be overwritten by web preferences:
Set NOAUTOLINK =
Note: Use the [[...][...]] syntax to link topics in case you disabled WikiWord linking. The <noautolink> ... </noautolink> syntax can be used to prevents links within a block of text.
Default template for new topics and form(s) for this web:
WebTopicEditTemplate? : Default template for new topics in this web. (Site-level is used if topic does not exist)
A preference is defined as: 6 spaces * Set NAME = value Example:
Set WEBBGCOLOR = #FFFFC0
Preferences are used as TWikiVariables by enclosing the name in percent signs. Example:
When you write variable %WEBBGCOLOR% , it gets expanded to #6699FF .
The sequential order of the preference settings is significant. Define preferences that use other preferences first, i.e. set WEBCOPYRIGHT before WIKIWEBMASTER since %WEBCOPYRIGHT% uses the %WIKIWEBMASTER% variable.
You can introduce new preferences variables and use them in your topics and templates. There is no need to change the TWiki engine (Perl scripts).
TWiki's Personal/Ze web
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze
The Personal/Ze web of TWiki. TWiki is a Web-Based Collaboration Platform for the Corporate World.en-usCopyright 2020 by contributing authorsTWiki Administrator [webmaster@di.uminho.pt]The contributing authors of TWikiTWikiDIUM.Personal/Ze
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze
/twiki/pub/Main/LocalLogos/um_eengP.jpgBic
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/Bic
Point free Program Transformation This is a project where I, José Proença, worked on since April until October 2005. It was supervised by Jorge Sousa Pinto and Cunha ... (last changed by JoseBacelarAlmeida)2007-02-12T19:59:23ZJoseBacelarAlmeidaMenuTopics
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/MenuTopics
PURe Bic (last changed by JoseBacelarAlmeida)2007-02-12T19:59:23ZJoseBacelarAlmeidaWebHome
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebHome
Contact Information Name: José Proença Email: Jose.Proenca AT cwi DOT nl Web: http://www.cwi.nl/~proenca Address: Centrum ... (last changed by JoseBacelarAlmeida)2007-02-12T19:59:23ZJoseBacelarAlmeidaWebPreferences
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebPreferences
Personal/Ze Web Preferences The following settings are web preferences of the Personal/Ze web. These preferences overwrite the site level preferences in . ... (last changed by JoseProenca)2005-05-18T11:13:38ZJoseProencaWebNotify
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebNotify
This is a subscription service to be automatically notified by e mail when topics change in this Personal/Ze web. This is a convenient service, so you do not have ... (last changed by PeterThoeny)2004-08-28T07:30:54ZPeterThoenyWebLeftBar
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebLeftBar
Web Web Home Changes Index Search Webs (last changed by ArthurClemens)2004-08-16T05:52:02ZArthurClemensWebRss
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebRss
TWiki's Personal/Ze web /view/Personal/Ze The Personal/Ze web of TWiki. TWiki is a Web Based Collaboration Platform for the Corporate World. (last changed by PeterThoeny)2004-08-16T03:27:17ZPeterThoenyWebSearchAdvanced
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebSearchAdvanced
(last changed by PeterThoeny)2004-01-18T10:52:19ZPeterThoenyWebIndex
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebIndex
See also the faster WebTopicList (last changed by PeterThoeny)2001-11-24T11:41:09ZPeterThoenyWebTopicList
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebTopicList
See also the verbose WebIndex. (last changed by PeterThoeny)2001-11-24T11:40:47ZPeterThoenyWebChanges
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebChanges
(last changed by PeterThoeny)2001-08-16T19:58:33ZPeterThoenyWebSearch
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebSearch
(last changed by PeterThoeny)2001-08-08T05:26:39ZPeterThoeny
This is a project where I, José Proença, worked on since April until October 2005. It was supervised by Jorge Sousa Pinto and Alcino Cunha, who supported and helped me during this time. The proposal is explained in more detailed in here. The results can be found in my internship report, here.
The project consists on two parts:
Definition of two refactorings -- the conversion from point-wise to pointfree and the removal of guards;
Automatic simplification and transformation of pointfree expressions.
Refactorings in HaRe
In the begining of the project, I spent two weeks in Canterbury developing two refactorings to be part of HaRe:
A snapshot of the source code where these transformations are applied can be found here.
There are also some examples that can be found in the following links:
Allows for the automatic simplification and some program transformation of Haskell code, written in a point-free style. The technical report is available here. The SimpliFree tool is now available in the Uminho Haskell Libraries, that can be downloaded from the CVS repository.
This tool uses Haskell pattern matching to apply rules, by creating an auxiliary file with the functions where the strategies, rules and the pointfree terms are defined. In spite of the fact that this approach meant to be simpler than most approaches where a pattern matching algorithm is defined, the definitions of functions that apply a rule were more complex than expected.
In September, this tool, together with the DrHylo tool and the Pointless library, were presented in IFL'05 workshop.
The presentation "A Framework for Point-free Program Transformation", shown in this workshop, can be found here.
The SimpliFree tool was also presented in the PURe Workshop 2005. The slides can be found here.
Point free Program Transformation This is a project where I, José Proença, worked on since April until October 2005. It was supervised by Jorge Sousa Pinto and Cunha ...
Personal/Ze Web Preferences The following settings are web preferences of the Personal/Ze web. These preferences overwrite the site level preferences in . ...
This is a subscription service to be automatically notified by e mail when topics change in this Personal/Ze web. This is a convenient service, so you do not have ...
Centrum voor Wiskunde en Informatica (CWI) Kruislaan 413 P.O. Box 94079 1090 GB Amsterdam The Netherlands
Introduction
I am currently a PhD student at CWI, working on "Deployment of Distributed Component Based Systems", since January 2006.
Publications
Alcino Cunha, Jorge Sousa Pinto and José Proença, A Framework for Point-free Program Transformation. Revised Proceedings of the 17th International Workshop on Implementation and Application of Functional Languages (IFL'05). To appear in Springer LNCS.
Techical Reports
Tranformações pointwise - point-free, José Proença, DI-PURe-05.02.01, February 2005. (pdf)
Down with Variables, Alcino Cunha, Jorge Sousa Pinto, and José Proença, DI-PURe-05.06.01, June 2005 (pdf)
Point-free Simplification, José Proença, DI-PURe-05.08.01, August 2005. (pdf)
Point-free Program Transformation
Point-free Program Transformation. It consists on the development of a tool that reads a pointfree program annotated with information about the transformations to be made, and tries to apply them. To view the project proposal click here. Detailed information about the project can be found here.
Point free Program Transformation This is a project where I, José Proença, worked on since April until October 2005. It was supervised by Jorge Sousa Pinto and Cunha ...
This is a subscription service to be automatically notified by e mail when topics change in this Personal/Ze web. This is a convenient service, so you do not have ...
Personal/Ze Web Preferences The following settings are web preferences of the Personal/Ze web. These preferences overwrite the site level preferences in . ...
This is a subscription service to be automatically notified by e-mail when topics change in this Personal/Ze web. This is a convenient service, so you do not have to come back and check all the time if something has changed. To subscribe, please add a bullet with your WikiName in alphabetical order to this list:
Each TWiki web has an automatic e-mail notification service that sends you an e-mail with links to all of the topics modified since the last alert.
Users subscribe to email notifications using their WikiName or an alternative email address, and can specify the webs/topics they wish to track using one of these bullet list formats:
three spaces * [ webname . ] wikiName - SMTP mail address three spaces * [ webName . ] wikiName three spaces * SMTP mail address three spaces * SMTP mail address : topics three spaces * [ webname . ] wikiName : topics
In the above examples, topics is a space-separated list of topic names. The user may further customize the specific content they will receive using the following formats:
Specify topics without a Web. prefix
Topics must exist in this web.
Topics may be specified using * wildcards
Each topic may optionally be preceded by a '+' or '-' sign. The '+' sign means "subscribe to this topic" (the same as not putting anything). The '-' sign means "unsubscribe" or "don't send notifications regarding this topic". This allows users to elect to filter out certain topics (and their children, to an arbitrary depth). Topic filters ('-') take precedence over topic includes ('+').
Each topic may optionally be followed by an integer in parentheses, indicating the depth of the tree of children below that topic. Changes in all these children will be detected and reported along with changes to the topic itself. Note This uses the TWiki "Topic parent" feature.
Each topic may optionally be immediately followed by an exclamation mark ! or a question mark ? with no intervening spaces, indicating that the topic (and children if there is a tree depth specifier as well) should be mailed out as complete topics instead of change summaries. ! causes the topic to be mailed every time even if there have been no changes, ? will mail the topic only if there have been changes to it. This only makes sense for subscriptions.
For example:
Subscribe Daisy to all changes to topics in this web.
* daisy.cutter@flowers.com
Subscribe Daisy to all changes in all webs that start with Web.
* daisy.cutter@flowers.com: Web*
Subscribe Daisy to changes to topics starting with Petal, and their immediate children, WeedKillers and children to a depth of 3, and all topics that match start with Pretty and end with Flowers e.g. PrettyPinkFlowers
Subscribe Daisy to the full content of NewsLetter whenever it has changed
* daisy@flowers.com: TWiki.NewsLetter?
Subscribe buttercup to NewsLetter and its immediate children, even if it hasn't changed.
* buttercup@flowers.com: TWiki.NewsLetter! (1)
Subscribe GardenGroup (which includes Petunia) to all changed topics under AllnewsLetters to a depth of 3. Then unsubscribe Petunia from the ManureNewsLetter, which she would normally get as a member of GardenGroup? :
A user may be listed many times in the WebNotify topic. Where a user has several lines in WebNotify that all match the same topic, they will only be notified about changes that topic once (though they will still receive individual mails for news topics).
If a TWiki group is listed for notification, the group will be recursively expanded to the e-mail addresses of all members.
Tip: List names in alphabetical order to make it easier to find the names.
Note for System Administrators: Notification is supported by an add-on to the TWiki kernel called the MailerContrib. See the MailerContrib topic for details of how to set up this service.
Note: If you prefer a news feed, point your reader to WebRss (for RSS 1.0 feeds) or WebAtom? (for ATOM 1.0 feeds). Learn more at WebRssBase and WebAtomBase, respectively.
Related topics:WebChangesAlert, TWikiUsers, TWikiRegistration
The following settings are web preferences of the Personal.Ze web. These preferences overwrite the site-level preferences in TWikiPreferences, and can be overwritten by user preferences (your personal topic, eg: TWikiGuest in the Main web).
Preferences:
Set WEBTITLE = José Proença
List of topics of the TWiki.Personal/Ze web:
Web specific background color: (Pick a lighter one of the StandardColors)
If yes, set SITEMAPLIST to on, do not set NOSEARCHALL, and add the "what" and "use to..." description for the site map. Make sure to list only links that include the name of the web, e.g. Personal/Ze.Topic links.
Set SITEMAPLIST = on
Set SITEMAPWHAT = José Proença
Set SITEMAPUSETO = ...collaborate on
Exclude web from a web="all" search: (Set to on for hidden webs)
Set NOSEARCHALL =
Prevent automatic linking of WikiWords and acronyms (if set to on); link WikiWords (if empty); can be overwritten by web preferences:
Set NOAUTOLINK =
Note: Use the [[...][...]] syntax to link topics in case you disabled WikiWord linking. The <noautolink> ... </noautolink> syntax can be used to prevents links within a block of text.
Default template for new topics and form(s) for this web:
WebTopicEditTemplate? : Default template for new topics in this web. (Site-level is used if topic does not exist)
A preference is defined as: 6 spaces * Set NAME = value Example:
Set WEBBGCOLOR = #FFFFC0
Preferences are used as TWikiVariables by enclosing the name in percent signs. Example:
When you write variable %WEBBGCOLOR% , it gets expanded to #6699FF .
The sequential order of the preference settings is significant. Define preferences that use other preferences first, i.e. set WEBCOPYRIGHT before WIKIWEBMASTER since %WEBCOPYRIGHT% uses the %WIKIWEBMASTER% variable.
You can introduce new preferences variables and use them in your topics and templates. There is no need to change the TWiki engine (Perl scripts).
TWiki's Personal/Ze web
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze
The Personal/Ze web of TWiki. TWiki is a Web-Based Collaboration Platform for the Corporate World.en-usCopyright 2020 by contributing authorsTWiki Administrator [webmaster@di.uminho.pt]The contributing authors of TWikiTWikiDIUM.Personal/Ze
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze
/twiki/pub/Main/LocalLogos/um_eengP.jpgBic
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/Bic
Point free Program Transformation This is a project where I, José Proença, worked on since April until October 2005. It was supervised by Jorge Sousa Pinto and Cunha ... (last changed by JoseBacelarAlmeida)2007-02-12T19:59:23ZJoseBacelarAlmeidaMenuTopics
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/MenuTopics
PURe Bic (last changed by JoseBacelarAlmeida)2007-02-12T19:59:23ZJoseBacelarAlmeidaWebHome
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebHome
Contact Information Name: José Proença Email: Jose.Proenca AT cwi DOT nl Web: http://www.cwi.nl/~proenca Address: Centrum ... (last changed by JoseBacelarAlmeida)2007-02-12T19:59:23ZJoseBacelarAlmeidaWebPreferences
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebPreferences
Personal/Ze Web Preferences The following settings are web preferences of the Personal/Ze web. These preferences overwrite the site level preferences in . ... (last changed by JoseProenca)2005-05-18T11:13:38ZJoseProencaWebNotify
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebNotify
This is a subscription service to be automatically notified by e mail when topics change in this Personal/Ze web. This is a convenient service, so you do not have ... (last changed by PeterThoeny)2004-08-28T07:30:54ZPeterThoenyWebLeftBar
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebLeftBar
Web Web Home Changes Index Search Webs (last changed by ArthurClemens)2004-08-16T05:52:02ZArthurClemensWebRss
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebRss
TWiki's Personal/Ze web /view/Personal/Ze The Personal/Ze web of TWiki. TWiki is a Web Based Collaboration Platform for the Corporate World. (last changed by PeterThoeny)2004-08-16T03:27:17ZPeterThoenyWebSearchAdvanced
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebSearchAdvanced
(last changed by PeterThoeny)2004-01-18T10:52:19ZPeterThoenyWebIndex
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebIndex
See also the faster WebTopicList (last changed by PeterThoeny)2001-11-24T11:41:09ZPeterThoenyWebTopicList
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebTopicList
See also the verbose WebIndex. (last changed by PeterThoeny)2001-11-24T11:40:47ZPeterThoenyWebChanges
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebChanges
(last changed by PeterThoeny)2001-08-16T19:58:33ZPeterThoenyWebSearch
http://wiki.di.uminho.pt/twiki/bin/view/Personal/Ze/WebSearch
(last changed by PeterThoeny)2001-08-08T05:26:39ZPeterThoeny