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...

Full description

Bibliographic Details
Authors: Clérici Martínez, Silvia Inés, Zoltan Torres, Ana Cristina
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