Skip to content

Commit 94ef3c1

Browse files
Moderockygitbook-bot
authored andcommitted
GitBook: [#22] No subject
1 parent 2d278d1 commit 94ef3c1

File tree

1 file changed

+30
-9
lines changed

1 file changed

+30
-9
lines changed

README.md

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -13,27 +13,36 @@ An experimental language based on Skript (with no pre-eminent DSL dependencies)
1313

1414
### Visit the [documentation](https://moderocky.gitbook.io/byteskript/) and wiki [here](https://moderocky.gitbook.io/byteskript/).
1515

16-
ByteSkript draws heavily from the original [Skript](https://github.com/SkriptLang/Skript/) language design, with some minor structural adaptations to strengthen the language grammar, and to remove some unnecessary programming jargon. ByteSkript also aims to increase interoperability with existing JVM languages.
16+
ByteSkript draws heavily from the original [Skript](https://github.com/SkriptLang/Skript/) language design, with some minor structural adaptations to strengthen the language grammar, to remove some unnecessary jargon and make the language more reliable. ByteSkript also increases interoperability with existing JVM languages.
1717

1818
{% hint style="info" %}
1919
**ByteSkript is not affiliated with** [**SkriptLang**](https://github.com/SkriptLang/Skript/)**.**\
20-
****ByteSkript is a completely new implementation of the general guide and style of the 'Skript' language, with its own language specification, goals and licence. 
20+
ByteSkript is a completely **new** implementation of the general guide and style of the 'Skript' language, with its own language specification, goals and licence.
2121

2222
For clarity: SkriptLang's Skript implementation will be referred to as 'original' or 'minecraft' Skript.
2323
{% endhint %}
2424

2525
### Goals
2626

27-
1. Provide a more efficient, compiled alternative to original Skript.
28-
2. Provide a stricter, stronger interpretation of the language.
29-
3. Provide a version of Skript with no built-in domain dependencies.
30-
4. Provide a version of Skript applicable to multiple domains.
27+
1. Provide a more efficient, compiled alternative to original Skript.\
28+
Code will be compiled to JVM bytecode, with efficiency approaching or exceeding bytecode produced by `javac`.
29+
2. Provide a stricter, stronger interpretation of the Skript language.\
30+
Structures and language elements follow stricter rules to prevent inconsistency.
31+
3. Provide a version of Skript with no built-in domain dependencies.\
32+
No third-party libraries should be required to run scripts.
33+
4. Provide a version of Skript applicable to multiple domains.\
34+
An extensible API should be provided to allow creation of syntax libraries.
3135

3236
### Non-goals
3337

34-
1. Not a replacement of the original Skript.
35-
2. Provide no built-in domain-specific functionality.
36-
3. No alteration to language fundamentals.
38+
1. Not a replacement of the original Skript.\
39+
There will be no built-in minecraft functionality.
40+
2. Provide no built-in domain-specific functionality.\
41+
The built-in Skript language library will have no syntax for third-party libraries or domains.\
42+
A minecraft server will not be required to run scripts.
43+
3. No alteration to language fundamentals.\
44+
The layout, look, readability and core language components should keep parity with original Skript.\
45+
Some small changes will be made to improve readability and compile accuracy.
3746

3847
Skript is designed to be beginner-friendly. Ideally, a user with no experience should be able to read Skript code and understand its function. All instructions are written in basic English, avoiding niche programming terms and symbols wherever possible.
3948

@@ -115,3 +124,15 @@ Syntax methods are given an annotation, and the class they belong to is register
115124
{% hint style="info" %}
116125
The v2 API is used internally by all of the I/O handler syntax. A lot of these are also forced to extract or bridge.
117126
{% endhint %}
127+
128+
### Libraries Used
129+
130+
* [ObjectWeb ASM](https://asm.ow2.io)\
131+
A bytecode-assembling library used internally by the Java JDK.\
132+
Used for compiling complex syntax.
133+
* [Mirror](https://github.com/Moderocky/Mirror)\
134+
An on-the-fly member access compiler, alternative to Java reflection.\
135+
Used for compiling dynamic method handles at runtime.
136+
* [Foundation](https://github.com/Moderocky/Foundation)\
137+
A class-building framework to simplify method creation.\
138+
Used for compiling simple syntax.\

0 commit comments

Comments
 (0)