2 research outputs found
Haskell's overlooked object system
Haskell provides type-class-bounded and parametric polymorphism as opposed to
subtype polymorphism of object-oriented languages such as Java and OCaml. It is
a contentious question whether Haskell 98 without extensions, or with common
extensions, or with new extensions can fully support conventional
object-oriented programming with encapsulation, mutable state, inheritance,
overriding, statically checked implicit and explicit subtyping, and so on. We
systematically substantiate that Haskell 98, with some common extensions,
supports all the conventional OO features plus more advanced ones, including
first-class lexically scoped classes, implicitly polymorphic classes, flexible
multiple inheritance, safe downcasts and safe co-variant arguments. Haskell
indeed can support width and depth, structural and nominal subtyping. We
address the particular challenge to preserve Haskell's type inference even for
objects and object-operating functions. The OO features are introduced in
Haskell as the OOHaskell library. OOHaskell lends itself as a sandbox for typed
OO language design.Comment: 79 pages; software available at
http://homepages.cwi.nl/~ralf/OOHaskell
Comparative Studies of 10 Programming Languages within 10 Diverse Criteria -- a Team 7 COMP6411-S10 Term Report
There are many programming languages in the world today.Each language has
their advantage and disavantage. In this paper, we will discuss ten programming
languages: C++, C#, Java, Groovy, JavaScript, PHP, Schalar, Scheme, Haskell and
AspectJ. We summarize and compare these ten languages on ten different
criterion. For example, Default more secure programming practices, Web
applications development, OO-based abstraction and etc. At the end, we will
give our conclusion that which languages are suitable and which are not for
using in some cases. We will also provide evidence and our analysis on why some
language are better than other or have advantages over the other on some
criterion.Comment: 139 pages, programming languages comparison table