Write, Compile, Build

User Guide ›› Brief Overview ››
Parent Previous Next

Write, Compile, Build.

The SCRAMBLECODE programming language is all about writing classes and functions as described in the Programming Guide.

The use of a project with a tree structure of groups and source files is convenient for writing the source code, but it is irrelevant with regards to the generated bytecode, because the compiler removes all names and other meta data from the bytecode.

Once the source code is written, it is compiled and built into highly encrypted bytecode, which is signed/sealed with a private key.

This figure displays the 3 steps involved in the compile process.

These are the 3 compilation steps:

Note 1: These keys are not the evaluation keys downloaded with SCRAMBLECODE. These are your keys created by you using the built-in key generator. The private key must be kept secret and safe at all times. The public key is later used by the DLL to authenticate that the bytecode is untampered and originates from you.

The Target.

The generated bytecode is targeted at being executed by a specific set of DLL files - the vm32.dll and vm64.dll.

In the SCRAMBLECODE IDE you can setup several different targets - one for each public key registered in a LicenseID. Each target identify a LicenseID file, a PrivateKey file, the actual key pair selected for this target and the DLL files created to match these keys. Usually you have a separate directory for each target.

Before you can compile a project, the target must be selected in the project properties. The steps involved in the encryption and signing of the bytecode depend on the selected target. Only the DLL files of this particular target can decrypt the bytecode and understand the virtual assembler instructions deep inside the multiple layers of encryption.

This is all described in great detail elsewhere in this documentation. However it simply means, that you will create bytecode which is completely unique and only executable by your DLL files, and nobody else can modify your bytecode or produce bytecode for your DLL files.