{
    "version": "https:\/\/jsonfeed.org\/version\/1.1",
    "title": "Блоги: заметки с тегом TeX",
    "_rss_description": "Автоматически собираемая лента заметок, написанных в блогах на Эгее",
    "_rss_language": "ru",
    "_itunes_email": "",
    "_itunes_categories_xml": "",
    "_itunes_image": false,
    "_itunes_explicit": "no",
    "home_page_url": "https:\/\/blogengine.ru\/blogs\/tags\/tex\/",
    "feed_url": "https:\/\/blogengine.ru\/blogs\/tags\/tex\/json\/",
    "icon": false,
    "authors": [
        {
            "name": "Илья Бирман",
            "url": "https:\/\/blogengine.ru\/blogs\/",
            "avatar": false
        }
    ],
    "items": [
        {
            "id": "124760",
            "url": "https:\/\/bolknote.ru\/all\/basix\/",
            "title": "BaSiX",
            "content_html": "<p>Волею судеб попалась на глаза старая заметка, где я <a href=\"https:\/\/bolknote.ru\/all\/2927\/\">писал<\/a>, что где-то в интернете увидел упоминание «Бейсика», написанного на языке <i>TeX<\/i>.  Сам интерпретатор у меня тогда найти не получилось.<\/p>\n<p>То был 2001-й, поисковые машины работали плохо, поэтому я решил посмотреть не найдётся ли тот «Бейсик» сейчас.<\/p>\n<p>Нашёлся без проблем, интерпретатор называется <a href=\"https:\/\/ctan.org\/tex-archive\/macros\/generic\/basix\"><i>BaSiX<\/i><\/a> и реализует весьма небольшое подмножество бейсика, всего <a href=\"https:\/\/tug.org\/TUGboat\/Articles\/tb11-3\/tb29greene.pdf\">несколько команд<\/a>, на котором всё-таки можно написать что-нибудь несложное.<\/p>\n<p>К сожалению, я совсем не знаю <i>TeX<\/i>, но подозреваю, что автору пришлось немало потрудиться, чтобы реализовать хотя бы то, что есть на этом языке — всё-таки он задумывался как часть системы для компьютерной вёрстки академических текстов, а не как язык общего назначения.<\/p>\n<p>Попробовал реализовать на <i>BaSiX<\/i>е вычисление значения числа «Пи» рядом Лейбница, получилось приближенное значение с небольшой ошибкой в четвёртом знаке после запятой.<\/p>\n<pre class=\"e2-text-code\"><code class=\"basic\">00 print &quot;Leibniz formula for PI. 2023. https:\/\/bolknote.ru&quot;\n10 let num=4000000\n20 let den=1\n30 let sum=0\n40 let sign=1\n50 if sign then let sum=sum+num\/den\n60 let sign=1-sign\n70 if sign then let sum=sum-num\/den\n80 let den=den+2\n90 if den&lt;18663 then goto 50\n100 print sum\nrun<\/code><\/pre><p>Дробных чисел интерпретатор не поддерживает (и отрицательные числа, кстати, тоже), поэтому число «Пи» у меня выводится как целое: <tt>3141699<\/tt>, но если поставить запятую на требуемую позицию, то будет довольно близко к <tt>3,141592…<\/tt>.<\/p>\n<div class=\"e2-text-picture\">\n<img src=\"https:\/\/bolknote.ru\/pictures\/2023.12.07@2x.jpg\" width=\"1000\" height=\"432\" alt=\"\" \/>\n<div class=\"e2-text-caption\">Результат запуска программы — число 3141699<\/div>\n<\/div>\n<p>Ничего сложнее этого (например, «<a href=\"https:\/\/bolknote.ru\/tags\/beer99\/\">песню о пиве<\/a>») написать не получится — в языке нет почти ничего для работы со строками, например у оператора <tt>print<\/tt> только один аргумент и тот выводится исключительно с переводом строки в конце.<\/p>\n<p>Я пытался вчера вечером допилить интерпретатор при помощи ЧатаГПТ 3.5, но для кованого мешка такое слишком сложно.<\/p>\n",
            "date_published": "2023-12-07T14:02:18+05:00",
            "date_modified": "2024-05-16T19:33:29+05:00",
            "tags": [
                "TeX",
                "программирование"
            ],
            "author": {
                "name": "Евгений Степанищев",
                "url": "https:\/\/bolknote.ru\/",
                "avatar": "https:\/\/bolknote.ru\/pictures\/userpic\/userpic@2x.jpg?1760600028"
            },
            "_date_published_rfc2822": "Thu, 07 Dec 2023 14:02:18 +0500",
            "_rss_guid_is_permalink": "false",
            "_rss_guid": "124760",
            "_rss_enclosures": [],
            "_e2_data": {
                "is_favourite": false,
                "links_required": null,
                "og_images": []
            }
        }
    ],
    "_e2_version": 4079,
    "_e2_ua_string": "Aegea 11.0 (v4079e)"
}