Java from Perl; Perl from Java

From JmPm

Revision as of 07:25, 16 July 2007 by Amire80 (Talk | contribs)
(diff) ← Older revision | Current revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Contents

Perl - Java Similarities

  • Interpreted languages
  • Platform independent (write once run anywhere)
  • Similar syntax (procedural languages)
  • Garbage collector
  • Modules and packages structure

Differences

  • Java 100% object oriented, in Perl OO is optional (function overloading does not exist)
  • Java requires compilation, Perl doesn’t
  • Java does not allow multiple inheritance, Perl does. (Object == UNIVERSAL)
  • Java has strong typing ( requires variable declaration ), Perl has not – variable gets it type after first assignment.
  • autoload mechanism
  • Do we need strong typing? (strong testing ?)
  • Java is rigid, Perl has many ways to say same thing
  • Perl has many shell like features (variable interpolation, file test operators). Java has none.
  • In Java execution starts in main(), Perl has no main, (__DATA__ feature)
  • Perl is much FASTER in development and execution

Why do we need it ?

  • Legacy components access
  • Code transition from some language to perl
  • Speed (C , not Java)
  • Component exist in other language and we want to use it in Perl

Inline

  • Inline, Inline::Java
  • Easy installation
  • Short learning curve
  • Hides all details (compilation, glue files)
  • Inline has extension to many other languages – C , C++ , Python ...
  • Older tools XS, SWIG.

• Manual steps, long learning curve, only perl to XXX direction

Perl2Java

  • Methods invocation ( regular and static )
  • Member variables access
  • Study
  • Script or package code layout

inline::java steps

  • Creates java source file from the embedded code ( Hi.java )
  • Compiles java class ( Hi.java -> Hi.class )
  • Extracts the methods signatures to Hi.jdat file

Java2Perl

  • Implemented by Inline::Java::PerlInterpreter
  • Alternative implementation based on
    • JNI defines a standard naming and calling convention so the Java virtual machine can locate and invoke native methods
    • perl from C invocation , modified examples code from O’Reilly Advanced Perl Programming
  • Two basic problems :
    • Functions in perl can be called with variable number of parameters and output variable number of values
    • Parameters can have different types
Personal tools