I am currently making a JVM-based programming language. Instead of having operators, I chose to allow symbols as method names and create compiler reference classes for primitive data types. These are annotated with so-called @Intrinsic annotations that take Bytecode instructions as their parameters. Instead of an INVOKE instruction, the compiler uses these to generate the Bytecode at every call.
I am now wondering whether or not this (public) annotation can be used to do anything malicious on the JVM, and if it should be restricted by the compiler, for example by static analysis.
(The language itself also supports Bytecode Expressions)