<span>Hi all,</span><div><br></div><div>This is just a reminder of tomorrow&#39;s talk on &quot;Productivity tools for a legacy interpreted programming language&quot; which will take place in mb220 from 2pm to 3pm.</div><div><br></div><div>Best,</div><div>Luca<br><br><div class="gmail_quote"><div dir="ltr">On Tue, 7 Feb 2017, 15:48 Luca Rossi, &lt;<a href="mailto:l.rossi@aston.ac.uk">l.rossi@aston.ac.uk</a>&gt; wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr" class="gmail_msg">Dear all,<div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">The next talk in the CS seminars series will take place next Tuesday (14/02).</div><div class="gmail_msg">Dr. Anakreontas Mentis will give a talk titled &quot;Productivity tools for a legacy interpreted programming language&quot; in MB220 from 2pm to 3pm.</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Best,</div><div class="gmail_msg">Luca</div><div class="gmail_msg"><br class="gmail_msg"></div><div class="gmail_msg">Abstract</div><div class="gmail_msg">Phoebus Software Ltd is a leading provider of software for the management of lending and savings at financial institutions. Phoebus has been able to produce high quality reliable software fast with the help of their in-house programming language called P4. P4 has features for rapid development of complex form-based database-backed applications. However, P4 was designed 20 years ago and lacks tools present in modern programming languages such as code checkers and IDEs. Moreover, P4 is interpreted and supports code changes on-the-fly when deployed. This dynamic nature of the language has become an obstacle as the code base has grown very large. We describe how we improved the definition of the P4 language and produced a validator that, when integrated with an IDE, identifies various classes of programming defects while editing a P4 program. In particular, we have added a type system to P4 and defined finite-state models for the database interaction. We also give an overview of the technology used “under the hood”, namely the Haskell functional programming language, the Parsec parser library and the Hoopl library for control flow analysis.</div></div><div dir="ltr" class="gmail_msg"><div class="gmail_msg"><div class="gmail_msg"><br class="gmail_msg"></div>-- <br class="gmail_msg"><div class="m_1562358529773135170gmail_signature gmail_msg"><div dir="ltr" class="gmail_msg"><div class="gmail_msg"><div dir="ltr" class="gmail_msg"><div class="gmail_msg"><div dir="ltr" class="gmail_msg"><div class="gmail_msg"><div dir="ltr" class="gmail_msg"><div class="gmail_msg"><div dir="ltr" class="gmail_msg"><div class="gmail_msg"><div dir="ltr" class="gmail_msg"><div class="gmail_msg"><div dir="ltr" class="gmail_msg"><div dir="ltr" class="gmail_msg"><div dir="ltr" class="gmail_msg">Luca Rossi</div><div dir="ltr" class="gmail_msg"><br class="gmail_msg"></div><div dir="ltr" class="gmail_msg">Lecturer in Computer Science</div><div dir="ltr" class="gmail_msg">School of Engineering and Applied Science</div><div dir="ltr" class="gmail_msg">Aston University</div><div dir="ltr" class="gmail_msg">Web: <a href="http://www.cs.bham.ac.uk/~rossil/" class="gmail_msg" target="_blank">http://www.cs.aston.ac.uk/~rossil/</a></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div></div>
</div></div></blockquote></div></div>