Автодосматривающие, Бюрократы, Патрулирующие, Администраторы интерфейса, Project members, Управляющие подписками push-уведомлений, Выверяющие, Скрывающие, Администраторы, Редакторы виджетов
5802
правки
[непроверенная версия] | [досмотренная версия] |
м (CryptoUser переименовал страницу Commoninfo:programminglanguage в Язык программирования) |
Нет описания правки |
||
Строка 1: | Строка 1: | ||
{{#seo: | {{#seo: | ||
|title= Язык программирования | |title= Язык программирования - материал из Decimal Wiki | ||
|titlemode= append | |titlemode= append | ||
|keywords= Язык программирования | |keywords= Язык программирования | ||
|description= | |description= Языки программирования, используемые в DecimalChain | ||
}} | }} | ||
'''Язы́к программи́рования''' — набор формальных правил, по которым пишутся [[Программное обеспечение|компьютерные программы]]. | |||
'''У языка программирования есть два аспекта:''' | |||
* ''синтаксис'' (правила написания кода, правописание, порядок слов); | |||
* ''семантика'' (идея, смысловая нагрузка или назначение). | |||
Обычный язык нужен для общения с людьми, а язык программирования — для общения с компьютером. Как и в любом естественном языке, у компьютерных есть лексика и семантика, но, поскольку они намного проще, чем человеческие, грамматика у них не на первом месте, но синтаксис и словообразование важны. А для для понятия «смысл» программисты используют слово «семантика». | |||
== Отличие языков программирования от алгоритмов == | |||
Программы нужны для того, чтобы машина сделала что-то полезное. Это невозможно, если нет чёткого [[алгоритм]]а — порядка действий и правил выполнения чего-то полезного. | |||
Алгоритм работает как маршрут в навигаторе: «Из пункта А едем в пункт Б, поворот через 150 метров». Англичанин понимает его по-английски, китаец — по-китайски, а мы с вами — по-русски. Языки разные, а порядок действий один: все должны добраться до нужного места. | |||
Алгоритм работает как маршрут в навигаторе: | |||
'''Любая программа начинается с алгоритма, но на разных языках это может выглядеть по-разному.''' | '''Любая программа начинается с алгоритма, но на разных языках это может выглядеть по-разному.''' | ||
== Как компьютер понимает разные языки программирования == | |||
Язык программирования — это НЕ язык компьютера! Машина понимает последовательности нулей и единичек: есть напряжение в цепи — единица, нет — ноль. Поэтому любую программу сначала надо перевести в набор таких машинных команд. | |||
Для этого существуют два инструмента — '''компилятор''' и '''интерпретатор'''. Первый работает как бюро переводов: вы отдаёте ему весь текст программы, а он превращает его в исполняемый код, набор команд для процессора. Интерпретатор же больше похож на переводчика-синхрониста: сказали фразу — синхронист быстро её перевёл, а компьютер выполнил. | |||
Внутри компиляторов и интерпретаторов — сложные наборы правил по превращению языка программирования в машинный код, понятный компьютеру. Это тоже программы. Их пишут создатели нового языка — на каком-то другом, уже существующем. Например, интерпретатор Python написан на C, а сам C — на ассемблере, практически машинном коде. | |||
Внутри компиляторов и | |||
== Зачем нужны новые языки программирования? == | |||
Существует уже несколько тысяч языков программирования, но всё равно продолжают создаваться новые. Обычно это делается для решения каких-то конкретных задач или в случае неудобства использования имеющегося языка. | Существует уже несколько тысяч языков программирования, но всё равно продолжают создаваться новые. Обычно это делается для решения каких-то конкретных задач или в случае неудобства использования имеющегося языка. | ||
Языки живут, пока люди пользуются написанными на них программами. | Языки живут, пока люди пользуются написанными на них программами. | ||
== Языки программирования в DecimalChain == | |||
Для корректной совместимости с [[Cosmos SDK]] и [[Tendermint]] в качестве языка программирования для реализации функционала [[Decimal]], а именно программного обеспечения [[мастернода|мастернод]] ([[валидатор]]ов), использован язык рограмирования '''[[w:Golang|Golang]]'''. | |||
Для написания [[бэкенд|бэкенд-модулей]] мы выбрали '''[[w:TypeScript|TypeScript]]''', который строго типизирован и удобен в процессе разработки, а также компилируется в [[w:JavaScript|JavaScript]], исполняется в современных браузерах и совместим с [[w:NodeJS|NodeJS]]. В частности, на TypeScript написаны [[воркер]]ы (Workers) и [[индексер]] (Indexer). | |||
Для написания бэкенд-модулей мы выбрали '''TypeScript''' , который строго типизирован и удобен в процессе разработки, а также компилируется в JavaScript, исполняется в современных браузерах и совместим с NodeJS. В частности, на TypeScript написаны | |||
Для реализации десктоп-приложений кошельков команда Decimal использовала '''[[w:ElectronJS|ElectronJS]]'''? который позволяет на основе JavaScript, HTML и CSS создавать [[кроссплатформенность|кроссплатформенные]] десктоп-приложения. | |||
[[Категория:Терминология]] | |||
[[Категория:Общая информация]] |