Difference between revisions of "Seminar/2008-04-30"
From LRDE
(Created page with "{{SeminarHeader
| id = 2008-04-30
| date = Mercredi 30 avril 2008
| schedule = 14h-17h
| location = Amphi 4
}}
{{Talk
| id = 2008-04-30
| abstract = Mouldable programm...") |
|||
(3 intermediate revisions by the same user not shown) | |||
Line 31: | Line 31: | ||
| title = Mouldable Programming |
| title = Mouldable Programming |
||
| urls = http://www.ii.uib.no/saga/ |
| urls = http://www.ii.uib.no/saga/ |
||
− | }} |
+ | }}{{Talk |
− | {{Talk |
||
| id = 2008-04-30 |
| id = 2008-04-30 |
||
| abstract = Writing code in an abstract, high-level style can cut development time |
| abstract = Writing code in an abstract, high-level style can cut development time |
Latest revision as of 19:03, 26 March 2014
Mercredi 30 avril 2008, 14h-17h, Amphi 4
Mouldable Programming
- Documents
- mp.pdf
Magne Haveraaen, Institutt for Informatikk, Universitetet i Bergen, Norway
Mouldable programming is about looking at programs as mouldable
fragments of code, not as the static, brittle syntax software often
turns out to be. Some simple examples follow. The notation for calling
a method "push" which adds an element "E" to a stack "S" can be OO or
static method style, it can modify "S" or return the new stack
etc. Can we simplify usage to just one form, and mould it to the
actual call? A function which breaks down for some input can signal
this using return flags, special return values, or exceptions, to name
some common ways. Can we abstract over this, and mould to the relevant
error handling technique? Often we need to do run-time checking of
arguments, e.g., array indexing bounds, forcing us to introduce lots
of code to deal with the unwanted cases. Can we use mouldable ideas to
simplify the code? In the presentation, we will elaborate on such
examples, discussing how we can free us from awkward syntactic
constraints.
Magne Haveraaen is a professor of computer science with an interest
for programming technology: the theory and pragmatics of writing
code. He investigates this in the context of the Sophus software
library, a coordinate-free numerics library written in C++.
http://www.ii.uib.no/saga/
High-Level Abstractions and Optimization
Anya Helene Bagge, Institutt for Informatikk, Universitetet i Bergen, Norway
Writing code in an abstract, high-level style can cut development time
and make code more maintainable and easier to reason about - but at
the cost of lower run-time performance. For performance-critical
applications, such as in numerical programming, this can render modern
abstraction techniques infeasible. Fortunately, code that is easy for
humans to reason about is also easier to reason about
automatically. We're studying different abstraction mechanisms and
generative programming techniques, as well as optimization techniques
to produce efficient code for them. As an example, basic element-wise
operations on arrays may be expressed in terms of high-level
operations, which may be automatically combined in order to increase
performance. I will present some of the things we've been working on
so far, and some of the ideas we have for the future.
Anya Helene Bagge is a research fellow at the University of Bergen,
Norway. Her research interests include programming language design,
program transformation, parallel computer architectures and program
optimization.
http://www.ii.uib.no/~anya/