What is project lambda: Project lambda is the project to enable lambda expressions in java
language syntax. Lambda expressions are major syntax in functional programming languages like lisp. Groovy would be the closest relative
of java that has support for lambda expressions, also known as closures.
Wednesday, January 25, 2012
Sunday, November 20, 2011
Java Generics Capture Conversion
Introduction: Earlier in my article Java Compile Time Method Binding
I had promised to explain how type arguments are inferred during invocation of a generic method. However, that would not be of that use without
learning how capture conversion works first. So what is capture conversion. Capture conversion is the type conversion when a reference of
a generic type is created by passing the type parameters. Its not really that complicated. But it still does require some attention. Note that
capture conversion is only required for compile time type checking, nothing is there in the compiled code and nothing happens at runtime.
Thursday, November 3, 2011
Fundamental Semantics of Extensible Business Reporting Language Dimensions
Introduction: In my previous article, I have discussed a broad overview of the concepts of XBRL dimensions.
Today I am going to discuss about the semantics of XBRL dimensions. Hope you enjoy reading. This article assumes that the reader has gone through
the former article here.
Thursday, October 27, 2011
Fundamentals of Extensible Business Reporting Language Dimensions
What is XBRL dimensions: XBRL dimensions specification is a modular extension for the XBRL specification.
It uses the segment and scenario elements of the context to use the elements defined in it to divide the data according to dimensions, as I will
explain shortly. The dimension specification is too big to be fully covered in a single article, so in this, I will only discuss the fundamentals
and in another, I will explain the other syntactic details. Since the article assumes the reader's prior knowledge of XBRL, the reader is advised
to first read the articles on XBRL here.
Saturday, October 22, 2011
Java Compile Time Method Binding
Introduction: It appears to be a simple process to determine which method a particular
method invocation refers to, but it still needs pages of documentation in the java language specification to address this, especially
to take care of auto-boxing/auto-unboxing and variable arguments. In this article, I will highlight how an actual method is bound at compile
time to a particular method invocation.
Thursday, October 13, 2011
Manipulating Java Class Files with ASM 4 - Part Two: Tree API
What is ASM tree API: ASM Tree API is the part of ASM that lets you
create/modify the class in memory. The class is viewed as a tree of information. Like the whole
class is an instance of ClassNode, which contain a list of FieldNode objects, a list of MethodNode objects etc.
This article assumes that the reader has already read the first part here.
Thursday, October 6, 2011
Manipulating Java Class Files with ASM 4 - Part One : Hello World!
What is ASM: ASM is an open source java library for manipulating java byte code. So it has the same purpose as Apache BCEL. As
this article assumes that the reader has some knowledge of java class file format, it is advisable to read about it in
here. So how is it different from
BCEL? Well firstly it allows for an event driven way to manipulate byte code eliminating the need to load the whole class in the memory
just to make a small addition. Secondly, it does not have a separate class for every single instruction. Instead, it handles opcodes directly
and only has constants representing each. This reduces the size of the library to a great extent. So, ASM is simply lighter and smarter.
However, ASM also has a mechanism to deal with class files by loading the whole class into the memory just in case the operation is too
complex to be handled through event based processing.
The current stable version of ASM is 3.3. However version 4.0 RC2 is out. So, I am going to discuss that version here.
The current stable version of ASM is 3.3. However version 4.0 RC2 is out. So, I am going to discuss that version here.
Subscribe to:
Posts (Atom)