424
edits
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{{#seo: | {{#seo: | ||
|title= | |title= Язык программирования | ||
|titlemode= append | |titlemode= append | ||
|keywords= | |keywords= Язык программирования | ||
|description= | |description= Язык программирования | ||
}} | }} | ||
<div class="mikio-article-content"> | <div class="mikio-article-content"> | ||
Line 12: | Line 12: | ||
</div> | </div> | ||
<span id=" | <span id="jazyk_programmirovanija"></span> | ||
= | = Язык программирования = | ||
<div class="level1"> | <div class="level1"> | ||
'' | '''Язык программирования''' — это набор формальных правил, по которым пишут программы. | ||
</div> | </div> | ||
<span id=" | <span id="u_jazyka_programmirovanija_est_dva_aspekta"></span> | ||
= | ===== У языка программирования есть два аспекта: ===== | ||
<div class=" | <div class="level5"> | ||
< | <ul> | ||
<li><div class="li"> | <li><div class="li"> | ||
синтаксис (правила написания кода, правописание, порядок слов); | |||
</div></li> | </div></li> | ||
<li><div class="li"> | <li><div class="li"> | ||
''' | семантика (идея, смысловая нагрузка или назначение). | ||
</div></li></ul> | |||
Обычный язык нужен для общения с людьми, а язык программирования — для общения с компьютером. Как и в любом естественном языке, у компьютерных есть лексика и семантика, но, поскольку они намного проще, чем человеческие, грамматика у них не на первом месте, но синтаксис и словообразование важны. А для для понятия «смысл» программисты используют слово «семантика». | |||
</div> | |||
<span id="otlichie_jazykov_programmirovanija_ot_algoritmov"></span> | |||
= Отличие языков программирования от алгоритмов = | |||
<div class="level1"> | |||
Программы нужны для того, чтобы машина сделала что-то полезное. Это невозможно, если нет чёткого алгоритма — порядка действий и правил выполнения чего-то полезного. | |||
Алгоритм работает как маршрут в навигаторе: ''«Из пункта А едем в пункт Б, поворот через 150 метров»'' . Англичанин понимает его по-английски, китаец — по-китайски, а мы с вами — по-русски. Языки разные, а порядок действий один: '''все должны добраться до нужного места.''' | |||
'''Любая программа начинается с алгоритма, но на разных языках это может выглядеть по-разному.''' | |||
</div> | </div> | ||
<span id=" | <span id="kak_kompjuter_ponimaet_raznye_jazyki_programmirovanija"></span> | ||
= | = Как компьютер понимает разные языки программирования = | ||
<div class="level1"> | <div class="level1"> | ||
'''Язык программирования''' — это '''не''' язык компьютера. Машина понимает последовательности нулей и единичек: есть напряжение в цепи — единица, нет — ноль. Поэтому любую программу сначала надо перевести в набор таких машинных команд. | |||
Для этого есть два инструмента — '''компилятор''' и '''интерпретатор.''' Первый работает как бюро переводов: вы отдаёте ему весь текст программы, а он превращает его в исполняемый код, набор команд для процессора. Интерпретатор же больше похож на переводчика-синхрониста: сказали фразу — синхронист быстро её перевёл, а компьютер выполнил. | |||
Внутри компиляторов и интерпретаторов — сложные наборы правил по превращению языка программирования в машинный код, понятный компьютеру. Это тоже программы. Их пишут создатели нового языка — на каком-то другом, уже существующем. Например, интерпретатор Python написан на C, а сам C — на ассемблере, практически машинном коде. | |||
</div> | </div> | ||
<span id=" | <span id="zachem_nuzhny_novye_jazyki_programmirovanija"></span> | ||
= | = Зачем нужны новые языки программирования? = | ||
<div class=" | <div class="level1"> | ||
Существует уже несколько тысяч языков программирования, но всё равно продолжают создаваться новые. Обычно это делается для решения каких-то конкретных задач или в случае неудобства использования имеющегося языка. | |||
Языки живут, пока люди пользуются написанными на них программами. | |||
</div | </div> | ||
< | <span id="jazyki_programmirovanija_v_decimalchain"></span> | ||
= Языки программирования в DecimalChain = | |||
<div class="level1"> | |||
Для корректной совместимости с Cosmos SDK и Tendermint в качестве языка программирования для реализации функционала Decimal, а именно программного обеспечения мастернод (валидаторов), использован язык рограмирования '''Golang.''' | |||
''' | Для написания бэкенд-модулей мы выбрали '''TypeScript''' , который строго типизирован и удобен в процессе разработки, а также компилируется в JavaScript, исполняется в современных браузерах и совместим с NodeJS. В частности, на TypeScript написаны воркеры (Workers) и индексер (Indexer). | ||
Для реализации десктоп-приложений кошельков команда Decimal использовала '''ElectronJS,''' который позволяет на основе JavaScript, HTML и CSS создавать кроссплатформенные десктоп-приложения. | |||