• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
    • Debugging
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
        • Apt
        • Error-checking
        • Fty-extensions
        • Isar
        • Kestrel-utilities
        • Set
        • Soft
        • C
        • Bv
        • Imp-language
        • Event-macros
        • Java
          • Atj
            • Atj-implementation
            • Atj-tutorial
              • Atj-tutorial-deep
              • Atj-tutorial-ACL2-values
              • Atj-tutorial-native-functions
              • Atj-tutorial-deep-guards
              • Atj-tutorial-ACL2-terms
              • Atj-tutorial-evaluator
              • Atj-tutorial-background
              • Atj-tutorial-ACL2-environment
              • Atj-tutorial-translated
              • Atj-tutorial-shallow
              • Atj-tutorial-tests
              • Atj-tutorial-customization
              • Atj-tutorial-motivation
              • Atj-tutorial-deep-shallow
              • Atj-tutorial-screen-output
              • Atj-tutorial-shallow-guards
              • Atj-tutorial-simplified-uml
              • Atj-tutorial-aij
          • Aij
          • Language
        • Bitcoin
        • Ethereum
        • Yul
        • Zcash
        • ACL2-programming-language
        • Prime-fields
        • Json
        • Syntheto
        • File-io-light
        • Cryptography
        • Number-theory
        • Lists-light
        • Axe
        • Builtins
        • Solidity
        • Helpers
        • Htclient
        • Typed-lists-light
        • Arithmetic-light
      • X86isa
      • Axe
      • Execloader
    • Math
    • Testing-utilities
  • Atj

Atj-tutorial

ATJ tutorial.

This is the top page of the ATJ tutorial.

Scope of the Tutorial

This tutorial is work in progress, but it may be already useful in its current incomplete form. This tutorial's goal is to provide user-level information on how ATJ works and how to use ATJ effectively. See the ATJ manual page for the ATJ reference documentation, which currently contains some additional information that will likely be moved to this tutorial.

Structure of the Tutorial

This tutorial consists of this top-level page plus a number of hyperlinked pages, all of which are subtopics of this top-level page, listed below alphabetically for easy reference. Starting from this top-level page, we provide Next links to navigate sequentially through all the tutorial pages (and we also provide Previous links going the opposite direction). It is recommended to follow this order when reading this tutorial for the first time. Each page starts with a short description of the contents of the page, and also says whether the page may be perhaps skipped at first reading, because it contains additional information that may not be necessary for a user to know in order to use ATJ. However, it is recommended to read all the tutorial pages, eventually.

Relationship with the ACL2-2018 Workshop Paper

This ACL2-2018 Workshop paper provides an overview of ATJ, but ATJ has been significantly extended since then. Some of the contents of the paper are being copied to this tutorial, and updated as appropriate; it is possible that the paper will be completely subsumed by this tutorial once the latter is completed.

Start: Motivation for Generating Java Code from ACL2

Subtopics

Atj-tutorial-deep
ATJ tutorial: Deep Embedding Approach.
Atj-tutorial-ACL2-values
ATJ tutorial: Java Representation of the ACL2 Values.
Atj-tutorial-native-functions
ATJ tutorial: Native Java Implementations of ACL2 Functions.
Atj-tutorial-deep-guards
ATJ tutorial: Guards in the Deep Embedding Approach.
Atj-tutorial-ACL2-terms
ATJ tutorial: Java Representation of the ACL2 Terms.
Atj-tutorial-evaluator
ATJ tutorial: ACL2 Evaluator Written in Java.
Atj-tutorial-background
ATJ tutorial: Background on the Evaluation Semantics of ACL2.
Atj-tutorial-ACL2-environment
ATJ tutorial: Java Representation of the ACL2 Environment.
Atj-tutorial-translated
ATJ tutorial: ACL2 Functions Translated To Java.
Atj-tutorial-shallow
ATJ tutorial: Shallow Embedding Approach.
Atj-tutorial-tests
ATJ tutorial: Generation of Tests.
Atj-tutorial-customization
ATJ tutorial: Customization Options for Generated Code.
Atj-tutorial-motivation
ATJ tutorial: Motivation for Generating Java Code from ACL2.
Atj-tutorial-deep-shallow
ATJ tutorial: Deep and Shallow Embedding Approaches.
Atj-tutorial-screen-output
ATJ tutorial: Control of the Screen Output.
Atj-tutorial-shallow-guards
ATJ tutorial: Guards in the Shallow Embedding Approach.
Atj-tutorial-simplified-uml
ATJ tutorial: About the Simplified UML Class Diagrams.
Atj-tutorial-aij
ATJ tutorial: Relationship with AIJ.