рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рд╕реНрдЯреИрдХ-рдЖрдзрд╛рд░рд┐рдд рд╕реАрдкреАрдпреВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд╡рд┐рдХрд╛рд╕ рдореЙрдбрд▓

рдХреНрдпрд╛ рдЖрдкрдиреЗ рдХрднреА рд╕рд╡рд╛рд▓ рдХрд┐рдпрд╛ рд╣реИ "рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ?"ред рд╣рд╛рдВ, рд╣рд╛рдВ, рдмрд┐рд▓реНрдХреБрд▓ рд╡рд╣реА рдЬреЛ рдЖрдкрдХреЗ рдкреАрд╕реА / рд▓реИрдкрдЯреЙрдк / рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдореЗрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рд╡реЗрд░рд┐рд▓реЙрдЧ рдореЗрдВ рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рд╕рд╛рде рд╕реНрд╡-рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдП рдЧрдП рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рд╡реЗрд░рд┐рд▓реЙрдЧ рдмрд┐рд▓реНрдХреБрд▓ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ рдирд╣реАрдВ рд╣реИ рдЬреЛ рд╡рд╣ рджрд┐рдЦрддреА рд╣реИред рдпрд╣ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рд╡рд┐рд╡рд░рдг рднрд╛рд╖рд╛ рд╣реИред рд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХрд┐рд╕реА рднреА рдЪреАрдЬ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЬрдм рддрдХ рдХрд┐ рдЖрдк рдЗрд╕реЗ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рдореЗрдВ рдирд╣реАрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ), рд▓реЗрдХрд┐рди рднреМрддрд┐рдХ рд╕рд░реНрдХрд┐рдЯ рдХреЗ рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИ, рдпрд╛ рдПрдлрдкреАрдЬреАрдП (рдлреАрд▓реНрдб рдкреНрд░реЛрдЧреНрд░рд╛рдореЗрдмрд▓ рдЧреЗрдЯ рдПрд░реЗ) рджреНрд╡рд╛рд░рд╛ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИред


рдЕрд╕реНрд╡реАрдХрд░рдг: рдпрд╣ рд▓реЗрдЦ рд╡рд┐рд╢реНрд╡рд╡рд┐рджреНрдпрд╛рд▓рдп рдореЗрдВ рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкрд░ рдХрд╛рдо рдХрд╛ рдкрд░рд┐рдгрд╛рдо рд╣реИ, рдЗрд╕рд▓рд┐рдП рдХрд╛рдо рдХрд╛ рд╕рдордп рд╕реАрдорд┐рдд рдерд╛ рдФрд░ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдХрдИ рд╣рд┐рд╕реНрд╕реЗ рдЕрднреА рднреА рдХреЗрд╡рд▓ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЪрд░рдг рдореЗрдВ рд╣реИрдВред


рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдкреНрд░реЛрд╕реЗрд╕рд░ рдЖрдзреБрдирд┐рдХ рд╡реНрдпрд╛рдкрдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рд╕рд╛рде рдмрд╣реБрдд рдХрдо рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд╕рд╛рде рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд▓рдХреНрд╖реНрдп рд╣рд╛рд╕рд┐рд▓ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреАред


рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдпрд╣ рдХрд▓реНрдкрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рдкреНрд░рддреНрдпреЗрдХ рдЙрдкрдХрд░рдг рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ: рднрд╛рд╖рд╛ рдХрд╛ рдПрдХ рдХрдВрдкрд╛рдЗрд▓рд░ / рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░, рдПрдХ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди, рдпрджрд┐ рдХреЛрдИ рд╣реЛ, рдордзреНрдпрд╡рд░реНрддреА рдХреЛрдб рдФрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдкреНрд░реЛрд╕реЗрд╕рд░ рд╣реАред рдмрд╣реБрдд рдмрд╛рд░ рдЬреЛ рд▓реЛрдЧ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВ рд╡реЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдкрд╣рд▓реЗ рдЪрд░рдг рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ - рд╡реЗ рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ рдХрд┐ рднрд╛рд╖рд╛ рдФрд░ рдЗрд╕рдХреЗ рд╕рдВрдХрд▓рдХ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдЕрдХреНрд╕рд░ рдЙрди рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рд╕рдорд╛рдзрд╛рди рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдЕрдЬреНрдЮрд╛рдд рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рдЬрдбрд╝реЗрдВ рдХрд╣рд╛рдВ рд╕реЗ рдЖ рд░рд╣реА рд╣реИрдВред рдореИрдВрдиреЗ рд╕реНрд╡рдпрдВ рдХрдИ рдЬреАрд╡рдВрдд рдЙрджрд╛рд╣рд░рдг рджреЗрдЦреЗ, рдЬрд╣рд╛рдБ рд╕реНрдерд┐рддрд┐ рд▓рдЧрднрдЧ рд╡рд░реНрдгрди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╣реА рдереА, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рдиреЗ рдФрд░ рдЪреАрдЬреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдмрдирд╛рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛, рдЬреЛ рд╢реБрд░реБрдЖрддреА рд▓реЛрдЧреЛрдВ рдХреЛ рд╕рднреА рдЪрд░рдгреЛрдВ рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред


рдЗрд╕ рдХрд┐рдЯ рдореЗрдВ рдирд┐рдореНрди рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:


  • рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рднрд╛рд╖рд╛ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛
  • VS рдХреЛрдб рдХреЗ рд▓рд┐рдП рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдкреНрд▓рдЧрдЗрди
  • рдЗрд╕рдХрд╛ рд╕рдВрдХрд▓рди рдХрд░рдиреЗрд╡рд╛рд▓рд╛
  • рдирд┐рд░реНрджреЗрд╢ рд╕реЗрдЯ
  • рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдпрд╣ рд╕реЗрдЯ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░реЛрд╕реЗрд╕рд░ (рд╡реЗрд░рд┐рд▓реЛрдЧ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ)

рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдмрд╛рд░ рдлрд┐рд░ рдпрд╛рдж рджрд┐рд▓рд╛рддрд╛ рд╣реВрдВ рдХрд┐ рдпрд╣ рд▓реЗрдЦ рдПрдХ рдЖрдзреБрдирд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рддрд╣рдд рдХрд┐рд╕реА рднреА рдЪреАрдЬ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рдПрдХ рдореЙрдбрд▓ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рд╡рд┐рд╡рд░рдгреЛрдВ рдореЗрдВ рдЬрд╛рдиреЗ рдХреЗ рдмрд┐рдирд╛ рд╕рдордЭрдирд╛ рдЖрд╕рд╛рди рд╣реИред


рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ рдЬрд┐рди рдЪреАрдЬреЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:


рд╕реАрдкреАрдпреВ рд╕рд┐рдореБрд▓реЗрд╢рди рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдореЙрдбрд▓рд╕рд┐рдо рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ рдЖрдк рдЗрдВрдЯреЗрд▓ рд╡реЗрдмрд╕рд╛рдЗрдЯ рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


OurLang рд╕рдВрдХрд▓рдХ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЬрд╛рд╡рд╛ рд╕рдВрд╕реНрдХрд░рдг> = 8 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ:
https://github.com/IamMaxim/OurCPU
https://github.com/IamMaxim/OurLang


рдПрдХреНрд╕рдЯреЗрдВрд╢рди:
https://github.com/IamMaxim/ourlang-vscode


рд╡реЗрд░рд┐рд▓реЙрдЧ рднрд╛рдЧ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП, рдореИрдВ рдЖрдорддреМрд░ рдкрд░ рдПрдХ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ:


#/bin/bash vlib work vlog *.v vsim -c testbench_1 -do "run; exit" 

рд▓реЗрдХрд┐рди рдпрд╣ рдЬреАрдпреВрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЛрд╣рд░рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


рд╕рдВрдХрд▓рдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП Intellij IDEA рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреМрди рд╕реЗ рдореЙрдбреНрдпреВрд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдЯреНрд░реИрдХ рд░рдЦрдирд╛ред рдореИрдВрдиреЗ рд░реЗрдбреА-рдореЗрдб .jar рдХреЛ рдУрдкрди рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдкреЛрд╕реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдкрд╛рдардХ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЗ рд╕реЛрд░реНрд╕ рдХреЛрдб рдХреЛ рдкрдврд╝реЗрдВрдЧреЗред


рд▓реЙрдиреНрдЪ рдХрд┐рдП рдЧрдП рдореЙрдбреНрдпреВрд▓ рдХрдВрдкрд╛рдЗрд▓рд░ рдФрд░ рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рд╣реИрдВред рд╕рдВрдХрд▓рдХ рдХреЗ рд╕рд╛рде рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдЗрдВрдЯрд░рдкреНрд░реЗрдЯрд░ рдЬрд╛рд╡рд╛ рдореЗрдВ рдУрд╕реАрд╕реАрдкреАрдпреВ рдХрд╛ рд╕рд┐рд░реНрдл рдПрдХ рд╕рд┐рдореНрдпреБрд▓реЗрдЯрд░ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдо рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред


рдирд┐рд░реНрджреЗрд╢ рд╕реЗрдЯ


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрдВрд╕реНрдЯреНрд░рдХреНрд╢рди рд╕реЗрдЯ рд╕реЗ рд╢реБрд░реБрдЖрдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред


рдХрдИ рдирд┐рд░реНрджреЗрд╢ рд╕реЗрдЯ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╣реИрдВ:


  • рд╕реНрдЯреИрдХ-рдЖрдзрд╛рд░рд┐рдд рд╡рд╣ рд╣реИ рдЬреЛ рд▓реЗрдЦ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рд╣реИред рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рдСрдкрд░реЗрдВрдб рдХреЛ рд╕реНрдЯреИрдХ рдкрд░ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рд╕реНрдЯреИрдХ рд╕реЗ рдкреЙрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рддреБрд░рдВрдд рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рд╕рдорд╛рдирд╛рдВрддрд░ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдмрд╛рд╣рд░ рдХрд░ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рддрд░реАрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред
  • рд╕рдВрдЪрд╛рдпрдХ-рдЖрдзрд╛рд░рд┐рдд - рдирд┐рдЪрд▓рд╛ рд░реЗрдЦрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреЗрд╡рд▓ рдПрдХ рд░рдЬрд┐рд╕реНрдЯрд░ рд╣реИ рдЬреЛ рдПрдХ рдореВрд▓реНрдп рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
  • рд░рдЬрд┐рд╕реНрдЯрд░-рдЖрдзрд╛рд░рд┐рдд рд╡рд╣ рд╣реИ рдЬреЛ рдЖрдзреБрдирд┐рдХ рдкреНрд░реЛрд╕реЗрд╕рд░ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЖрдкрдХреЛ рд╡рд┐рднрд┐рдиреНрди рдЕрдиреБрдХреВрд▓рди рдХреЗ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдзрд┐рдХрддрдо рдкреНрд░рджрд░реНрд╢рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрди, рдкрд╛рдЗрдкрд▓рд╛рдЗрдирд┐рдВрдЧ, рдЖрджрд┐ рдХреЗ рд╕рдорд╛рдирд╛рдВрддрд░рдг рд╢рд╛рдорд┐рд▓ рд╣реИред

рд╣рдорд╛рд░реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдирд┐рд░реНрджреЗрд╢ рд╕реЗрдЯ рдореЗрдВ 30 рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВ


рдЕрдЧрд▓рд╛, рдореИрдВ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдПрдХ рдирдЬрд╝рд░ рд▓реЗрдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ:


рдХреЛрдб рдореЗрдВ рдХрдИ рдореЙрдбреНрдпреВрд▓ рд╣реЛрддреЗ рд╣реИрдВ:


  • рд╕реАрдкреАрдпреВ
  • рд░реИрдо
  • рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдореЙрдбреНрдпреВрд▓

RAM рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реАрдзреЗ рдореЗрдореЛрд░реА рд╣реА рд╣реЛрддреА рд╣реИ, рд╕рд╛рде рд╣реА рдЗрд╕рдореЗрдВ рдбреЗрдЯрд╛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реИред


рд╕реАрдкреАрдпреВ - рдПрдХ рдореЙрдбреНрдпреВрд▓ рдЬреЛ рд╕реАрдзреЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рдкреНрд░рдЧрддрд┐ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ: рдирд┐рд░реНрджреЗрд╢ рдкрдврд╝рддрд╛ рд╣реИ, рд╡рд╛рдВрдЫрд┐рдд рдирд┐рд░реНрджреЗрд╢ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЖрд╡рд╢реНрдпрдХ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ (рд╡рд░реНрддрдорд╛рди рдЕрдиреБрджреЗрд╢ рдЖрджрд┐ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдХ) рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИред


рд▓рдЧрднрдЧ рд╕рднреА рдирд┐рд░реНрджреЗрд╢ рдХреЗрд╡рд▓ рд╕реНрдЯреИрдХ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдмрд╕ рдЙрдирдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред рдХреБрдЫ (рдЬреИрд╕реЗ putw, putb, jmp рдФрд░ jif) рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдПрдХ рдЕрддрд┐рд░рд┐рдХреНрдд рддрд░реНрдХ рд╣реИред рдЙрдиреНрд╣реЗрдВ рдкреВрд░реЗ рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдЖрд╡рд╢реНрдпрдХ рдбреЗрдЯрд╛ рдкрдврд╝ рд╕рдХреЗрдВред


рдпрд╣рд╛рдБ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдкрд░реЗрдЦрд╛ рд╣реИ рдХрд┐ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:



рдЕрдиреБрджреЗрд╢ рд╕реНрддрд░ рдкрд░ рдбрд┐рд╡рд╛рдЗрд╕ рдбрд┐рдЬрд╛рдЗрди рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рд╕рд┐рджреНрдзрд╛рдВрдд


рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕реАрдзреЗ рдХрд╛рд░реНрдпрдХреНрд░рдореЛрдВ рдХреЗ рд╕рд╛рде рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдКрдкрд░ рджрд┐рдП рдЧрдП рдЖрд░реЗрдЦ рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдмрд╛рдж, рдкрддрд╛ рдЕрдЧрд▓реЗ рдкрд░ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдПрдХ рд░реИрдЦрд┐рдХ рдкрд╛рдареНрдпрдХреНрд░рдо рджреЗрддрд╛ рд╣реИред рдЬрдм рдЗрд╕ рд░реИрдЦрд┐рдХрддрд╛ (рд╕реНрдерд┐рддрд┐, рд▓реВрдк, рдЖрджрд┐) рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рд╢рд╛рдЦрд╛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рд╣рдорд╛рд░реЗ рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдпреЗ jmp рдФрд░ jif рд╣реИрдВ)ред


рдлрд╝рдВрдХреНрд╢рди рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╕рдордп, рд╣рдореЗрдВ рд╣рд░ рдЪреАрдЬ рдХреА рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП рд╕рдХреНрд░рд┐рдпрдг рд░рд┐рдХреЙрд░реНрдб рд╣реИрдВ - рд░рд┐рдХреЙрд░реНрдб рдЬреЛ рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдпрд╛ рдирд┐рд░реНрджреЗрд╢реЛрдВ рд╕реЗ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдмрдВрдзреЗ рдирд╣реАрдВ рд╣реИрдВ, рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛрдб рдмрдирд╛рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред OurLang рдореЗрдВ рд╕рдХреНрд░рд┐рдпрдг рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдВрд░рдЪрдирд╛ рд╣реИ:



рдЬреИрд╕рд╛ рдХрд┐ рдЗрд╕ рдЖрд░реЗрдЦ рд╕реЗ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд╕реНрдерд╛рдиреАрдп рдЪрд░ рднреА рд╕рдХреНрд░рд┐рдпрдг рд░рд┐рдХреЙрд░реНрдб рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬреЛ рдЖрдкрдХреЛ рд╕рдВрдХрд▓рд┐рдд рд╕рдордп рдХреЗ рдмрдЬрд╛рдп, рд╕рдВрдХрд▓рд┐рдд рд╕рдордп рдореЗрдВ рдореЗрдореЛрд░реА рдореЗрдВ рдЪрд░ рдХреЗ рдкрддреЗ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдирд┐рд╖реНрдкрд╛рджрди рдХреЛ рдЧрддрд┐ рджреЗрддрд╛ рд╣реИред


рдлрд╝рдВрдХреНрд╢рди рдХреЙрд▓ рдХреЗ рд▓рд┐рдП, рд╣рдорд╛рд░рд╛ рдирд┐рд░реНрджреЗрд╢ рд╕реЗрдЯ рд╕реАрдкреАрдпреВ рдореЙрдбреНрдпреВрд▓ (рдСрдкрд░реЗрд╢рди рдкреЙрдЗрдВрдЯрд░ рдФрд░ рдПрдХреНрдЯрд┐рд╡реЗрд╢рди рдПрдбреНрд░реЗрд╕ рдкреЙрдЗрдВрдЯрд░) - рдкреБрдЯреЛрдкрд╛ / рдкреЙрдкреЛрдкрд╛, рдкреБрдЯрд╛рд░рд╛ / рдкреЛрдкрд╛рд░рд╛ рдореЗрдВ рдирд┐рд╣рд┐рдд рджреЛ рд░рдЬрд┐рд╕реНрдЯрд░реЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред


рд╕рдВрдХрд▓рдХ


рдЕрдм рдЪрд▓реЛ рдЕрдВрддрд┐рдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ - рд╕рдВрдХрд▓рдХ рдХреЗ рдирд┐рдХрдЯрддрдо рднрд╛рдЧ рдкрд░ рдПрдХ рдирдЬрд╝рд░ рдбрд╛рд▓реЗрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдПрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдХрд▓рдХ рдореЗрдВ 3 рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ:


  • lexer
  • рдкрд╛рд░реНрд╕рд░
  • рд╕рдВрдХрд▓рдХ

рд▓реЗрд╕рд░ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рд▓реЗрдХреНрд╕рд┐рдХрд▓ рдЗрдХрд╛рдЗрдпреЛрдВ рдореЗрдВ рдЕрдиреБрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ рдЬрд┐рд╕реЗ рдкрд╛рд░реНрд╕рд░ рд╕рдордЭрддрд╛ рд╣реИред


рдкрд╛рд░реНрд╕рд░ рдЗрди рд▓реЗрдХреНрд╕рд┐рдХрд▓ рдЗрдХрд╛рдЗрдпреЛрдВ рд╕реЗ рдПрдХ рд╕рд╛рд░ рд╕рд┐рдВрдЯреИрдХреНрд╕ рдЯреНрд░реА рдмрдирд╛рддрд╛ рд╣реИред


рд╕рдВрдХрд▓рдХ рдЗрд╕ рдкреЗрдбрд╝ рд╕реЗ рдЧреБрдЬрд░рддрд╛ рд╣реИ рдФрд░ рдирд┐рдореНрди-рд╕реНрддрд░реАрдп рдирд┐рд░реНрджреЗрд╢реЛрдВ рд╕реЗ рдпреБрдХреНрдд рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХрд╛ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдпрд╛ рддреЛ рдПрдХ рдмрд╛рдпреЛрдЯреЗрдХ рдпрд╛ рдмрд╛рдЗрдирд░реА рдХреЛрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░реЛрд╕реЗрд╕рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИред


OurLang рд╕рдВрдХрд▓рдХ рдореЗрдВ, рдЗрди рднрд╛рдЧреЛрдВ рдХреЛ рдХреНрд░рдорд╢рдГ рдХрдХреНрд╖рд╛рдУрдВ рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ


  • Lexer.java
  • Parser.java
  • Compiler.java

рднрд╛рд╖рд╛


OurLang рдЕрдкрдиреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдЕрд╡рд╕реНрдерд╛ рдореЗрдВ рд╣реИ, рдЕрд░реНрдерд╛рдд рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрднреА рддрдХ рдЗрд╕рдореЗрдВ рдмрд╣реБрдд рд╕реА рдЪреАрдЬреЗрдВ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рднрд╛рд╖рд╛ рдХреЗ рдореВрд▓ рднрд╛рдЧ рдХреЛ рднреА рдЕрдВрддрд┐рдо рд░реВрдк рдирд╣реАрдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╕рдВрдХрд▓рдХ рдХреЗ рд╕рд╛рд░ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд░реНрддрдорд╛рди рд╕реНрдерд┐рддрд┐ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред


рд╡рд╛рдХреНрдп рд░рдЪрдирд╛ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдпрд╣ рдХреЛрдб рдЯреБрдХрдбрд╝рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╣реИ (рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ):


 // single-line comments /* * Multi-line comments */ function print(int arg) { instr(putara, 0); instr(putw, 4); instr(add, 0); instr(lw, 0); instr(printword, 0); } function func1(int arg1, int arg2): int { print(arg1); print(arg2); if (arg1 == 0) { return arg2; } else { return func1(arg1 - 1, arg2); }; } function main() { var i: int; i = func1(1, 10); if (i == 0) { i = 1; } else { i = 2; }; print(i); } 

рдореИрдВ рднрд╛рд╖рд╛ рдкрд░ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛, рдореИрдВ рдЗрд╕реЗ рдЖрдкрдХреЗ рдЕрдзреНрдпрдпрди рдХреЗ рд▓рд┐рдП рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ред рд╕рдВрдХрд▓рдХ рдХреЛрдб рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ;)ред


рдЗрд╕реЗ рд▓рд┐рдЦрддреЗ рд╕рдордп, рдореИрдВрдиреЗ рд╕реНрд╡-рд╡реНрдпрд╛рдЦреНрдпрд╛ рдХреЛрдб рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬреЛ рдмрд┐рдирд╛ рдЯрд┐рдкреНрдкрдгреА рдХреЗ рд╕реНрдкрд╖реНрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╕рдВрдХрд▓рдХ рдХреЛрдб рдХреЛ рд╕рдордЭрдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред


рдЦреИрд░, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдХреЛрдб рд▓рд┐рдЦрдирд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рджреЗрдЦреЛ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, OurLang рд╕рдВрдХрд▓рдХ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдЬреИрд╕рд╛ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ,
рдЬреЛ рдЕрдВрджрд░ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред


рдореИрдВ рд╡рд┐рдЬреБрдЕрд▓ рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛрдб рдХреЗ рд▓рд┐рдП рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рднреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рддрд╛ рд╣реВрдВ, рдпрд╣ рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдкреНрд░рджрд╛рди рдХрд░реЗрдЧрд╛ред


рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╢реБрднрдХрд╛рдордирд╛рдПрдБ!

Source: https://habr.com/ru/post/hi430450/


All Articles