|
Haskell and the Linspire Toolchain
Speaker: Clifford Beshers
Abstract:
Linspire, Inc. has used functional programming since its inception in
2001, beginning with extensive use of O'Caml, with a steady shift to
Haskell as its implementations and libraries have matured. Hardware
detection, software packaging and CGI web page generation are all
areas where we have used functional programming extensively.
Haskell's feature set lets us replace much of our use of little
languages (e.g., bash or awk) and two-level languages (C or C++ bound
to an interpreted language), allowing for faster development, better
code sharing and ultimately faster implementations. Above all, we
value static type checking for minimizing runtime errors in
applications that run in unknown environments and for wrapping legacy
programs in strongly typed functions to ensure that we pass valid arguments.
Building a Startup with Standard ML
Speaker: Steve Sims
Abstract:
Reactive Systems, Inc. (RSI) was founded in 1999 with the goal of
developing and marketing tools that help engineers improve software
quality while decreasing software development costs. RSI launched
its Reactis testing and validation package in 2002 and has
subsequently built a customer base that includes over 30 major
automotive and aerospace companies located around the world. In
this presentation, we discuss how the use of Standard ML (SML) has
proved to be a key factor in the success of RSI. The use of SML as
the primary implementation language for Reactis has yielded
substantial productivity improvements that enabled a small team to
develop, deploy, enhance and maintain a very complex product. In
addition to its use in Reactis, RSI leverages SML to build the
company intranet (which automates a number of important business
processes), to build its public website, and to implement an
extensive automated regression test suite for Reactis. We will also
describe some more intangible benefits such as the role that
pervasive SML use has played in attracting and retaining highly
productive employees.
Scheme in Space
Speaker: Richard Cleis
Abstract:
The Starfire Optical Range is an Air Force Research Laboratory engaged in
Atmospheric Research near Albuquerque, New Mexico. Since the late 1980's,
nearly all systems have been controlled by C programs, an acceptable approach
until the increased complexity and variety of experiments began to overwhelm
the programmers. In early 2003, we collected an image of the Space Shuttle
Columbia as it passed through New Mexico on its way to landing in Florida.
The flight turned out to be Columbia's last, and the image played a
significant role in the aftermath. However, new software for such a special
case needed to be developed (mostly overnight) yet was not completed in
time. This shortcoming severely limited the performance of the system that
tracked the Shuttle and collected the images. A search for a better way than
programming in C was immediately sought, eventually leading to Scheme.
In this presentation we use the Shuttle incident to show how Scheme could have
significantly improved our development productivity and ultimately increased
systems performance. We also describe the technical background of precision
telescope systems, the set-up of our new Scheme-enhanced software, emerging
programming techniques, and the social obstacles that affect the
implementation of languages which aren't C++ or Java.
Caml Trader: Adventures of a Functional Programmer on Wall Street
Speaker: Yaron Minsky
Abstract:
Jane Street Capital is a proprietary trading company in Manhattan that
has recently shifted to using OCaml as its primary development language,
both for quantitative research and for building of high-performance
trading systems and infrastructure. This talk will discuss how the
initial decision was made and the resulting changes to our development
process and our business.
Why Functional Programming Matters to Credit Suisse
Speaker: Howard Mansell
Abstract:
We will give a brief overview of the activities of the quantitative modeling
group at Credit Suisse (an investment bank), and the kinds of systems we
build. A significant number of components of our system can be implemented
rather naturally using a pure functional language. In our presentation, we
will show why this is the case, and discuss the pros and cons of using Haskell
for this task - focusing more on a system's than a language point of view.
Analysis of Microprocessor Components with a Functional Language-based
Formal Verification Toolbox
Speaker: Roope Kaivola
Abstract:
Formal verification of microprocessor components has been pursued in
various forms for roughly a decade now in Intel. One of the most succesful
approaches in the area is based on a verification framework which combines
a strongly typed lazy functional programming language reFLect with
built-in symbolic circuit simulation and symbolic evaluation facilities
for Booleans. Both the specifications against which circuit behaviours are
compared, and the routines performing the analysis are coded in reFLect,
and the verification effort typically involves significant software
engineering issues. I will discuss the verification of floating-point
arithmetic units in recent Intel processors against IEEE floating-point
standard in this framework, concentrating particularly in the coding
aspects related to symbolic evaluation.
Bringing Declarative Programming into a Commercial Tool for Developing
Integrated Circuits
Speaker: Rishiyur Nikhil
Abstract:
Developing a modern integrated circuit (ASIC or FPGA) is an enormously
expensive process involving specification, modeling (to choose and fix
the architecture), design (to describe what will become silicon) and
verification (to ensure that it meets the specs), all before actually
committing anything to silicon (where the cost of a failure can be
tens of millions of dollars). Bluespec, Inc. is a three year-old
company that provides language facilities, methodologies, and tools
for this purpose, within the framework of the IEEE standard languages
SystemVerilog and SystemC, but borrowing ideas heavily from Term
Rewriting Systems and functional programming languages like Haskell.
In this talk, after a brief technical overview to set the context, we
will describe our tactics and strategies, and the challenges we face,
in introducing declarative programming ideas into this field, both
externally (convincing customers about the value of these ideas) and
internally (using Haskell for our tool implementation).
Betting on Functional Programming and Winning
Speaker: Erik Stenman
Abstract:
In Sweden, as in many countries, consumers are still afraid to use credit
cards on-line. This is not only a question of security, but mainly a social
phenomenon, a question of trust. How will they know that they get what they
pay for? Also, most consumers, at least when it comes to buying clothes, want
to see, and perhaps even try, the merchandise before they pay for it. But for
this to be possible over the Internet the on-line shop has to trust the
consumer to pay after the delivery.
Here we have a classic security problem, how do we get two parties that don't
know each other to trust each other? There is of course a simple classical
solution to the problem: introduce a mediator that both parties trust. This
can still be a problem, since it is not easy to find a mediator that two
random parties both trusts. As we shall see, the problem is actually a bit
easier, since with the right solution, we only need to establish trust in one
direction.
This is where Kreditor comes into the picture. Kreditor brings old and proven
business methods like invoicing and factoring to the new Internet era. With
Kreditor's services the consumer can get the merchandise first and pay later,
while the on-line shop can put its trust to Kreditor knowing that it will get
payed. This way the customer takes no risk, since he only pays if he is
satisfied with the merchandise.
Providing timely credit services on-line requires a secure, robust, error
free, high availability system. Kreditor's solution is fascinating in that it
is a financial application completely written in Erlang.
In this talk I will present what it takes to implement such a system, and the
benefits and problems of using Erlang, but mainly I will talk about how and
why Erlang was chosen for the task.
August 15th 2006
|
|