All tests from this benchmark has been designed for working with arrays of Java primitive types. On such tests JVM optimizer does very good job. But Java is really terrible language, if you need to optimize data representation.
Java performance vs C++ (preferrably with Boehm GC) looks very bad in working with large complex data structures. Probably even on standard sets C++ will be better than Java. If data representation was tuned for speific application needs, gap between C++ and C++ should increase.
and more papers about Kleisli DBMS - for example: http://sdmc.lit.org.sg:8080/~limsoon/psZ /bntwtcs95.pdf.gz
on http://sdmc.lit.org.sg:8080/~limsoon/limsoonpapers.html
PS: Comprehension syntax is syntax like the:
[ a*b | a - list1, b - list2]
Comprehesions have a close correspondence with monads. In Haskell (before Haskell-98) comprehension actually was the syntax sugar for monadic operators -
do
a - list1
b - list2
return a*b
is monadic equivalent of the previous expression (it's really works and does the same thing - Haskell lists are Monad's) and is very natural and flexible syntax for database queries (expamples can be found in "Comprehenstion syntax" paper). Underlying semantic also interesting.
This is because other, may be even more interesting, property of Monads: Monad is the formalisation of "collection" abstraction. List (threated as Monad) can be viewed as set of states of nondeterministic "world" with many "parallel" and forking "thread's of execution".
In another interesting paper about monads application "Monadic parser combinators" (see on http://www.cs.nott.ac.uk/~gmh/bib.html, this page also contains many other functional stuff), monads are used in this way for backtracking implementation in parser.
In theory, posthumous copyright can provide to author some payment before his death: He can sell his posthumouse rights. For example, Tolkien got some payment for his rights for filming of the LotR.
Java performance vs C++ (preferrably with Boehm GC) looks very bad in working with large complex data structures. Probably even on standard sets C++ will be better than Java. If data representation was tuned for speific application needs, gap between C++ and C++ should increase.
There is interesting connection exists beetwen monads, comprehension syntax and databases & SQL. For example, see the:
/ blstwsigm odrecord94.ps.gz
Z /bntwtcs95 .pdf.gz
s .html
"Comprehension Syntax"
http://sdmc.lit.org.sg:8080/~limsoon/psZ
and more papers about Kleisli DBMS - for example:
http://sdmc.lit.org.sg:8080/~limsoon/ps
on http://sdmc.lit.org.sg:8080/~limsoon/limsoonpaper
PS: Comprehension syntax is syntax like the:
[ a*b | a - list1, b - list2]
Comprehesions have a close correspondence with monads. In Haskell (before Haskell-98) comprehension actually was the syntax sugar for monadic operators -
do
a - list1
b - list2
return a*b
is monadic equivalent of the previous expression (it's really works and does the same thing - Haskell lists are Monad's) and is very natural and flexible syntax for database queries (expamples can be found in "Comprehenstion syntax" paper). Underlying semantic also interesting.
This is because other, may be even more interesting, property of Monads: Monad is the formalisation of "collection" abstraction. List (threated as Monad) can be viewed as set of states of nondeterministic "world" with many "parallel" and forking "thread's of execution".
In another interesting paper about monads application "Monadic parser combinators" (see on http://www.cs.nott.ac.uk/~gmh/bib.html, this page also contains many other functional stuff), monads are used in this way for backtracking implementation in parser.
In theory, posthumous copyright can provide to author some payment before his death: He can sell his posthumouse rights. For example, Tolkien got some payment for his rights for filming of the LotR.
One important point have been forgotten: should have a reliable search facility