fix typos in thesis
This commit is contained in:
parent
4bfda6b0a1
commit
2619e50e9b
@ -391,7 +391,7 @@ tasks {
|
||||
- Режим без пренастройвани (запечатване) - освен ограниченията от предишният режим, полетата не могат да бъдат трити и пренастройвани
|
||||
- Режим на заключване (замразяване) - обекта става на практика константа, нито едно негово свойство не може да бъде променено
|
||||
|
||||
JavaScript кода може да променя режима от по-свободен към по-ограничаващ, но не и обратно. Това разрешава на разработчицитие да осигурят дадено ниво на константност на данните на обектите си.
|
||||
JavaScript кода може да променя режима от по-свободен към по-ограничаващ, но не и обратно. Това разрешава на разработчиците да осигурят дадено ниво на константност на данните на обектите си.
|
||||
|
||||
Накрая, обектите имат прототипи. Прототипа може да е `null` или обект. При търсенето на член, може обект да няма дадения ключ. Тогава търсенето продължава в прототипа на обекта. Понеже обаче прототипа е обект на практика съществува свързан списък от обекти, или т. нар. прототипна верига. Прототипите са в основата на обектно-ориентираното програмиране в JavaScript, понеже може чрез прототипите да бъде дефиниран един основен обект, който да съдържа всички функции за даден „тип“ обекти, а всички обекти от този „тип“ просто имат този основен обект като прототип. Освен това обаче прототипите могат да бъдат използвани и за осъществяване на наследство на обекти - обекта „AnimalPrototype“, който съдържа члена „speak“ може да бъде прототип на обекта „DogPrototype“, който съдържа члена „bark“. При тази конфигурация, „DogPrototype“ де факто има и двете полета - „speak“ и „bark“.
|
||||
|
||||
@ -688,7 +688,7 @@ public class Frame {
|
||||
```txt
|
||||
; Добавя 10 към стека
|
||||
LOAD_NUMBER 10
|
||||
; Добадя 1 към стека
|
||||
; Добавя 1 към стека
|
||||
LOAD_NUMBER 1
|
||||
; Добавя първият елемент на
|
||||
; стека с новодобавената единица
|
||||
@ -792,7 +792,7 @@ STORE_MEMBER_STR | key, keep | value, object | Еквивалент на ST
|
||||
STORE_MEMBER_INT | key, keep | value, object | Еквивалент на STORE_MEMBER, но с константен числов ключ `key`
|
||||
GLOB_GET | name, force | | Зарежда променливата `name` от глобалния обект. Ако `force` е `true` не се хвърля грешка ако променливата не съществува. Стойността на променливата се добавя към стека
|
||||
GLOB_SET | name, keep, force | value | Съхранява променливата `name` в глобалния обект. Ако `force` е `true` не се хвърля грешка ако променливата не съществува. Стойността на променливата се добавя към стека, ако `keep` е `true`
|
||||
GLOB_DEF | name | value | Създава променливата `name` със стойност `undefined` в глобавният обект, ако не съществува
|
||||
GLOB_DEF | name | value | Създава променливата `name` със стойност `undefined` в глобалния обект, ако не съществува
|
||||
OPERATION | type | values... | Изпълнява дадената операция (фиг. [@operations-table]) с даденият брой операнда, които операцията изисква. Добавя стойността при изчислението на операцията към стека
|
||||
|
||||
Набор от инструкции на междинния език (бележка: в колоната с аргументи от стека са показани аргументите в реда, в който се взимат от стека, освен ако друг ред не е уточнен)
|
||||
@ -906,7 +906,7 @@ class Frame {
|
||||
|
||||
## Компилиране на проекта
|
||||
|
||||
Можете да изтеглите кода на проекта, като и всичко нужно за компилирането му от приложената флашка (в директорията „j2s“) или от Git репозиторията <https://git.topcheto.eu/topchetoeu/j2s.git>. За компилацията на кода е нужен следния софтуер:
|
||||
Можете да изтеглите кода на проекта, като и всичко нужно за компилирането му от приложената флашка (в директорията „j2s“) или от Git хранилището <https://git.topcheto.eu/topchetoeu/j2s.git>. За компилацията на кода е нужен следния софтуер:
|
||||
|
||||
- OpenJDK 17 SDK
|
||||
- Gradle 8.10
|
||||
@ -924,7 +924,7 @@ class Frame {
|
||||
|
||||
## Използване на проекта като зависимост в друг проект
|
||||
|
||||
За проекта е налично и Maven хранилище, достъпно чрез URL адреса [https://git.topcheto.eu/api/packages/topchetoeu/maven], в което присъстват всички компонети на проекта.
|
||||
За проекта е налично и Maven хранилище, достъпно чрез URL адреса [https://git.topcheto.eu/api/packages/topchetoeu/maven], в което присъстват всички компоненти на проекта.
|
||||
|
||||
----
|
||||
|
||||
@ -1095,7 +1095,7 @@ ArrayValue doInterestingStuff(Environment env, Value input) {
|
||||
}
|
||||
```
|
||||
|
||||
Често ще Ви се налага да създавате и Java функцкии (трябва да правите такива функции с повишено внимание, понеже те имат неограничен достъп до Java средата на изпълнение, което може да означава че зле написана Java функция може да компрометира сигурността). Следния код е пример как се създава Java функция:
|
||||
Често ще Ви се налага да създавате и Java функции (трябва да правите такива функции с повишено внимание, понеже те имат неограничен достъп до Java средата на изпълнение, което може да означава че зле написана Java функция може да компрометира сигурността). Следния код е пример как се създава Java функция:
|
||||
|
||||
```java
|
||||
var func = new NativeFunction("myFunc", args -> {
|
||||
@ -1171,7 +1171,7 @@ else return end.chainError(src.loc(i + n), "Expected end of statement");
|
||||
|
||||
Всеки клас за елемент от синтактичното дърво съответно има следните три основни функции:
|
||||
|
||||
- `compile` - Добавя съответставщите на елемента инструкции в подадения `CompileResult`
|
||||
- `compile` - Добавя съответставащите на елемента инструкции в подадения `CompileResult`
|
||||
- `compileFunctions` - Използва се като служебна функция, която да позволява компилирането първо на по-дълбоките функции
|
||||
- `resolve` - Дефинира в подадения `CompileResult` променливите, които елемента декларира
|
||||
|
||||
@ -1193,7 +1193,7 @@ else return end.chainError(src.loc(i + n), "Expected end of statement");
|
||||
|
||||
Създадената система за добавяне на интерпретатори от своя страна е създадена такава, че може няколко интерпретатора да бъдат „наредени“ един след друг. Това позволява изключителна гъвкавост, както и допълнителна изолация на средата - може код, който използва компилатор да дефинира собствен компилатор без да знае за компилатора, на който е базиран.
|
||||
|
||||
Освен кода, за изпълнението на TypeScript кода са включени и типизации на стандартните билиотеки, описващи специфичната стандартна библиотека, дефинирана тук.
|
||||
Освен кода, за изпълнението на TypeScript кода са включени и типизации на стандартните библиотеки, описващи специфичната стандартна библиотека, дефинирана тук.
|
||||
|
||||
За да има достъп кода на стандартната библиотека до някои вътрешни функции на интерпретатора, беше създаден и класа „Primordials“, който създава набор от функции, които могат да бъдат използвани за ***незащитен*** достъп до иначе недостъпните чрез синтаксис функционалности.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user