Walter Bright escribió:
Jari-Matti Mäkelä wrote:
bearophile wrote:
- OOP: Scala supports dynamic OOP optimizations unlike D (unless a VM
is used).
Do you mean knowing a class or virtual method has no descendants? Sure,
you need to know the whole program to do that, or just declare it as final.
I think the standard name is "adaptive optimization":
http://en.wikipedia.org/wiki/Adaptive_optimization
"Adaptive optimization is a technique in computer science that performs
dynamic recompilation of portions of a program based on the current
execution profile."
"Consider a hypothetical banking application that handles transactions
one after another. These transactions may be checks, deposits, and a
large number of more obscure transactions. When the program executes,
the actual data may consist of clearing tens of thousands of checks
without processing a single deposit and without processing a single
check with a fraudulent account number. An adaptive optimizer would
compile assembly code to optimize for this common case. If the system
then started processing tens of thousands of deposits instead, the
adaptive optimizer would recompile the assembly code to optimize the new
common case. This optimization may include inlining code or moving error
processing code to secondary cache."