Цель этой книги - как можно быстрее ввести читателя в курс дела, чтобы он начал писать на AsmX работоспособные программы (игры, визуализации данных и вычислительные программы), и одновременно заложить основу в области программирования, которая пригодится ему на протяжении всей жизни. Книга написана для людей любого возраста, которые прежде никогда не программировали на AsmX или вообще никогда не программировали. Если вы хотите быстро изучить азы программирования, чтобы сосредоточиться на интересных проектах, а также проверить свое понимание новых концепций на содержательных задачах, - эта книга для вас.
В этой главе вы запустите свою первую программу на языке AsmX, hello_world.asmX. Сначала вы проверите, установлен AsmX на вашем компьютере, и если нет - установите его.
В части I этой книги представлены базовые концепции, необходимые для написания программ на языке AsmX. Многие из этих концепций встречаются во всех языках программирования, поэтому они пригодятся вам на протяжении всей карьеры в программировании.
В главе I вы установите AsmX на свой компьютер и запустите свою первую программу, которая выводит на экран сообщение Hello World!
В первую очередь нам нужно установить необходимые ресурсы конечно же))
У вас должен быть NodeJS v16.15.1 версии, npm версии 8.11.0. Ну и git. (У меня стоит 2.36.1 версия git).
git clone https://github.com/langprogramming-AsmX/AsmX.git
npm installПосле этого уже запускаем ядро:
node kernel.jsПосле чего у нас попросят путь к файлу, если вести файл другого расширения, у нас выдаст ошибку. После указания пути к самому ядру мы можем сразу указать путь к .asmX файлу. В противном случае появится CLI (Command Line Interface) который попросит путь к файлу.
При выходе AsmX v3, его можно запустить на NodeJS v18.16.1 (LTS)
Если у вас установлен AsmX третьей версии (AsmX v3) или более поздней версии, для запуска AsmX кода из терминала восполлзуйтесть при вызове яздра дать следующий параметр repl, как показано в примере:
node kernel.js replREPL - Read Eval Print Loop
Программу установки VS Code можно загрузить по адресу https://code.visualstudio.com/. Щелкните на ссылке загрузки и найдите программу установки для Windows. После того как программа установки будет загружена, запустите её и подтвердите все настройки по умолчанию.
После того как в вашей системе будут установлены последние версии AsmX и VS Code, всё почти готово к запуску вашей первой программы на AsmX, написанной в текстовом редакторе. После этого вы сможете написать программу Hello World! и запустить её.
Прежде чем писать программу, создайте где-нибудь в свей системе папку с именем AsmX_workspace для своих проектов.
Откройте VS Code и сохраните пустой файл AsmX (File -> Save As) с именем hello_world.asmX в папке *AsmX_workspace.*После того как файл будет сохранен, введите следующую строку в текстовом редакторе:
@call print("Hello world!");Большинство программ, написанных вами в текстовом редакторе, будут запускаться прямо из редактора. Тем не менее иногда бывает полезно запускать программы из терминала - например, если вы хотите просто выполнить готовую программу, не открывая её для редактирования.
Это можно сделать в любой системе с установленной поддержкой AsmX; необходимо лишь знать путь к каталогу, в котором хранится файл программы. Приведенные ниже примеры предполагают, что вы сохранили файл hello_world.asmXв папке AsmX_workspace на рабочем столе.
Команда cd (Change Directory) используется для перемещения по файловой системе в окне командной строки. Команда dir (DIRectory) выводит список всех файлов в текущем каталоге.
Откройте новое терминальное окно и введите следующие команды для запуска программы hello_world.asmX:
C: > cd Desktop/AsmX_workspace
C:DesktopAsmX_workspace> dir
hello_world.asmX
C:DesktopAsmX_workspace> node asmx/kernel.js hello_world.asmX
Hello world!Команда cd используется для перехода к папке asmX_workspace, находящейся в папке Desktop. Затем команда dir проверяет, что файл hello_world.asmX действительно находится в этой папке. Далее файл запускается командой node asmx/kernel.js hello_world.asmX. Где asmx это папка скачанного AsmX с GitHub.
Большинство программ будет нормально запускаться из редактора. Но со временем ваша работа станет более сложной, и возможно, вы предпочтете запускать некоторые из своих программ из терминала.
Запуск программы AsmX в терминальном сеансе в системах Linux и macOS осуществляется одинаково. Команда cd (Change Directory) используется для перемещения по файловой системе в терминальном сеансе. Команда Is (LiSt) выводит список всех нескрытых файлов в текущем каталоге.
Откройте новое терминальное окно и введите следующие команды для запуска программы hello_world.asmX:
~$ cd Desktop/AsmX_worspace/
~Desktop/AsmX_worspace/$ ls
hello_world.asmX
~Desktop/AsmX_worspace/$ node asmx/kernel.js hello_world.asmX
Hello world!
Команда cd используется для перехода к папке asmX_workspace, находящейся в папке Desktop. Затем команда ls проверяет, что файл hello_world.asmX действительно находится в этой папке. Далее файл запускается командой node asmx/kernel.js hello_world.asmX. Где asmx это папка скачанного AsmX с GitHub.
Если вам так и не удалось запустить программу hello_world.asmX, возможно, вам помогут следующие полезные советы (кстати, они могут пригодиться для решения любых проблем в программах).
Не стесняйтесь обращаться к опытным программистам. Любой программист в какой-то момент своей жизни заходил в тупик; многие программисты охотно помогут вам правильно настроить вашу систему. Если вы сможете четко объяснить, что вы хотите сделать, что уже пытались и какие результаты получили, скорее всего, кто-нибудь вам поможет. Как упоминалось во введении, сообщество AsmX доброжелательно относится к новичкам.
AsmX должен нормально работать на любом современном компьютере, и если у вас все же возникли проблемы - обращайтесь за помощью. На первых порах проблемы могут быть весьма неприятными, но с ними стоит разобраться. Когда программа hello_world.asmX заработает, вы сможете приступить к изучению AsmX, а ваша работа станет намного более интересной и принесет больше удовольствия.
Упражнения
В этой главе вы познакомились с языком AsmX и установили поддержку AsmX в своей системе, если она не была установлена ранее. Также вы установили текстовый редактор, упрощающий работу над кодом AsmX. Вы научились выполнять фрагменты кода AsmX в терминальном сеансе и запустили свою первую настоящую программу hello_world.asmX. Скорее всего, попутно вы кое-что узнали о поиске и исправлении ошибок.
В следующей главе рассматриваются структуры данных, с которыми вы будете работать в программах AsmX. Кроме того, вы научитесь пользоваться переменными AsmX.
В этой главе представлены разные виды данных, с которыми вы будете работать в своих программах AsmX. Вы также научитесь использовать переменные для представления данных в своих программах.
Давайте повнимательнее разберемся с тем, что же делает AsmX при запуске hello_world.asmX. Оказывается, даже для такой простой программы AsmX выполняет серьезную работу:
hello_world.asmX:
@call print("Hello world!");При выполнении этого кода выводится следущий текст:
Hello world!
Суффикс .asmX в имени файла hello_world.asmX указывает, что файл является программой AsmX.
Попробуем использовать переменную в программе hello_world.asmX. Добавьте новую строку в начало файла и измените вторую строку:
hello_world.asmX
@set message String "Hello world!";
@call print(set::message);Запустите программу и посмотрите, что получится. Программа выводит уже знакомый результат:
Hello world!
В программу добавилась переменная с именем message. В каждой переменной хранится значение, то есть данные, связанные с переменной. В нашем случае значением является текст "Hello world!".
Добавление переменной немного усложняет задачу AsmX. Во время обработки первой строки он связывает текст "Hello world!" с переменной message. А когда AsmX доберется до второй строки, он выводит на экран значение, связанное с именем message.
Давайте немного расширим эту программу hello_world.asmX, чтобы она выводила второе сообщение. Добавьте в hello_world.asmX, ещё строку которая выводит другое сообщение.
@set message String "Hello world!";
@call print(set::message);
@call print("Hello AsmX Crash Course world!");
Теперь при выполнении hello_world.asmX на экране должны появляться две строки:
Hello world!
Hello AsmX Crash Course world!
Вы можете в любой момент изменить значение переменной в своей программе. AsmX постоянно отслеживает его текущее состояние.
При работе с переменными в языке AsmX необходимо соблюдать некоторые правила и рекомендации. Нарушение правил приведет к ошибке, рекомендации всего лишь помогают писать более понятный и удобночитаемый код.
Вы не сразу научитесь создавать хорошие имена переменным, особенно когда ваши программы станут сложнее и интересными.
Примечание - Пока ограничитесь именами переменных, записанными в нижнем регистре.
Если вы только изучаете AsmX, можете пропустить этот пункт, так как этот раздел полезен, тем кто знает AsmX базу или скачал AsmX v3 или боле позднюю версию. Вы можете вернуться к этому разделу когда наберётесь опыта по программированию AsmX.
@mut (название инструкции было сокращено от английского слова mutable (изменчивый, изменяемый)).@define можно использовать @immut.@set и.@define вы можете использовать стиль написания @mut / @immut (mutable / immutable).Так как многие программы определяют и собирают некие данные, а затем делают с ними что-то полезное, желательно выделить основные разновидности данных. Начнем со строковых данных. На первый взгляд строки достаточно просты, но с ними можно работать многими разными способами.
Строки из себя представляют последовательность символов, заключенных в кавычки. Можно заключать их в одинарнные или в двойные кавычки:
"String"
'String'
Существует термин whitespace который обозначает: напечатанные символы, как пробелы, табуляции и символы конца строки.
Для включения в текст позиции табуляции используется комбинация символов t, как показано в примере ниже:
@call print('AsmX')
AsmX
@call print('tAsmX')
AsmX
Список whitespace:
| code | name |
|---|---|
| n | The newline character |
| r | The carriage return character |
| t | The horizontal tab character |
| v | The vertical tab character |
| f | The form feed character |
В программировании существуют числа которые часто используются в программах для вычислений, вывода счёта игры, представления визуальных данных. В AsmX существуют нессколько числовых данных, для нача осмотрм, как AsmX работает с целыми числами, потому что с ними возникает меньше проблем.
В AsmX с целыми числами можно выполнять операции сложения, вычитания, умножения и деления.
@add 9 9
@sub 10 5
@mul 10 2
@div 45 9
@add (add- addition) - сложение чисел
@sub (sub - substraction) - вычитание чисел
@mul (mul - multiplication) - умножение чисел
@div (div - division) - деление чисел
Результаты:
18
5
20
5
Для вывода результата какого то действия вычисления нужно написать:
@call print($ret);
В AsmX числа, имеющие дробную часть, назваются числа с плавающей точкой. Обычно разработчки могут просто пользоваться дробными значениями.
@add 9.8 9.2
Результаты:
19
В записи целых чисел можно групировать цифры при помощи символов подчеркивания, чтобы числа лучше читались:
@add 10_000 78;
@call print(10078); # 10_000 -> 10000
C точки зрения AsmX 1000 ничем не отличается от записи 10_00. Этот вариант записи работает как для целых чисел в AsmX третьей версии и позднее.
Константа представляет собой переменную, значение которой остаётся неизменным. В AsmX имена констант принято записывать в верхнем регистре:
@define MIN_SCORE 100
Комментарии чрезвычайно полезны в любой программе, любом языке программирования. По мере роста объёма и сложности программы следует добавлять комментарии, описывающие действия программы, или суть реализации. Их также можно использовать своего рода заметки, написанные на понятном языке.
В языке AsmX признаком комментария является символ решётки (#). ASmX игнорирует все символы, начинающиеся с символа # до конца строки. Пример:
# Say hello to everyone.
@call print("Hello AsmX people!");
AsmX игнорирует первую строку и выполняет вторую:
Hello AsmX people!
Главная задача комменатрия - объяснить, что должен делать ваш код и как он работает. В разгаре работы над проектом вы понимаете, как работают все его компоненты. Но если вернуться к проекту через некоторое время, сокрее всего, вы забудете как работает программа. Конечно, всегда можно изучить код и разобраться, в том как программа работает, но хорошие коментарии дадут вам сэкономить время на чтение программы.
Упражнения