שחרור של Brython 3.10, הטמעות של שפת Python עבור דפדפני אינטרנט

מהדורה של פרויקט Brython 3.10 (Browser Python) הוצגה עם יישום של שפת התכנות Python 3 לביצוע בצד דפדפן האינטרנט, המאפשרת שימוש ב-Python במקום ב-JavaScript לפיתוח סקריפטים לרשת. קוד הפרויקט כתוב ב-Python ומופץ תחת רישיון BSD.

על ידי הכללת הספריות brython.js וbrython_stdlib.js, מפתח אינטרנט יכול להשתמש בשפת Python כדי להגדיר את ההיגיון של האתר בצד הלקוח, באמצעות Python במקום JavaScript. כדי לכלול קוד Python בדפים, השתמש בתג с mime-типом «text/python». Допускается как встраивание кода на страницу, так и загрузка внешних скриптов (). Из скрипта предоставляется полный доступ к элементам и событиям DOM. Помимо доступа к стандартной библиотеке Python предлагаются специализированные библиотеки для взаимодействия с DOM и JavaScript-библиотеками, такими как jQuery, D3, Highcharts и Raphael. Поддерживается использование CSS-фреймворков Bootstrap3, LESS и SASS.

ביצוע קוד Python מבלוקים производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «». На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект PyPy.js предлагает для выполнения Python-кода в браузере скомпилированный в asm.js интерпретатор CPython, а Skulpt реализует интерпретатор на JavaScript).

הביצועים הסופיים של רוב הפעולות בסקריפטים של Python המוטמעים בדפי אינטרנט קרובים לביצועים של CPython. העיכוב מתרחש רק בשלב הקומפילציה, אך כדי לבטלו ניתנת האפשרות לטעון קוד JavaScript מהידור מראש, המשמש להאצת הטעינה של הספרייה הסטנדרטית (Brython מספק כלים ליצירת ספריות JavaScript המבוססות על מודולי Python ).

המהדורה החדשה כוללת תאימות עם Python 3.10, כולל תמיכה באופרטורים של התאמת תבניות (התאמה/מקרה). הגרסה החדשה מציעה גם הטמעה ראשונית של עץ תחביר מופשט (AST, Abstract Syntax Tree) עבור שפת Python, אשר לאחר מכן ניתן להשתמש בו כדי ליצור קוד JavaScript מ-AST אוניברסלי.

מקור: OpenNet.ru

הוספת תגובה