Всем привет и добро пожаловать в JS Essentials. Это платформа, на которой мы изучаем различные концепции JavaScript. Перед написанием бизнес-логики важно знать, как работает JS, чтобы лучше понять.
Я начал эту серию, потому что только что прошел курс Удеми Энтони Алиси, JavaScript: понимание странных частей. И он очень хорошо объяснил это с нуля. Вы можете пройти этот курс. Большинство частей я беру из этого курса, чтобы каждый мог прочитать и понять концептуально, если не успел пройти весь курс.
Начнем с одного из самых основных и важных понятий - синтаксического анализатора.
Программа, которая читает наш код и определяет, что он делает, и правильна ли его грамматика.
Мы пишем код, и этот код не является волшебством, которое компьютеры понимают, когда мы пишем. Компьютер - это не человек, у него собственный язык. Кто-то еще написал программу, переводящую ее для компьютера. Когда мы пишем код JavaScript, он не спрашивает компьютер напрямую, что делать. Эти детали скрыты от нас. Кто-то другой или есть какая-то другая программа, которая преобразует наш JS-код во что-то, что компьютер может понять.
Мы можем взять пример людей-переводчиков, взглянуть на пример выше. Если человек «А» понимает только английский, а человек «С» понимает только «немецкий», то как они могут общаться? Правильно, через «переводчиков» (также известных как устные переводчики), понимающих оба языка. На компьютерном языке эти программы или переводчики называются «компиляторами», и они также имеют отношение к «интерпретаторам».
Но эти программы - интерпретаторы и компиляторы делают процесс. Они фактически считывают наш код символ за символом и определяют, является ли синтаксис допустимым, а затем реализуют этот синтаксис таким образом, чтобы компьютер мог его понять.
Предположим, у нас есть код и программа, которая будет преобразовывать то, что мы написали, в реальный набор компьютерных инструкций, что-то, что оборудование может физически понять.
Если мы посмотрим на приведенный выше пример, здесь у нас есть функция JS с переменной, которая представлена в памяти компьютера и которая переводится из того, что мы пишем, в то, что компьютер может понять. Между этими двумя элементами есть компилятор или интерпретатор, и частью этого является синтаксический анализатор.
Он проходит символ за символом, например F-U-N-C-T-I-O-N, и говорит, что это «функция», поэтому после этого должен быть пробел. И следующее, что он просматривает до скобок (), будет «имя функции» и т. Д. И это переведено системами, написанными кем-то другим. Но это также означает, что в процессе перевода программисты, написавшие компилятор, могут делать дополнительные вещи. Наш код на самом деле не передается компьютеру, а является его переводом, поэтому движок, интерпретирующий наш код, может решать или делать и другие вещи.
Итак, это синтаксический анализатор, интерпретатор между нашим кодом и компьютером, который переводит наш код в машиночитаемый код. И это часть движка JavaScript, которая фактически запускается каждый раз, когда мы запускаем наш JS-код.
Надеюсь, вам понравится статья с базовой концепцией синтаксического анализатора. В следующей статье мы поговорим о лексической среде и контексте выполнения. Будьте на связи!