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
|
||||
Reference in New Issue
Block a user