{"id":140,"date":"2017-04-19T20:22:03","date_gmt":"2017-04-19T20:22:03","guid":{"rendered":"https:\/\/dei.fe.up.pt\/specs\/?p=140"},"modified":"2021-05-18T11:13:57","modified_gmt":"2021-05-18T11:13:57","slug":"amadeus-aspects-and-compiler-optimizations-for-matlab-system-development","status":"publish","type":"post","link":"https:\/\/dei.fe.up.pt\/compsysold\/2017\/04\/19\/amadeus-aspects-and-compiler-optimizations-for-matlab-system-development\/","title":{"rendered":"Amadeus: Aspects And Compiler Optimizations For Matlab System Development"},"content":{"rendered":"<p>Jo\u00e3o Manuel Paiva Cardoso, Faculdade de Engenharia da Universidade do Porto (FE\/UP). \u20ac106,000.<br \/>\n<a href=\"http:\/\/alfa.fct.mctes.pt\/apoios\/projectos\/consulta\/vglobal_projecto?idProjecto=70271&amp;idElemConcurso=895\" rel=\"nofollow\">PTDC\/EIA\/70271\/2006<\/a><\/p>\n<h2>Information<\/h2>\n<p><strong>Main Research Area:<\/strong> Computer Engineering<\/p>\n<div>\n<p><strong>Secondary Research Area:<\/strong> Electrical Engineering &#8211; Electronics and Computers<\/p>\n<p><strong>Keywords:<\/strong><br \/>\nCompiler optimizations<br \/>\nAspects<br \/>\nMATLAB<br \/>\nSystem Engineering<\/p>\n<hr \/>\n<h2>Funding<\/h2>\n<p>106,000.00 \u20ac<\/p>\n<hr \/>\n<h2>Institutions<\/h2>\n<\/div>\n<p><strong>Main Contractor<\/strong><br \/>\nFaculdade de Engenharia da Universidade do Porto (FE\/UP)<\/p>\n<div><strong>Participating Institutions<\/strong><br \/>\nInstituto de Desenvolvimento de Novas Tecnologias (UNINOVA\/FCT\/UNL)<br \/>\nFunda\u00e7\u00e3o da Faculdade de Ci\u00eancias e Tecnologia (FFCT\/FCT\/UNL)<br \/>\nUniversidade do Minho (UM)<\/div>\n<div><strong>Main Research Unit<\/strong><br \/>\nInstituto de Engenharia de Sistemas e Computadores, Investiga\u00e7\u00e3o e Desenvolvimento em Lisboa (INESC ID\/INESC\/IST\/UTL)<\/p>\n<div><\/div>\n<hr \/>\n<h2>Team<\/h2>\n<div><strong>Principal Investigator<\/strong><br \/>\nJo\u00e3o Manuel Paiva Cardoso<br \/>\nJo\u00e3o Alexandre Baptista Vieira Saraiva<br \/>\nJo\u00e3o Miguel Lobo Fernandes<br \/>\nLuis Filipe dos Santos Gomes<br \/>\nMiguel Jorge Tavares Pessoa Monteiro<br \/>\nRui Manuel Carvalho Pais<br \/>\nAnik\u00f3 Katalin Horv\u00e1th da Costa<br \/>\nPedro Nuno Ferreira da Rosa da Cruz Diniz<br \/>\nPedro Miguel Ribeiro Martins<br \/>\nTiago Diogo Ribeiro de Carvalho<\/p>\n<hr \/>\n<h2>Abstract<\/h2>\n<p>MATLAB is a high-level, interpreted, domain-specific language (DSL), mainly based on matrix data types and operations on them. The MATLAB environment, the richness of the language, the existence of domain-oriented packages, and the associated software tools, make the language one of the preferred choices to model and simulate complex systems (it is widely used in scientific computing, control systems, signal and image processing, system engineering, etc.). More than 800 books dedicated to MATLAB attest to its wide adoption.<\/p>\n<p>Suitable MATLAB properties include no need to declare variables (floating-point double precision representation is the default data type), operator overloading, function polymorphism and dynamic type specialisation. However, tasks such as exploiting non-uniform fixed-point representations, monitoring certain variables during a timing window, or including handlers to watch specific behaviours are extremely cumbersome, error-prone and tedious. Each time these features are necessary, invasive changes on the original code, as well as insertion of new code need to be performed. This problem is felt in other implementation issues as well, since MATLAB can be regarded as a specification rather than an implementation language. Other open issues are related to efficient automatic synthesis of MATLAB specifications to a software language or a hardware description language.<\/p>\n<p>This project addresses the enrichment of MATLAB with aspect-oriented extensions to include additional information (e.g., type and shape of variables) and to experiment different implementation features (e.g., different implementations for the same function, certain type binding for variables, etc.). The proposed aspects aim to configure the low-level data representation of real variables and expressions, to specifically-tailored data representations that benefit from a more efficient support by target computing engines (e.g., fixed- instead of floating-point representations). The approach also aims to help developers to introduce handlers (code triggered when certain conditions may occur and with a richer functionality than assertions) and monitoring features, and to configure function implementations. We believe aspect-oriented extensions will help system modelling, simulation, and exploration of features conceiving system implementation. One of the advantages is related to the fact that a single version of the specification can be used throughout the entire development cycle rather than maintaining multiple versions, as is currently the case. The project includes research on:<\/p>\n<ul>\n<li>aspect mining on MATLAB specifications to identify crosscutting concerns in a system, to enable migration of existing MATLAB specifications to aspect-oriented ones;<\/li>\n<li>type inference analysis and memory minimization techniques to generate high-performance code and to achieve highly\u2013abstract aspects.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Jo\u00e3o Manuel Paiva Cardoso, Faculdade de Engenharia da Universidade do Porto (FE\/UP). \u20ac106,000. PTDC\/EIA\/70271\/2006 Information Main Research Area: Computer Engineering Secondary Research Area: Electrical Engineering &#8211; Electronics and Computers Keywords: Compiler optimizations Aspects MATLAB System Engineering Funding 106,000.00 \u20ac Institutions Main Contractor Faculdade de Engenharia da Universidade do Porto (FE\/UP) Participating Institutions Instituto de Desenvolvimento [&hellip;]<\/p>\n","protected":false},"author":41,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-140","post","type-post","status-publish","format-standard","hentry","category-project"],"_links":{"self":[{"href":"https:\/\/dei.fe.up.pt\/compsysold\/wp-json\/wp\/v2\/posts\/140","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dei.fe.up.pt\/compsysold\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dei.fe.up.pt\/compsysold\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dei.fe.up.pt\/compsysold\/wp-json\/wp\/v2\/users\/41"}],"replies":[{"embeddable":true,"href":"https:\/\/dei.fe.up.pt\/compsysold\/wp-json\/wp\/v2\/comments?post=140"}],"version-history":[{"count":1,"href":"https:\/\/dei.fe.up.pt\/compsysold\/wp-json\/wp\/v2\/posts\/140\/revisions"}],"predecessor-version":[{"id":141,"href":"https:\/\/dei.fe.up.pt\/compsysold\/wp-json\/wp\/v2\/posts\/140\/revisions\/141"}],"wp:attachment":[{"href":"https:\/\/dei.fe.up.pt\/compsysold\/wp-json\/wp\/v2\/media?parent=140"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dei.fe.up.pt\/compsysold\/wp-json\/wp\/v2\/categories?post=140"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dei.fe.up.pt\/compsysold\/wp-json\/wp\/v2\/tags?post=140"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}