Язык программирования: различия между версиями

Перейти к навигации Перейти к поиску
нет описания правки
[непроверенная версия][досмотренная версия]
м (CryptoUser переименовал страницу Commoninfo:programminglanguage в Язык программирования)
Нет описания правки
Строка 1: Строка 1:
{{#seo:
{{#seo:
                     |title= Язык программирования
                     |title= Язык программирования - материал из Decimal Wiki
                     |titlemode= append  
                     |titlemode= append  
                     |keywords= Язык программирования
                     |keywords= Язык программирования
                     |description= Язык программирования
                     |description= Языки программирования, используемые в DecimalChain
                     }}
                     }}
<div class="mikio-article-content">
'''Язы́к программи́рования''' — набор формальных правил, по которым пишутся [[Программное обеспечение|компьютерные программы]].


<div class="mikio-tags">
'''У языка программирования есть два аспекта:'''
* ''синтаксис'' (правила написания кода, правописание, порядок слов);
* ''семантика'' (идея, смысловая нагрузка или назначение).


</div>
Обычный язык нужен для общения с людьми, а язык программирования — для общения с компьютером. Как и в любом естественном языке, у компьютерных есть лексика и семантика, но, поскольку они намного проще, чем человеческие, грамматика у них не на первом месте, но синтаксис и словообразование важны. А для для понятия «смысл» программисты используют слово «семантика».
<span id="jazyk_programmirovanija"></span>
= Язык программирования =


<div class="level1">
== Отличие языков программирования от алгоритмов ==
Программы нужны для того, чтобы машина сделала что-то полезное. Это невозможно, если нет чёткого [[алгоритм]]а — порядка действий и правил выполнения чего-то полезного.


'''Язык программирования''' — это набор формальных правил, по которым пишут программы.
Алгоритм работает как маршрут в навигаторе: «Из пункта А едем в пункт Б, поворот через 150 метров». Англичанин понимает его по-английски, китаец — по-китайски, а мы с вами — по-русски. Языки разные, а порядок действий один: все должны добраться до нужного места.
 
 
</div>
<span id="u_jazyka_programmirovanija_est_dva_aspekta"></span>
===== У языка программирования есть два аспекта: =====
 
<div class="level5">
 
<ul>
<li><div class="li">
 
синтаксис (правила написания кода, правописание, порядок слов);
 
</div></li>
<li><div class="li">
 
семантика (идея, смысловая нагрузка или назначение).
 
</div></li></ul>
 
Обычный язык нужен для общения с людьми, а язык программирования — для общения с компьютером. Как и в любом естественном языке, у компьютерных есть лексика и семантика, но, поскольку они намного проще, чем человеческие, грамматика у них не на первом месте, но синтаксис и словообразование важны. А для для понятия «смысл» программисты используют слово «семантика».
 
 
</div>
<span id="otlichie_jazykov_programmirovanija_ot_algoritmov"></span>
= Отличие языков программирования от алгоритмов =
 
<div class="level1">
 
Программы нужны для того, чтобы машина сделала что-то полезное. Это невозможно, если нет чёткого алгоритма — порядка действий и правил выполнения чего-то полезного.
 
Алгоритм работает как маршрут в навигаторе: ''«Из пункта А едем в пункт Б, поворот через 150 метров»'' . Англичанин понимает его по-английски, китаец — по-китайски, а мы с вами — по-русски. Языки разные, а порядок действий один: '''все должны добраться до нужного места.'''


'''Любая программа начинается с алгоритма, но на разных языках это может выглядеть по-разному.'''
'''Любая программа начинается с алгоритма, но на разных языках это может выглядеть по-разному.'''


== Как компьютер понимает разные языки программирования ==
Язык программирования — это НЕ язык компьютера! Машина понимает последовательности нулей и единичек: есть напряжение в цепи — единица, нет — ноль. Поэтому любую программу сначала надо перевести в набор таких машинных команд.


</div>
Для этого существуют два инструмента — '''компилятор''' и '''интерпретатор'''. Первый работает как бюро переводов: вы отдаёте ему весь текст программы, а он превращает его в исполняемый код, набор команд для процессора. Интерпретатор же больше похож на переводчика-синхрониста: сказали фразу — синхронист быстро её перевёл, а компьютер выполнил.
<span id="kak_kompjuter_ponimaet_raznye_jazyki_programmirovanija"></span>
= Как компьютер понимает разные языки программирования =


<div class="level1">
Внутри компиляторов и интерпретаторов — сложные наборы правил по превращению языка программирования в машинный код, понятный компьютеру. Это тоже программы. Их пишут создатели нового языка — на каком-то другом, уже существующем. Например, интерпретатор Python написан на C, а сам C — на ассемблере, практически машинном коде.
 
'''Язык программирования''' — это '''не''' язык компьютера. Машина понимает последовательности нулей и единичек: есть напряжение в цепи — единица, нет — ноль. Поэтому любую программу сначала надо перевести в набор таких машинных команд.
 
Для этого есть два инструмента — '''компилятор''' и '''интерпретатор.''' Первый работает как бюро переводов: вы отдаёте ему весь текст программы, а он превращает его в исполняемый код, набор команд для процессора. Интерпретатор же больше похож на переводчика-синхрониста: сказали фразу — синхронист быстро её перевёл, а компьютер выполнил.
 
Внутри компиляторов и интерпретаторов — сложные наборы правил по превращению языка программирования в машинный код, понятный компьютеру. Это тоже программы. Их пишут создатели нового языка — на каком-то другом, уже существующем. Например, интерпретатор Python написан на C, а сам C — на ассемблере, практически машинном коде.
 
 
</div>
<span id="zachem_nuzhny_novye_jazyki_programmirovanija"></span>
= Зачем нужны новые языки программирования? =
 
<div class="level1">


== Зачем нужны новые языки программирования? ==
Существует уже несколько тысяч языков программирования, но всё равно продолжают создаваться новые. Обычно это делается для решения каких-то конкретных задач или в случае неудобства использования имеющегося языка.
Существует уже несколько тысяч языков программирования, но всё равно продолжают создаваться новые. Обычно это делается для решения каких-то конкретных задач или в случае неудобства использования имеющегося языка.


Языки живут, пока люди пользуются написанными на них программами.
Языки живут, пока люди пользуются написанными на них программами.


== Языки программирования в DecimalChain ==
Для корректной совместимости с [[Cosmos SDK]] и [[Tendermint]] в качестве языка программирования для реализации функционала [[Decimal]], а именно программного обеспечения [[мастернода|мастернод]] ([[валидатор]]ов), использован язык рограмирования '''[[w:Golang|Golang]]'''.


</div>
Для написания [[бэкенд|бэкенд-модулей]] мы выбрали '''[[w:TypeScript|TypeScript]]''', который строго типизирован и удобен в процессе разработки, а также компилируется в [[w:JavaScript|JavaScript]], исполняется в современных браузерах и совместим с [[w:NodeJS|NodeJS]]. В частности, на TypeScript написаны [[воркер]]ы (Workers) и [[индексер]] (Indexer).
<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 создавать кроссплатформенные десктоп-приложения.
 
 
 
</div>
<div style="clear:both">
 
 


</div>
Для реализации десктоп-приложений кошельков команда Decimal использовала '''[[w:ElectronJS|ElectronJS]]'''? который позволяет на основе JavaScript, HTML и CSS создавать [[кроссплатформенность|кроссплатформенные]] десктоп-приложения.


</div>
[[Категория:Терминология]]
[[Category:Commoninfo]]
[[Категория:Общая информация]]

Навигация