Category: Component Based Software Engineering

A Survey of Things & Stuff in Object Oriented Programming Systems

In a context of a concept of component-based software engineering (CBSE), a survey of things & stuff – in a context of object oriented programming systems – focusing on Java, Common Lisp, STELLA, and COMPO.

Java [Object Model]

  • Concept: Java class
    • Class definition object
    • Class instance object
  • Concept: Java class loader
    • Back-reference from class definition object
    • Class: java.lang.ClassLoader [JDK7]
      • Concept: Bootstrap class loader
    • Subclass: java.netURLClassLoader [JDK7]
    • See also: Maven (Dependency Management); Spring (IoC)
  • Concept: Java package
    • See also: Java class loader
    • Java package import declarations
      • Defined within class definitions
      • Orthogonal to classpath configuration
      • Providing some class definition dependency information
      • Explicitly provided class definition dependencies
        • Orthogonal to: Class definition dependencies effectively resolved onto the package of a depending class – moreover, in applications onto the runtime classpath – without explicit import declarations
        • Such that a Java class cannot be completely defined until all of the classes referenced in the class’ class definition are defined
        • Orthogonal to: annotations within class definitions
          • Annotation providers …
            • Implementing java.lang.annotation [JDK7]

Common Lisp (CLtL2)

  • Contextual Notes
    • ANSI Common Lisp
    • Common Lisp type definitions
    • Common Lisp Object System (CLOS)
      • Classes and type definitions
        • Not all type specifiers are class names e.g. (simple-array byte (1 2))
        • Most type specifiers contain a class name e.g. simple-array
        • ….
    • Metaobject Protocol (MOP)
      • Provides a normative object module and a corresponding set of functional procedures such that may be applied as to redefine or extend an implemenation’s underying class model, as with regards to:
        • Class Definitions
        • Slot Definitions
        • Definitions of Generic Function and other funcallable standard instances
          • Not all funcallable instances are generic functions
          • Method Combination – applied during evaluation of calls to generic functions
            • Argument precedence order – applied as with regards to method combination and method dispatching
        • Method Definitions
          • Method Specializers – applied when a method is defined
          • Method Lambda – initialized when a method is defined; applied when a call to a generic function is evaluated, such that the evaluation results in an initialization of any single effective  method, “Successfully”
        • Method Dispatching – as applied in construction of an effective method,m such that would be applied during evaluation of a calls to a generic function

STELLA

  • Contextual Notes
    • Lisp-like syntax
    • Defined by PowerLoom
    • Provides a KIF dialect
    • Implemented with transformations to C++, Java, Common Lisp

COMPO

Applications:

  • To do fun, cool things
  • With non-commercial stuff
  • Because Advertising is not Culture