Lines Matching full:in
6 bytecode design in Panda Runtime.
14 somewhere in memory and executes corresponding _operations_ on operation's arguments,
16 directly on the CPU) or _memory_ (some locations in computer's RAM). An important subset of memory
17 operands are _stack operands_ that reside in a special data structure called _stack_. The program
18 must maintain the stack in the correct state during runtime because exactly this data structure
21 In real world, different CPU manufacturers provide different sets of commands for their devices –
22 or, in other words, different CPUs have different _instruction set architectures_. This means
30 making interpretation slower than _native code execution_. In return, we get the ability to
37 In case there is a chance for ambiguity, the terms "virtual registers" and "virtual stack" are used
47 In _stack-based_ approach, operands are implicitly encoded in the operation, which results in
60 In _register-based approach_, operands are explicitly encoded in the operation, which results in
78 each bytecode instruction, execute it and move to the next one, running more instruction results in
112 some "stack-based'ness" into an otherwise register-based instruction set in attempt to make the
115 In an ideal case, accumulator register may safe us ~25% of size. But it needs to be used carefully:
118 are popular) and for increment/decrement instructions (when loop variable is only read in a loop
119 body forming a separate def-use chain, i.e. in the majority of loops.
120 * You don't need to pass object reference in accumulator in the object call. Usually objects live
167 function arguments participate as operands in a fewer number of cases. With that in mind, let's map
171 Please note also that we don't need "full-range" versions for all instructions. In case some
173 needed forms. Thus we save on opcode space without losing in encoding size (on average).
179 overloads are calls (different number of operands) and calls are the most popular instructions in
188 with say 64-bit integers. In this case, if we want to add two double-precision floating point
201 Consider a simple example: what is the result of the expression `4 + "2"` in JavaScript and, say,
202 Python? In JavaScript, it evaluates to the string `"42"`, while Python forbids adding a string to
212 language? No, it does not. In practice, it is always possible to compile a dynamically typed
214 sets are "statically-typed" in our terminology.