April's article | Апрельская статья
This commit is contained in:
41
ru/news/2024-04_llm-first-py-cxx.md
Normal file
41
ru/news/2024-04_llm-first-py-cxx.md
Normal file
@@ -0,0 +1,41 @@
|
||||
Title: Первый пример портируемого кода
|
||||
Date: 2024-04-11 00:00
|
||||
Category: News
|
||||
Slug: llm-first-py-cxx
|
||||
Lang: ru
|
||||
|
||||
# Выбор платформ для портирования
|
||||
|
||||
Для подтверждения портируемости кода я выбрал следующие платформы и языки:
|
||||
|
||||
* C++: Linux, macOS, OpenWrt, Windows
|
||||
* JavaScript: Chrome, Firefox, Safari
|
||||
* Kotlin: Android
|
||||
* Python: Linux, macOS, Windows
|
||||
* Swift: iOS, macOS
|
||||
|
||||
На указанных языках я сделал простейший аналог «Hello World», тем самым изучив требования каждой из платформ.
|
||||
|
||||
Отдельно отмечу, что самой сложной для обуздания платформой оказалась OpenWrt, т.к. поддержка моего маршрутизатора TP-Link TL-MR3020 r1 закончилась в 2018-м году. Пришлось ставить старую версию OpenWrt, что заняло три недели.
|
||||
|
||||
# Якорный язык и модель ограниченного языка
|
||||
|
||||
Весь месяц я постоянно задавал себе вопрос: «Какой язык выбрать в качестве отправной точки для конвертации в другие языки?» Сначала склонялся к C++ ввиду наличия типов. Однако, как только узнал о наличии Type hints в Python, то выбрал Python.
|
||||
|
||||
Плюсы Python:
|
||||
* возможность указать тип с помощью Type hints
|
||||
* встроенная портируемость кода Python между Linux, macOS, Windows
|
||||
* наличие pip, что даст возможность легко установить разрабатываемый инструмент в будущем на Linux, macOS, Windows
|
||||
* отсутствие шага компиляции, что существенно ускоряет итерации
|
||||
|
||||
Однако, не любой код Python подойдёт разрабатываемому инструменту. Лишь тот код, который удовлетворяет `Модели ограниченного языка` (`Limited language model`).
|
||||
|
||||
Модель ограниченного языка - это подмножество языка Python с различными ограничениями как по формату кода, так и по используемым функциям. Примерное представление можно получить из примера перевода Python в C++:
|
||||
|
||||
![Пример перевода Python в C++][pycxx]
|
||||
|
||||
# Планы на апрель
|
||||
|
||||
В апреле напишу игровую логику «Памяти» на Python, которую переведу инструментом на C++.
|
||||
|
||||
[pycxx]: ../../images/2024_llm-first-py-cxx.jpg
|
||||
@@ -30,6 +30,30 @@
|
||||
<center>
|
||||
<h1>Новости</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="llm-first-py-cxx.html">Первый пример портируемого кода</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2024-04-11 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<h1 id="">Выбор платформ для портирования</h1>
|
||||
<p>Для подтверждения портируемости кода я выбрал следующие платформы и языки:</p>
|
||||
<ul>
|
||||
<li>C++: Linux, macOS, OpenWrt, Windows</li>
|
||||
<li>JavaScript: Chrome, Firefox, Safari</li>
|
||||
<li>Kotlin: Android</li>
|
||||
<li>Python: Linux, macOS, Windows</li>
|
||||
<li>Swift: iOS, macOS</li>
|
||||
</ul>
|
||||
<p>На указанных языках я сделал простейший аналог «Hello World», тем самым изучив требования каждой из платформ.</p>
|
||||
<p>Отдельно отмечу, что самой сложной для обуздания платформой оказалась OpenWrt, т.к. поддержка моего маршрутизатора TP-Link TL-MR3020 r1 закончилась в 2018-м году. Пришлось ставить старую версию OpenWrt, что заняло три недели.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="llm-first-py-cxx.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="bus-iOS.html">Шина-iOS</a>
|
||||
@@ -196,22 +220,6 @@ Ubuntu Edge</a>. Особенностью продукта должна была
|
||||
<a href="on-the-way-to-durable-applications.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="defending-availability.html">Защита доступности</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2019-04-16 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2019-04-16_defending-availability.jpg" alt="Алтайская река Катунь" /></p>
|
||||
<p>В этой статье мы расскажем о начале усилий по защите себя от решений третьих сторон.</p>
|
||||
<p>С первого дня существования проекта Opensource Game Studio мы используем решения третьих сторон для достижения своей цели по созданию лучших средств разработки игр. Мы использовали форумы, системы отслеживания задач, списки рассылок, социальные сети, системы контроля версий кода, хостинги, компиляторы, библиотеки и т.д.. Каждое решение третьих сторон имеет свой жизненный цикл.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="defending-availability.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="pagination_title">Страница 1 из 7</p>
|
||||
<p>
|
||||
|
||||
@@ -30,6 +30,22 @@
|
||||
<center>
|
||||
<h1>Новости</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="defending-availability.html">Защита доступности</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2019-04-16 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2019-04-16_defending-availability.jpg" alt="Алтайская река Катунь" /></p>
|
||||
<p>В этой статье мы расскажем о начале усилий по защите себя от решений третьих сторон.</p>
|
||||
<p>С первого дня существования проекта Opensource Game Studio мы используем решения третьих сторон для достижения своей цели по созданию лучших средств разработки игр. Мы использовали форумы, системы отслеживания задач, списки рассылок, социальные сети, системы контроля версий кода, хостинги, компиляторы, библиотеки и т.д.. Каждое решение третьих сторон имеет свой жизненный цикл.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="defending-availability.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="teaching-kids-to-program.html">Обучение детей программированию</a>
|
||||
@@ -192,31 +208,6 @@
|
||||
<a href="mahjong-techdemo1-gameplay.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="mahjong-recreation-start.html">Начало воссоздания Маджонга</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-01-26 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2018-01-26-mahjong-recreation-start.png" alt="Сферические фишки в раскладке Маджонг" /></p>
|
||||
<p>Эта статья описывает начало воссоздания игры Маджонг.</p>
|
||||
<p><strong>План</strong></p>
|
||||
<p>Мы начали воссоздание Маджонга с составления краткого плана реализации игровой механики с минимальной графикой:</p>
|
||||
<ul>
|
||||
<li>Загрузить раскладку</li>
|
||||
<li>Поместить фишки в позиции раскладки</li>
|
||||
<li>Различить фишки</li>
|
||||
<li>Реализовать выбор фишек</li>
|
||||
<li>Реализовать сравнение фишек</li>
|
||||
</ul>
|
||||
<p>Как и любой другой план, этот выглядел вполне адекватно на первый взгляд. Тем не менее стоит начать разработку, как появляются новые детали. Этот план не был исключением. Ниже представлена пара проблем, вскрывшихся во время разработки.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="mahjong-recreation-start.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="pagination_title">Страница 2 из 7</p>
|
||||
<p>
|
||||
|
||||
@@ -30,6 +30,31 @@
|
||||
<center>
|
||||
<h1>Новости</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="mahjong-recreation-start.html">Начало воссоздания Маджонга</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2018-01-26 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2018-01-26-mahjong-recreation-start.png" alt="Сферические фишки в раскладке Маджонг" /></p>
|
||||
<p>Эта статья описывает начало воссоздания игры Маджонг.</p>
|
||||
<p><strong>План</strong></p>
|
||||
<p>Мы начали воссоздание Маджонга с составления краткого плана реализации игровой механики с минимальной графикой:</p>
|
||||
<ul>
|
||||
<li>Загрузить раскладку</li>
|
||||
<li>Поместить фишки в позиции раскладки</li>
|
||||
<li>Различить фишки</li>
|
||||
<li>Реализовать выбор фишек</li>
|
||||
<li>Реализовать сравнение фишек</li>
|
||||
</ul>
|
||||
<p>Как и любой другой план, этот выглядел вполне адекватно на первый взгляд. Тем не менее стоит начать разработку, как появляются новые детали. Этот план не был исключением. Ниже представлена пара проблем, вскрывшихся во время разработки.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="mahjong-recreation-start.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="the-year-of-lessons.html">Год новых уроков</a>
|
||||
@@ -168,26 +193,6 @@
|
||||
<a href="osg-sample.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="its-all-fine.html">Всё проходит хорошо</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-04-07 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-04_its-all-fine.png" alt="Полёт ракеты" /></p>
|
||||
<p>Эта статья рассказывает о создании первых четырёх самоучителей OpenSceneGraph в марте 2017.</p>
|
||||
<p><a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/">Первые четыре самоучителя OpenSceneGraph</a> объясняют, как создать модель куба в Blender и затем отобразить её на Linux, macOS или Windows с помощью osgviewer, стандартного инструмента OpenSceneGraph.</p>
|
||||
<p>Процесс создания одного самоучителя оказался довольно утомительным, т.к. он состоит из следующих задач:</p>
|
||||
<ol>
|
||||
<li>Записать видео с одним или более шагами. . .</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="its-all-fine.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="pagination_title">Страница 3 из 7</p>
|
||||
<p>
|
||||
|
||||
@@ -30,6 +30,26 @@
|
||||
<center>
|
||||
<h1>Новости</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="its-all-fine.html">Всё проходит хорошо</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2017-04-07 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p><img src="../../images/2017-04_its-all-fine.png" alt="Полёт ракеты" /></p>
|
||||
<p>Эта статья рассказывает о создании первых четырёх самоучителей OpenSceneGraph в марте 2017.</p>
|
||||
<p><a href="https://github.com/OGStudio/openscenegraph-cross-platform-guide/">Первые четыре самоучителя OpenSceneGraph</a> объясняют, как создать модель куба в Blender и затем отобразить её на Linux, macOS или Windows с помощью osgviewer, стандартного инструмента OpenSceneGraph.</p>
|
||||
<p>Процесс создания одного самоучителя оказался довольно утомительным, т.к. он состоит из следующих задач:</p>
|
||||
<ol>
|
||||
<li>Записать видео с одним или более шагами. . .</li>
|
||||
</ol>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="its-all-fine.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="lets-go.html">Поехали</a>
|
||||
@@ -182,24 +202,6 @@
|
||||
<a href="ogs-editor-0.10.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="yesterdays-live-session-short-overview.html">Пара слов о вчерашнем прямом эфире</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-09-26 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/_t8TGhSgJG4" frameborder="0" allowfullscreen></iframe>
|
||||
<p>Создание пасьянса Маджонг прошло успешно, и заняло менее 4 часов.</p>
|
||||
<p>Мы опубликуем материалы прямого эфира чуть позже на этой неделе.</p>
|
||||
<p>Спасибо за участие.</p>
|
||||
<p>. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="yesterdays-live-session-short-overview.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="pagination_title">Страница 4 из 7</p>
|
||||
<p>
|
||||
|
||||
@@ -30,6 +30,24 @@
|
||||
<center>
|
||||
<h1>Новости</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="yesterdays-live-session-short-overview.html">Пара слов о вчерашнем прямом эфире</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-09-26 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/_t8TGhSgJG4" frameborder="0" allowfullscreen></iframe>
|
||||
<p>Создание пасьянса Маджонг прошло успешно, и заняло менее 4 часов.</p>
|
||||
<p>Мы опубликуем материалы прямого эфира чуть позже на этой неделе.</p>
|
||||
<p>Спасибо за участие.</p>
|
||||
<p>. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="yesterdays-live-session-short-overview.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="september-live-session-announcement-tomorrow.html">Прямой эфир через 24 часа</a>
|
||||
@@ -168,23 +186,6 @@
|
||||
<a href="may-live-session-decision.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="rolling-ball.html">Запись прямого эфира "Катящийся мяч" и материалы</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-02-10 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Т.к. мы провели 2 прямые трансляции для создания игры "Катящийся мяч", ниже вы можете увидеть 2 записи этого процесса на YouTube:</p>
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/70Jny1xJxK8" frameborder="0" allowfullscreen></iframe>
|
||||
<iframe width="560" height="315" src="http://www.youtube.com/embed/851IlFT7y18" frameborder="0" allowfullscreen></iframe>
|
||||
<p>Игра "Катящийся мяч" для Linux (на основе Debian), OS X (10.9+), Windows <a title="SourceForge" href="http://sourceforge.net/projects/osrpgcreation/files/Games/RollingBall/">доступна на SourceForge</a>.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="rolling-ball.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="pagination_title">Страница 5 из 7</p>
|
||||
<p>
|
||||
|
||||
@@ -30,6 +30,23 @@
|
||||
<center>
|
||||
<h1>Новости</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="rolling-ball.html">Запись прямого эфира "Катящийся мяч" и материалы</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2016-02-10 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Т.к. мы провели 2 прямые трансляции для создания игры "Катящийся мяч", ниже вы можете увидеть 2 записи этого процесса на YouTube:</p>
|
||||
<iframe width="560" height="315" src="https://www.youtube.com/embed/70Jny1xJxK8" frameborder="0" allowfullscreen></iframe>
|
||||
<iframe width="560" height="315" src="http://www.youtube.com/embed/851IlFT7y18" frameborder="0" allowfullscreen></iframe>
|
||||
<p>Игра "Катящийся мяч" для Linux (на основе Debian), OS X (10.9+), Windows <a title="SourceForge" href="http://sourceforge.net/projects/osrpgcreation/files/Games/RollingBall/">доступна на SourceForge</a>.. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="rolling-ball.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="rolling-ball-live-session-pt2.html">Создание игры в прямом эфире (часть 2): 7 февраля 2016</a>
|
||||
@@ -165,22 +182,6 @@
|
||||
<a href="bye-desura-hello-humblebundle.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="test-chamber-for-everyone.html">Тестовый цех каждому (Редактор 0.7.0)</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-07-22 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Как вы знаете, основная цель Редактора 0.7.0 - это возможность создать <a title="Тестовый цех" href="https://youtu.be/9_6seUWcPbU" target="_blank">тестовый цех</a> с помощью него. Редактору не хватает системы Действий и исправления некоторых ошибок для этого. Помимо выпуска Редактора мы опубликуем подробную статью, описывающую создание тестового цеха, чтобы каждый мог создать себе свой тестовый цех!</p>
|
||||
<p>Мы планируем завершить его в Октябре.</p>
|
||||
<p>. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="test-chamber-for-everyone.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p class="pagination_title">Страница 6 из 7</p>
|
||||
<p>
|
||||
|
||||
@@ -30,6 +30,22 @@
|
||||
<center>
|
||||
<h1>Новости</h1>
|
||||
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="test-chamber-for-everyone.html">Тестовый цех каждому (Редактор 0.7.0)</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2015-07-22 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<p>Как вы знаете, основная цель Редактора 0.7.0 - это возможность создать <a title="Тестовый цех" href="https://youtu.be/9_6seUWcPbU" target="_blank">тестовый цех</a> с помощью него. Редактору не хватает системы Действий и исправления некоторых ошибок для этого. Помимо выпуска Редактора мы опубликуем подробную статью, описывающую создание тестового цеха, чтобы каждый мог создать себе свой тестовый цех!</p>
|
||||
<p>Мы планируем завершить его в Октябре.</p>
|
||||
<p>. . .</p>
|
||||
</div>
|
||||
<div class="news_item_more">
|
||||
<a href="test-chamber-for-everyone.html">Читать далее</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="2015-roadmap.html">Дорожная карта 2015-2016</a>
|
||||
|
||||
87
ru/news/llm-first-py-cxx.html
Normal file
87
ru/news/llm-first-py-cxx.html
Normal file
@@ -0,0 +1,87 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<meta charset="utf-8">
|
||||
<head>
|
||||
<link rel="stylesheet" href="../../style.css">
|
||||
</head>
|
||||
<body>
|
||||
<script data-goatcounter="https://services.opengamestudio.org:443/count" async src="//services.opengamestudio.org:443/count.js"></script>
|
||||
<div id="header">
|
||||
<div>
|
||||
<strong id="title">Open Game Studio</strong>
|
||||
<div id="lang">
|
||||
<a href="../../en/news/llm-first-py-cxx.html">EN</a>
|
||||
<a href="../../ru/news/llm-first-py-cxx.html">RU</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="header2">
|
||||
<div class="menu">
|
||||
<a href="../../ru/news/index.html">Новости</a>
|
||||
<a href="../../ru/game/index.html">Игры</a>
|
||||
<a href="../../ru/tool/index.html">Инструменты</a>
|
||||
<a href="../../ru/page/about.html">О нас</a>
|
||||
</div>
|
||||
<a class="discord" href="https://discord.gg/3A6THQabNf">
|
||||
<img src="../../images/discord.png"></img>
|
||||
</a>
|
||||
<div class="clear"></div>
|
||||
</div>
|
||||
</div>
|
||||
<h3 class="left_item_title">В новостях...</h3>
|
||||
<center>
|
||||
<div class="news_item">
|
||||
<h2 class="news_item_title">
|
||||
<a href="llm-first-py-cxx.html">Первый пример портируемого кода</a>
|
||||
</h2>
|
||||
<p class="news_item_date">
|
||||
2024-04-11 00:00
|
||||
</p>
|
||||
<div class="news_item_contents">
|
||||
<h1 id="">Выбор платформ для портирования</h1>
|
||||
<p>Для подтверждения портируемости кода я выбрал следующие платформы и языки:</p>
|
||||
<ul>
|
||||
<li>C++: Linux, macOS, OpenWrt, Windows</li>
|
||||
<li>JavaScript: Chrome, Firefox, Safari</li>
|
||||
<li>Kotlin: Android</li>
|
||||
<li>Python: Linux, macOS, Windows</li>
|
||||
<li>Swift: iOS, macOS</li>
|
||||
</ul>
|
||||
<p>На указанных языках я сделал простейший аналог «Hello World», тем самым изучив требования каждой из платформ.</p>
|
||||
<p>Отдельно отмечу, что самой сложной для обуздания платформой оказалась OpenWrt, т.к. поддержка моего маршрутизатора TP-Link TL-MR3020 r1 закончилась в 2018-м году. Пришлось ставить старую версию OpenWrt, что заняло три недели.</p>
|
||||
<h1 id="-1">Якорный язык и модель ограниченного языка</h1>
|
||||
<p>Весь месяц я постоянно задавал себе вопрос: «Какой язык выбрать в качестве отправной точки для конвертации в другие языки?» Сначала склонялся к C++ ввиду наличия типов. Однако, как только узнал о наличии Type hints в Python, то выбрал Python.</p>
|
||||
<p>Плюсы Python:</p>
|
||||
<ul>
|
||||
<li>возможность указать тип с помощью Type hints</li>
|
||||
<li>встроенная портируемость кода Python между Linux, macOS, Windows</li>
|
||||
<li>наличие pip, что даст возможность легко установить разрабатываемый инструмент в будущем на Linux, macOS, Windows</li>
|
||||
<li>отсутствие шага компиляции, что существенно ускоряет итерации</li>
|
||||
</ul>
|
||||
<p>Однако, не любой код Python подойдёт разрабатываемому инструменту. Лишь тот код, который удовлетворяет <code>Модели ограниченного языка</code> (<code>Limited language model</code>).</p>
|
||||
<p>Модель ограниченного языка - это подмножество языка Python с различными ограничениями как по формату кода, так и по используемым функциям. Примерное представление можно получить из примера перевода Python в C++:</p>
|
||||
<p><img src="../../images/2024_llm-first-py-cxx.jpg" alt="Пример перевода Python в C++" /></p>
|
||||
<h1 id="-2">Планы на апрель</h1>
|
||||
<p>В апреле напишу игровую логику «Памяти» на Python, которую переведу инструментом на C++.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="disqus_thread"></div>
|
||||
<script>
|
||||
var disqus_config = function () {
|
||||
this.page.url = "https://opengamestudio.org/ru/news/llm-first-py-cxx.html";
|
||||
this.page.identifier = "llm-first-py-cxx.html";
|
||||
};
|
||||
(function() { // DON'T EDIT BELOW THIS LINE
|
||||
var d = document, s = d.createElement('script');
|
||||
s.src = 'https://opengamestudio.disqus.com/embed.js';
|
||||
s.setAttribute('data-timestamp', +new Date());
|
||||
(d.head || d.body).appendChild(s);
|
||||
})();
|
||||
</script>
|
||||
<noscript>Пожалуйста, включите JavaScript для просмотра <a href="https://disqus.com/?ref_noscript">комментариев на платформе Disqus.</a></noscript>
|
||||
<div id="footer">
|
||||
Сайт сгенерирован <a href="http://opengamestudio.org/pskov/ru">ПСКОВОМ</a>
|
||||
из <a href="http://github.com/ogstudio/site-opengamestudio">этого исходного кода</a>.
|
||||
</div>
|
||||
</center>
|
||||
</body>
|
||||
</html>
|
||||
Reference in New Issue
Block a user