Graphical type inference: A graph grammar definition
We present a graph grammar based type inference system for a totally graphic language inspired in the data flow view of lazy functional programs. NiMo (Nets in Motion) can be seen as a graphic equivalent to Haskell that acts as an on-line tracer and debugger. The user not only sees the results but a...
| Authors: | , |
|---|---|
| Format: | report |
| Publication Date: | 2007 |
| Country: | España |
| Institution: | Universitat Politècnica de Catalunya (UPC) |
| Repository: | UPCommons. Portal del coneixement obert de la UPC |
| Language: | English |
| OAI Identifier: | oai:upcommons.upc.edu:2117/86236 |
| Online Access: | https://hdl.handle.net/2117/86236 |
| Access Level: | Open access |
| Keyword: | Visual languages Graph grammars Type inference Process networks Functional languages Àrees temàtiques de la UPC::Informàtica::Programació Àrees temàtiques de la UPC::Informàtica::Llenguatges de programació |
| id |
ES_43387ec11294b7c8f136d846a2d128cf |
|---|---|
| oai_identifier_str |
oai:upcommons.upc.edu:2117/86236 |
| network_acronym_str |
ES |
| network_name_str |
España |
| repository_id_str |
|
| spelling |
Graphical type inference: A graph grammar definitionClérici Martínez, Silvia InésZoltan Torres, Ana CristinaVisual languagesGraph grammarsType inferenceProcess networksFunctional languagesÀrees temàtiques de la UPC::Informàtica::ProgramacióÀrees temàtiques de la UPC::Informàtica::Llenguatges de programacióWe present a graph grammar based type inference system for a totally graphic language inspired in the data flow view of lazy functional programs. NiMo (Nets in Motion) can be seen as a graphic equivalent to Haskell that acts as an on-line tracer and debugger. The user not only sees the results but also the way they are calculated according to an understandable model and can interrupt the execution at any point, change data, processes and/or process activation, undo steps, and also execute incomplete programs. Type inference is incremental; during the net edition (construction or modification) only type safe connections are allowed. The user visualises the type information evolution and, in case of type error, can identify where and why it happened. The NiMo type system, though similar, has significant differences with systems in functional languages due to the data flow ingredient. It needs to cope with processes with no entries and zero or more that one output and therefore the process type is a generalization of functional types. We present the notion of non-structural type unification, the elements for modelling graphic type inference, and the correspondence with the classical type inference approach. Construction and execution of NiMo programs are fully defined via an attributed graph grammar. In the previous version type information was incomplete and static type inference was partial in presence of polymorphism. Therefore type inconsistent nets could be executed. Here we present the type descriptor graphs and the graph grammar definition of the complete static type inference system. The grammar has been implemented and successfully tested using AGG as the graph transformation system.20072007-06-0120162016-04-27reporthttp://purl.org/coar/resource_type/c_93fcVoRhttp://purl.org/coar/version/c_970fb48d4fbd8a85info:eu-repo/semantics/reportapplication/pdfhttps://hdl.handle.net/2117/86236reponame:UPCommons. Portal del coneixement obert de la UPCinstname:Universitat Politècnica de Catalunya (UPC)Inglésengopen accesshttp://purl.org/coar/access_right/c_abf2info:eu-repo/semantics/openAccessoai:upcommons.upc.edu:2117/862362026-05-27T15:37:01Z |
| dc.title.none.fl_str_mv |
Graphical type inference: A graph grammar definition |
| title |
Graphical type inference: A graph grammar definition |
| spellingShingle |
Graphical type inference: A graph grammar definition Clérici Martínez, Silvia Inés Visual languages Graph grammars Type inference Process networks Functional languages Àrees temàtiques de la UPC::Informàtica::Programació Àrees temàtiques de la UPC::Informàtica::Llenguatges de programació |
| title_short |
Graphical type inference: A graph grammar definition |
| title_full |
Graphical type inference: A graph grammar definition |
| title_fullStr |
Graphical type inference: A graph grammar definition |
| title_full_unstemmed |
Graphical type inference: A graph grammar definition |
| title_sort |
Graphical type inference: A graph grammar definition |
| dc.creator.none.fl_str_mv |
Clérici Martínez, Silvia Inés Zoltan Torres, Ana Cristina |
| author |
Clérici Martínez, Silvia Inés |
| author_facet |
Clérici Martínez, Silvia Inés Zoltan Torres, Ana Cristina |
| author_role |
author |
| author2 |
Zoltan Torres, Ana Cristina |
| author2_role |
author |
| dc.subject.none.fl_str_mv |
Visual languages Graph grammars Type inference Process networks Functional languages Àrees temàtiques de la UPC::Informàtica::Programació Àrees temàtiques de la UPC::Informàtica::Llenguatges de programació |
| topic |
Visual languages Graph grammars Type inference Process networks Functional languages Àrees temàtiques de la UPC::Informàtica::Programació Àrees temàtiques de la UPC::Informàtica::Llenguatges de programació |
| description |
We present a graph grammar based type inference system for a totally graphic language inspired in the data flow view of lazy functional programs. NiMo (Nets in Motion) can be seen as a graphic equivalent to Haskell that acts as an on-line tracer and debugger. The user not only sees the results but also the way they are calculated according to an understandable model and can interrupt the execution at any point, change data, processes and/or process activation, undo steps, and also execute incomplete programs. Type inference is incremental; during the net edition (construction or modification) only type safe connections are allowed. The user visualises the type information evolution and, in case of type error, can identify where and why it happened. The NiMo type system, though similar, has significant differences with systems in functional languages due to the data flow ingredient. It needs to cope with processes with no entries and zero or more that one output and therefore the process type is a generalization of functional types. We present the notion of non-structural type unification, the elements for modelling graphic type inference, and the correspondence with the classical type inference approach. Construction and execution of NiMo programs are fully defined via an attributed graph grammar. In the previous version type information was incomplete and static type inference was partial in presence of polymorphism. Therefore type inconsistent nets could be executed. Here we present the type descriptor graphs and the graph grammar definition of the complete static type inference system. The grammar has been implemented and successfully tested using AGG as the graph transformation system. |
| publishDate |
2007 |
| dc.date.none.fl_str_mv |
2007 2007-06-01 2016 2016-04-27 |
| dc.type.none.fl_str_mv |
report http://purl.org/coar/resource_type/c_93fc VoR http://purl.org/coar/version/c_970fb48d4fbd8a85 |
| dc.type.openaire.fl_str_mv |
info:eu-repo/semantics/report |
| format |
report |
| dc.identifier.none.fl_str_mv |
https://hdl.handle.net/2117/86236 |
| url |
https://hdl.handle.net/2117/86236 |
| dc.language.none.fl_str_mv |
Inglés eng |
| language_invalid_str_mv |
Inglés |
| language |
eng |
| dc.rights.none.fl_str_mv |
open access http://purl.org/coar/access_right/c_abf2 |
| dc.rights.openaire.fl_str_mv |
info:eu-repo/semantics/openAccess |
| rights_invalid_str_mv |
open access http://purl.org/coar/access_right/c_abf2 |
| eu_rights_str_mv |
openAccess |
| dc.format.none.fl_str_mv |
application/pdf |
| dc.source.none.fl_str_mv |
reponame:UPCommons. Portal del coneixement obert de la UPC instname:Universitat Politècnica de Catalunya (UPC) |
| instname_str |
Universitat Politècnica de Catalunya (UPC) |
| reponame_str |
UPCommons. Portal del coneixement obert de la UPC |
| collection |
UPCommons. Portal del coneixement obert de la UPC |
| repository.name.fl_str_mv |
|
| repository.mail.fl_str_mv |
|
| _version_ |
1869407008568901633 |
| score |
15,301603 |