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

Материал из Decimal Wiki
Перейти к навигации Перейти к поиску
[досмотренная версия][досмотренная версия]
Нет описания правки
 
Строка 37: Строка 37:
Для написания [[бэкенд|бэкенд-модулей]] мы выбрали '''[[w:TypeScript|TypeScript]]''', который строго типизирован и удобен в процессе разработки, а также компилируется в [[w:JavaScript|JavaScript]], исполняется в современных браузерах и совместим с [[w:NodeJS|NodeJS]]. В частности, на TypeScript написаны [[воркер]]ы (Workers) и [[индексер]] (Indexer).
Для написания [[бэкенд|бэкенд-модулей]] мы выбрали '''[[w:TypeScript|TypeScript]]''', который строго типизирован и удобен в процессе разработки, а также компилируется в [[w:JavaScript|JavaScript]], исполняется в современных браузерах и совместим с [[w:NodeJS|NodeJS]]. В частности, на TypeScript написаны [[воркер]]ы (Workers) и [[индексер]] (Indexer).


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


[[Категория:Терминология]]
[[Категория:Терминология]]
[[Категория:Общая информация]]
[[Категория:Общая информация]]

Текущая версия от 14:29, 26 декабря 2023

Язы́к программи́рования — набор формальных правил, по которым пишутся компьютерные программы.

У языка программирования есть два аспекта:

  • синтаксис (правила написания кода, правописание, порядок слов);
  • семантика (идея, смысловая нагрузка или назначение).

Обычный язык нужен для общения с людьми, а язык программирования — для общения с компьютером. Как и в любом естественном языке, у компьютерных есть лексика и семантика, но, поскольку они намного проще, чем человеческие, грамматика у них не на первом месте, но синтаксис и словообразование важны. А для для понятия «смысл» программисты используют слово «семантика».

Отличие языков программирования от алгоритмов

Программы нужны для того, чтобы машина сделала что-то полезное. Это невозможно, если нет чёткого алгоритма — порядка действий и правил выполнения чего-то полезного.

Алгоритм работает как маршрут в навигаторе: «Из пункта А едем в пункт Б, поворот через 150 метров». Англичанин понимает его по-английски, китаец — по-китайски, а мы с вами — по-русски. Языки разные, а порядок действий один: все должны добраться до нужного места.

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

Как компьютер понимает разные языки программирования

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

Для этого существуют два инструмента — компилятор и интерпретатор. Первый работает как бюро переводов: вы отдаёте ему весь текст программы, а он превращает его в исполняемый код, набор команд для процессора. Интерпретатор же больше похож на переводчика-синхрониста: сказали фразу — синхронист быстро её перевёл, а компьютер выполнил.

Внутри компиляторов и интерпретаторов — сложные наборы правил по превращению языка программирования в машинный код, понятный компьютеру. Это тоже программы. Их пишут создатели нового языка — на каком-то другом, уже существующем. Например, интерпретатор Python написан на C, а сам C — на ассемблере, практически машинном коде.

Зачем нужны новые языки программирования?

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

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

Языки программирования в DecimalChain

Для корректной совместимости с Cosmos SDK и Tendermint в качестве языка программирования для реализации функционала Decimal, а именно программного обеспечения мастернод (валидаторов), использован язык рограмирования Golang.

Для написания бэкенд-модулей мы выбрали TypeScript, который строго типизирован и удобен в процессе разработки, а также компилируется в JavaScript, исполняется в современных браузерах и совместим с NodeJS. В частности, на TypeScript написаны воркеры (Workers) и индексер (Indexer).

Для реализации десктоп-приложений кошельков команда Decimal использовала ElectronJS, который позволяет на основе JavaScript, HTML и CSS создавать кроссплатформенные десктоп-приложения.