Язык программирования
Язы́к программи́рования — набор формальных правил, по которым пишутся компьютерные программы.
У языка программирования есть два аспекта:
- синтаксис (правила написания кода, правописание, порядок слов);
- семантика (идея, смысловая нагрузка или назначение).
Обычный язык нужен для общения с людьми, а язык программирования — для общения с компьютером. Как и в любом естественном языке, у компьютерных есть лексика и семантика, но, поскольку они намного проще, чем человеческие, грамматика у них не на первом месте, но синтаксис и словообразование важны. А для для понятия «смысл» программисты используют слово «семантика».
Отличие языков программирования от алгоритмов
Программы нужны для того, чтобы машина сделала что-то полезное. Это невозможно, если нет чёткого алгоритма — порядка действий и правил выполнения чего-то полезного.
Алгоритм работает как маршрут в навигаторе: «Из пункта А едем в пункт Б, поворот через 150 метров». Англичанин понимает его по-английски, китаец — по-китайски, а мы с вами — по-русски. Языки разные, а порядок действий один: все должны добраться до нужного места.
Любая программа начинается с алгоритма, но на разных языках это может выглядеть по-разному.
Как компьютер понимает разные языки программирования
Язык программирования — это НЕ язык компьютера! Машина понимает последовательности нулей и единичек: есть напряжение в цепи — единица, нет — ноль. Поэтому любую программу сначала надо перевести в набор таких машинных команд.
Для этого существуют два инструмента — компилятор и интерпретатор. Первый работает как бюро переводов: вы отдаёте ему весь текст программы, а он превращает его в исполняемый код, набор команд для процессора. Интерпретатор же больше похож на переводчика-синхрониста: сказали фразу — синхронист быстро её перевёл, а компьютер выполнил.
Внутри компиляторов и интерпретаторов — сложные наборы правил по превращению языка программирования в машинный код, понятный компьютеру. Это тоже программы. Их пишут создатели нового языка — на каком-то другом, уже существующем. Например, интерпретатор Python написан на C, а сам C — на ассемблере, практически машинном коде.
Зачем нужны новые языки программирования?
Существует уже несколько тысяч языков программирования, но всё равно продолжают создаваться новые. Обычно это делается для решения каких-то конкретных задач или в случае неудобства использования имеющегося языка.
Языки живут, пока люди пользуются написанными на них программами.
Языки программирования в DecimalChain
Для корректной совместимости с Cosmos SDK и Tendermint в качестве языка программирования для реализации функционала Decimal, а именно программного обеспечения мастернод (валидаторов), использован язык рограмирования Golang.
Для написания бэкенд-модулей мы выбрали TypeScript, который строго типизирован и удобен в процессе разработки, а также компилируется в JavaScript, исполняется в современных браузерах и совместим с NodeJS. В частности, на TypeScript написаны воркеры (Workers) и индексер (Indexer).
Для реализации десктоп-приложений кошельков команда Decimal использовала ElectronJS? который позволяет на основе JavaScript, HTML и CSS создавать кроссплатформенные десктоп-приложения.