SDA SE Wiki

Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools



externT(#id)

It expresses that the class with identity #id is only available as byte-code. This has two implications: (1) For byte-code classes JTransformer only generates PEFs at interface level and (2) the class and all the related PEFs cannot be modified by program transformations. The typical use of externT/1 is therefore in the precondition of a conditional transformation, as a check that the class can be transformed.

Arguments

#id: classT
ID of the byte-code class. This ID is NOT the ID of the externT fact but just a reference to the fact representing the byte-code class.

PEF Representation

Consider for example the class “java.lang.Object” that is part of the JDK as a pre-compiled, non-modifiable byte-code class. It would be represented as follows:

   packageT(#packageId, 'java.lang').               // Package 'java.lang'
   classT(#classId, #packageId, 'Object', ...).  // Class 'Object'
   externT(#classId).                               // 'Object' is external

AST Specification

ast_relation('Java',externT,[
     ast_arg(id,     mult(1,1,no ), id,   [classT]) 
]).
research/jtransformer/api/java/pefs/3.0/externt.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2018