Lines Matching full:of
6 bytecode instruction set, executable file format, etc. Each subsection below consists of following
21 and all related components of the platform:
24 1. It should fit into 50Kb of ROM.
25 1. It should be able to run consuming 64Kb of RAM.
33 1. Bytecode should allow the interpreter to run no slower than state of the art interpreters.
36 across all components of the platform.
41 and most of bytecodes encode virtual registers as operands.
52 is the main form of program representation, information about it is needed in many components of
54 a bunch of C/C++ headers is very fragile and error-prone. At the same time,
57 * In Panda Assembler's back-end, we automatically generate emission of bytecode in the binary form.
62 definitions were defined and used, different parts of instruction description doesn't contradict
67 Please find the implementation of the instruction set architecture [here](../isa/isa.yaml).
77 1. Runtime memory footprint of executable files should be low.
81 1. The entire code of the application (excluding frameworks and external libraries) fits into a
86 in the offset. Additionally, 4-byte alignment is enforced for the most of data structures for
94 According to our measurements of the most popular 200 Chinese mobile applications,
95 90% of them do not fit into a single mobile executable already now. Having multiple executables
96 for the same application introduces extra duplication of metadata and implies extra burden on
101 more space. As a solution, our file format will support variable length of identifiers to
104 To enable even more compact size of resulting binaries, we will compress it with the
116 1. Interpreter should run no slower than state of the art interpreters.
135 1. The "heaviness" of language semantics that interpreters should implement.
136 1. The "nativeness" of the language implementation to the platform. A language that is
137 implemented in another language that runs on the platform may run slower because of
141 1. Panda should scale onto a wide range of devices, including IoT devices. Although more and
143 on the device. Since static linking with a subset of the library is a pain and may not guarantee
144 optimal size of resulting native binary executable files, it is more reasonable to reimplement
161 the size of up to 64 bits, floating point numbers of single and double precision, raw pointers
170 1. The size of a virtual register is not hardcoded by design. Currently it is always 128 bits,
185 size of the payload we are required to store in a virtual register). The second 64 is for tag
186 and padding. A lot of free space is expected to be in the padding area. Probably we may use it
189 on IoT devices. On such devices the size of the host stack may be severely limited: as a result,
190 managed application have to think about this limitation, which contradicts the idea of
191 portability of managed applications. Configurable virtual stack implementation relaxes this
202 1. Interpreter should allow testing without involving front-ends of concrete languages.
209 1. A compliance test suite for the Panda Assembly language is created. The core part of the suite
210 are small chunks of hand-written Panda Assembly covering corner cases, while the majority of
212 1. A set of benchmarks is ported to Panda Assembly and maintained as a part of the source tree.
216 A general overview of managed assembly languages can be found [here](overview-of-managed-assemblers…
218 Lots of things are being created in parallel, and currently there is no stable front-end for Panda
221 beside too granular unit tests to ensure quality of the interpreter and companion components