ABCLでDISASSEMBLEする


Tags: その他, ABCL

ABCLでDISASSEMBLEする

ABCLは disassemble に外部コマンドのjadを利用しますのでjadを導入すれば結果が表示されます。

(disassemble (compile nil (lambda (x y) (+ x y))))
;>> ; The class file version is 49.0 (only 45.3, 46.0 and 47.0 are supported)
;>> ; // Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
;>> ; // Jad home page: http://www.geocities.com/kpdus/jad.html
;>> ; // Decompiler options: packimports(3) annotate 
;>> ; 
;>> ; import org.armedbear.lisp.*;
;>> ; 
;>> ; public final class abcl_af0d0b20_2c9a_411b_bb3d_931658d78a2c extends CompiledPrimitive
;>> ; {
;>> ; 
;>> ;     public final LispObject execute(LispObject lispobject, LispObject lispobject1)
;>> ;     {
;>> ;         return lispobject.add(lispobject1);
;>> ;     //    0    0:aload_1         
;>> ;     //    1    1:aload_2         
;>> ;     //    2    2:invokevirtual   #24  <Method LispObject LispObject.add(LispObject)>
;>> ;     //    3    5:areturn         
;>> ;     }
;>> ; 
;>> ;     public abcl_af0d0b20_2c9a_411b_bb3d_931658d78a2c()
;>> ;     {
;>> ;         super(Lisp.NIL, Lisp.readObjectFromString("(X Y)"));
;>> ;     //    0    0:aload_0         
;>> ;     //    1    1:getstatic       #6   <Field org.armedbear.lisp.Symbol Lisp.NIL>
;>> ;     //    2    4:ldc1            #8   <String "(X Y)">
;>> ;     //    3    6:invokestatic    #12  <Method LispObject Lisp.readObjectFromString(String)>
;>> ;     //    4    9:invokespecial   #18  <Method void CompiledPrimitive(LispObject, LispObject)>
;>> ;     //    5   12:return          
;>> ;     }
;>> ; }
;=> NIL