πŸ“–GitHub Compiler

ОписаниС

ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ‚ΠΎΡ€ модСльного языка программирования. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ Π² сСбя лСксичСский, синтаксичСский, сСмантичСский Π°Π½Π°Π»ΠΈΠ· ΠΈ Ρ‚Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ Π² ΠΏΠΎΠ»ΡŒΡΠΊΡƒΡŽ ΠΈΠ½Π²Π΅Ρ€ΡΠ½ΡƒΡŽ запись. Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния являСтся поиск ошибок Π² написанном ΠΊΠΎΠ΄Π΅ ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ модСльного языка Π² Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²Ρ‹ΠΉ язык с ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π² исполняСмый Ρ„Π°ΠΉΠ».

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС Ρ€Π°Π±ΠΎΡ‚Ρ‹ прСдставлСно Π½ΠΈΠΆΠ΅.

Π“Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠ° языка описана Π² Ρ„Π°ΠΉΠ»Π΅ grammar.txt, Π³Π΄Π΅ ΠΏΠ΅Ρ€Π΅Ρ‡ΠΈΡΠ»ΡΡŽΡ‚ΡΡ всС Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π½Π΅Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ символы ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π° языка.

1. ЛСксичСский Π°Π½Π°Π»ΠΈΠ·

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉ тСкст разбиваСтся Π½Π° лСксСмы ΠΈ провСряСтся ΠΈΡ… ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΡΡ‚ΡŒ.

2. БинтаксичСский Π°Π½Π°Π»ΠΈΠ·

По ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ Π³Ρ€Π°ΠΌΠΌΠ°Ρ‚ΠΈΠΊΠΈ строится ΠΌΠ°Ρ‚Ρ€ΠΈΡ†Π° ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΠΈΡ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ лСксСм провСряСтся Π½Π° соотвСтствиС этим ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ.

3. БСмантичСский Π°Π½Π°Π»ΠΈΠ·

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅Ρ‚ΡΡ соотвСтствиС Ρ‚ΠΈΠΏΠΎΠ² ΠΈ сущСствованиС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ….

4. ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ Π² ΠΏΠΎΠ»ΡŒΡΠΊΡƒΡŽ ΠΈΠ½Π²Π΅Ρ€ΡΠ½ΡƒΡŽ запись

Для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π² ΠΏΠΎΠ»ΡŒΡΠΊΡƒΡŽ ΠΈΠ½Π²Π΅Ρ€ΡΠ½ΡƒΡŽ запись ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ Π—Π°ΠΌΠ΅Π»ΡŒΡΠΎΠ½Π° ΠΈ Бауэра.

5. ГСнСрация ассСмблСрного ΠΊΠΎΠ΄Π° ΠΈΠ· ΠŸΠžΠ›Π˜Π—Π°

Для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Π² ассСмблСр NASM ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ, ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ поэлСмСнтно ΠŸΠžΠ›Π˜Π— ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΉ ассСмблСрный ΠΊΠΎΠ΄ Π² соотвСтствии со Π²ΡΡ‚Ρ€Π΅Ρ‚ΠΈΠ²ΡˆΠΈΠΌΡΡ элСмСнтом.

ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ

  • ЛСксичСский, синтаксичСский ΠΈ сСмантичСский Π°Π½Π°Π»ΠΈΠ·;
  • Π’Ρ€Π°Π½ΡΠ»ΡΡ†ΠΈΡŽ Π² ΠΏΠΎΠ»ΡŒΡΠΊΡƒΡŽ ΠΈΠ½Π²Π΅Ρ€ΡΠ½ΡƒΡŽ запись;
  • ΠŸΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² ассСмблСрный ΠΊΠΎΠ΄;
  • ΠšΠΎΠΌΠΏΠΈΠ»ΡΡ†ΠΈΡ exe Ρ„Π°ΠΉΠ»Π°.

Π’Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ

  • Python;
  • Assembler (NASM).

ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС