Ремесло программиста

Объявление

форум на движке phpBB доступен для тестирования
www.strategia.space
www.strategia.space/forum/
по предложению Лиса - канал на Matrix - #remdev:matrix.org

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Ремесло программиста » Общие вопросы » Компилятор Павиа


Компилятор Павиа

Сообщений 1 страница 19 из 19

1

Пожалуй расскажу о себе.
Начал я писать компилятор.  Эм когда же я начал? Начал я в школе предыдущие выпускиники поступили на ВМК и писали компиляторы. Вот тогда я и начал писать свой компилятор. Начал из зависти стараясь их догнать. Хотя сейчас я их перегнал. На самом деле это была попытка. Потом не однократно возвращался и всё мне не нравилось не складывалось. Потом уже проявился мой знак задиака. Я телец и потому упрямство мне присуще. Начал читать Эхо Рави Сити, компиляторы. Пожалуй это вторая книга которую я перечитывал помногу раз. Не помню какая это была по пытка 4 или 10. Потом отложил и снова вернулся когда прочитал про BISON.  А в это время связался с товарищами из ВМК оказывается компилятор они и неделали только транслятор и тот не окончательный.
Последняя попытка самая удачная. С чего она началась? Прочитал я книгу четырёх о ООП, и тут захотелось попробовать принципы описанные в книге на живом примере. А компилятор как не как лучше подходил под это. Очень сожалею, что не прочитал эту книгу раньше.
Собственно тут уже всё и пошло. Не скажу что как по маслу. Просто стуктура компилятора мне теперь нравится и значит я на правильном пути. Многое понял, многое прочитал.
И вот пожалуй уже 2 года как пишу компилятор, предыдущие попытки не в счёт. Сейчас на работе завал полный поэтому компилятор не трогаю устою сильно пытаемся догнать за последние месяцы то что должны были делать целый год.  Пока что компилятор завис на системной библиотеке делаю строки и параллельно ввод и вывод.
Почему завис? У пёрся в тера-инкогнито.   
Казалось бы чего проще бери и читай, но тут возникает куча вопросов: Как прочитать данные если неизвестна их длина? А как прочитать если мы попадём на конец файл?Кидать исключение, создавать нули. Потоки файлы кто в иерархии главнее? От кого наследовать. Как написать программу что-бы она не зависала? А если у нас не файлы а каналы или FIFO? А что делать если у нас это не файл а устройство или сетевой сокет?
И тут ты понимаешь что я же хотел сделать в вод с терминала. А там оказывается своя сущность, со своими правилами игры.
И самое главное как сделать что-бы ввод/вывод не тормозил?  И не тормозил через 10 лет, когда компьютеры будут в 1000 раз быстрее.
Как минимум нужен буфурезированный ввод/вывод.
Поэтому пришлось учитывать все эти нюансы.
Если бы я писал свою ОС то я бы их разделил, но компилятор я делаю под существующие ОС. Есть такая область как теория управления. Абсолютно не паханный край. Никто ещё не описал чувствую себя первопроходцем. Уже собираю материал.
Вчера вот закончил изучение сигналов. Оказывается в виндоусе это сделано через .опу. Когда как в линуксе нормально.

Какая цель компилятора? Чисто конкретно меня интересует оптимизатор для других моих программ. А сейчас ещё и фазер для паскаля.

2

Павиа, Вас тяжело читать. У Вас знаки препинания отсутствуют более, чем наполовину. Пишу это не для под*бки. Меня просто удручает такое положение дел. Я бы даже дал Вам такой совет: попробуйте прочитать свой текст вслух. Или мысленно вслух. В том месте, где Вы можете сделать паузу, надо ставить знак препинания. Какой? Чаще всего запятую. Но всё зависит от контекста. А ещё, пожалуйста, пользуйтесь Вордом. Я, например, пишу это в Ворде, чтобы не мучить своих читателей моими ошибками. Знаки пунктуации Ворд не очень хорошо ловит, а вот орфографические ошибки – вполне. Надеюсь, Вы не примете мои слова как личную обиду. Мне действительно печально, когда русская речь не до конца русская.

уже 2 года как пишу компилятор

Написание компилятора – это завершающая стадия. А язык уже готов? Вы его продумали и есть описание? Или Вы пишите компилятор для чужого языка: для Oberon, С++, Rust, 1С или даже Глагола?

Как прочитать данные если неизвестна их длина?

Правильные вопросы Вы задаёте.

А в чём, простите за любопытство, уникальность Вашего языка или компилятора?

3

Юрий написал(а):

А язык уже готов? Вы его продумали и есть описание?

Юрий написал(а):

Или Вы пишите компилятор для чужого языка: для Oberon, С++, Rust, 1С или даже Глагола?

Всё меняется входе разработки. Изначально планировалось сделать Паскаль. Потом было пересмотрено и язык был упрощён, но не на много. Потом когда дошёл до кодогенерации пришлось отказать от упрощений, вернуть поддержку массивов, и маломальский семантический анализ и поддержку шестенацатеричных кодов и, заодно, кодов символов.
Наверно реализовано на 95% от Паскаля. Чего пока нету и в ближайшее время не стоит ждать, так это ООП.

По поводу есть описания... Описание идёт тяжело. Трудно писать ёмко кратко и по русски. А ещё вечно меняющаяся грамматика.
Поэтому описание создавалось и создаётся параллельно с написанием компилятора. Я не против если бы кто-то помог с её написанием. ;) У вас очень хороший слог. Даже лучше чем у автора Рефлекса.

Где-то в середине, после года разработки я набрёл на ваш сайт и сайт русских вычислителей.
Тут уже я начал придумывать свой язык.  Основное, что в нём будет это будет поддержка русского языка. Есть ещё и другие идеи.
Как-то особо прорывных идей в области языкостроения у меня нет. Скорее действую по правилам ТРИЗ, которую у нас по заимствовали  Японци для своих изобритательских целей.
Есть планы на добавления элементов параллельности в язык.

Как я вижу все инструкции будут на русском языке библиотке тоже на русском языке. Слова буду подбирать по частотному словарю из хрестоматии. Всё ещё ждёт оцифровки. Параллельно подискиваю замены для иностранных слов которые встречаются у нас очень часто.
Пока что застрял на словах «сигнал» и «слонт» из  QT, думаю надо почитать что-то по ихней философии.
Проектировать язык буду на основе Си# уж больно он мне нравится. Особенно его часть которая направлена на безопасность кода от ошибок.
Но прежде этого собираюсь подробно изучить ООП что-бы понять какие конструкции брать какие нет. Работы очень много и наверно надо сделать план,

4

Freeman
Просто вы не анимешник вот и не поняли я о чем. В Японии 4 или 5 общественных телеканалов в году 4 сезона. Каждый телеканал представляет в сезоне по одному или несколько амине.
Как они создают столько много новых аниме в год? Как они придумывают новое аниме? А придумывают они его очень просто либо скрещиванием двух других либо просто перекупают с канала 16+ и делают юмор 6+ с более плохой графикой. Либо берут сюжет у соседнего канала, но делают новых персонажей вместо выского делают низкого. Очки добавляют или убирают. В место отличника, двоечника. Вместо мальчика делают девочку или наоборот. Вот и всё их изобретения. А пипл хавает это дерьмо.
Для наглядности можете посмотреть это аниме:
http://online.anidub.com/anime_tv/full/ … iz-12.html
А чего стоит боевой доспех-горничной и боевой доспех-купальник :D Просто «улётная» фантазия. ;) Ну прям как чернила, за третий-класс и глобус Украины.

К чему я это... Изобрести что-то новое и в правда трудно. Хотя такие идеи у меня есть и мне их хватает, просто они принадлежат другим областям информационных технологий. А вот применительно к создания языка я не вижу - что тут можно улучшить! Что тут можно создать нового? Зато я вижу, что можно переставить мебель переклеить обои. Короче навести гармонию в доме. И такую же гармонию я хочу навести создав свой язык.

Бывают конечно у Японцев и шедевры. К примеру мне очень нравится сюжет призрак в доспехах. Про девушку которой заменили всё тело оставили только мозг. И теперь она вынуждена работать в кибер полиции что-бы содержать своё тело в исправном состоянии. Любой водитель знаете, что если за техникой не следить она начинает ломаться, разваливаться. Так и ей приходится следить за своим телом. А её дух хочется вырваться наружу  из этого бренного тела обрести свободу, но не может. Сюжет прост как две копейки, но захватывает. Речь идёт о не уловимом хакере под названием «смеющейся человек». Настолько не уловимом, что кажется что это не хакер, а сами машины породили интеллект который и убивает других. С одной стороны она хочет поймать этого хакера, но с другой стороны готова поверить что машины могут само совершенствоваться. Там есть еще Татикомы умные танки наделённые искусственным разумом. Этот разум тоже подконтролен людям, как и её тело.
Так вот само совершенствующие машины которых никто не контролирует заставляют нашу мис. полицейскую задуматься. Если машины сами смогли обрести сознания? И обыграть человека и создать не подконтрольный им мир. Ведь она сама тоже моет пойти этой же дорогой и выйти из под контроля государства, которое заставляет её делать грязную работу - взламывать кибер-мозги чужих правительств. И параллельно ещё одна линия сюжета это то, что переселение в интернет и замена мозга на кибер-мозг это тоже не выход.

MihalNik написал(а):

Ну, Ruby пользуется спросом, хоть и не сказать, что передовое, наверное, больше лицеприятное.

У японцев очень жёсткие права собственности. И плюс менталитет если ты не заплатил ты украл. А воровство сродни разрушению родины. Я не знаток Ruby, но могу предположить, что  создавая его они действовали  по теории ТРИЗ. При этом выбирали такие подходы которые не запатентованы. А далее они просто пользуются патентно чистой продукцией.  Язык с незапятнанной репутаций. Они очень это ценят, и буквально вынуждены за это платить. Поэтому популярность сего языка достаточно искусственная и основана на менталитете их страны.

5

Павиа написал(а):

Просто вы не анимешник вот и не поняли я о чем.
[...]
берут сюжет у соседнего канала, но делают новых персонажей вместо выского делают низкого. Очки добавляют или убирают. В место отличника, двоечника. Вместо мальчика делают девочку или наоборот. Вот и всё их изобретения. А пипл хавает это дерьмо.

Я правильно понимаю, что вы с пиплом хаваете это дерьмо и в то же время изучаете по нему ТРИЗ? Вы, это, берегите себя там... Что еще посоветовать?

6

Freeman написал(а):

Я правильно понимаю, что вы с пиплом хаваете это дерьмо и в то же время изучаете по нему ТРИЗ? Вы, это, берегите себя там... Что еще посоветовать?

У меня с детства был пытливый ум, который стремился к изобретениям.Плюс лицейское образование, которое было направленно на развитие  мышления, а не заучивания знаний. С нас всегда требовали рассказывать суть своими словами при этом требовали строгого, без ошибочного соответствия учебному материалу. А также мы решали не стандартные задачи, далеко выходящие за рамки средней школы.
Поэтому правила теории решения изобретательских задач(ТРИЗ), я открыл самостоятельно. Мне не нужно их изучать. Просто когда я говорю о ТРИЗ, я имею в виду их словесное описание. Слова позволяют поместить мысль в тело, что позволяет передать его другим. А люди должны понимать мою мысль и если она заключена в тело они смогут её ощутить и понять. 

Одного ТРИЗ не достаточно что-бы создать ноу-хау. Поэтому и шедевров у Японцев мало. Нужен ещё рецепт как выйти за черту обыденности и серости. Говорят гении могут выйти за эти рамки. Я вам скажу больше, они могут не просто выйти за рамки проблемы, но и свободно ходить как по бескрайнему пространству. Хотя гениальность это не только талан, но и колоссальный труд. Себя генеем не считаю, лень мне. Так вот рецепт, как выйти за рамки обыденности и как бродить по терра-инкогнито у меня есть. Одна маленькая проблема выразить знания на понятном и простом языке затруднительно. Вот русский язык подучу и запишу.

Что касается аниме, то я не люблю однообразие. Не смотрю фильмы дважды, не читаю книги дважды. За редким исключением. Поэтому аниме для меня отдушина.
Хотя им я уже практически переболел и теперь оно меня не интересует. Уже полгода или год его не смотрю.

7

оффтоп:

Павиа написал(а):

А чего стоит боевой доспех-горничной и боевой доспех-купальник

Х.з., но горничная в купальнике стоит не дёшево)

Павиа написал(а):

Поэтому и шедевров у Японцев мало.

Пионеры в индустрии фото- и видеотехники. Да и много чего ещё.
Шедевров у них как раз много, просто странно искать их в сердце потребительской культуры - рос. ТВ ничуть не лучше  (сравните их Анимэ с нашим Дом-2), про автомобили молчу.
Язык свой они сделали. По Вики:

очень, очень хотелось, чтобы был истинно объектно-ориентированный, простой в использовании язык.


Новый сенсор японцев, который ещё даже не получил названия, способен снимать 1080p-видео частотой 960fps и 4К-видео частотой 60fps.

Почти 1000 кадров/сек - это потрясающие возможности.

Или вот мытьё смартфонов с мылом - очень даже здоровая пропаганда гигиены.

Нужен ещё рецепт как выйти за черту обыденности и серости.

Есть такое понятие - мера, которая определяет, где все эти черты.
В программировании многое давно исследовано - Бек, Макконнел, Фаулер.

Заявлять, что более 100 млн. человек все как один думают словно по шаблону - как минимум, странно.
А их политика всесторонней изоляции кончилась очень давно, остался лёгкий культурно-половой расизм, который можно понять - гражданам такого уровня развития цивилизации, наверное, не очень комфортно будет жить в других странах или массово принимать жителей других стран.

Отредактировано MihalNik (2017-03-20 19:40:33)

8

Ну вот, теперь наглядно видно причину, по которой я перестал писать на OSDev.ru: стоит создать тему, как в ней тут же отпишется Павиа в своей "тягучей" манере, попутно ляпнет что-то провокационное и сольет всё нафиг. На OSDev.ru я еще пытался как-то бороться, отделяя бред от здоровых высказываний, но остальные молчали, поэтому плюнул. Полностью согласен с Юрием:

Юрий написал(а):

Павиа, Вас тяжело читать. У Вас знаки препинания отсутствуют более, чем наполовину. Пишу это не для под*бки. Меня просто удручает такое положение дел. Я бы даже дал Вам такой совет: попробуйте прочитать свой текст вслух. Или мысленно вслух. В том месте, где Вы можете сделать паузу, надо ставить знак препинания. Какой? Чаще всего запятую. Но всё зависит от контекста. А ещё, пожалуйста, пользуйтесь Вордом.

Я бы посоветовал не только пользоваться Word-ом, но и сверять написанное с тематикой обсуждения, но чую, что совет пропадет втуне.

Слава богу, тут остальные не молчат, и темы пока не состоят из флуда чуть менее, чем полностью. И на том спасибо.

Из самой темы я пока понял, что Юрий и Павиа создают свои языки без внешней постановки. Возникает закономерный вопрос: считаете ли вы, что русская основа будет достаточным поводом для использования ваших языков на практике? Будут ли у них еще какие-то значимые преимущества? Которые вы можете объяснить своей бабушке, да.

9

Freeman написал(а):

Слава богу, тут остальные не молчат


У меня в январе был конфликт с Павиа по этой же причине. Я сейчас отписал администратору просьбу передать модераторские права от Павиа к Feeman. Считаю, что так будет лучше. По крайней мере вопросы сценариев использования и экономических обоснований мне интересны, и эти вопросы важны в общем, заслуживают более глубокого обсуждения. Если я чего буду писать, буду публиковать на основном форуме cantorsys (на старом), потому что мой конфликт c Павиа не был разрешен.

10

Freeman
Аналогичное могу сказать про вас. Вроде тему интересную поднимаете, а потом как начнёте свою тягомотину. Вроде бы и хочется по слушать ваши вебинары, но тратить 2 часа на тему которая укладывается максимум в 10 минут, - не решаюсь. Между прочим данный тренд вы сами увели от темы.

Freeman написал(а):

что русская основа будет достаточным поводом для использования ваших языков на практике? Будут ли у них еще какие-то значимые преимущества? Которые вы можете объяснить своей бабушке, да.

Да, но это очень далёкие планы. Я хочу оживить каменный цветок.  При помощи фрактальной природы.
Представь как упроститься разработка самоорганизующимся и само развивающихся программ которые так нужны разработчикам роботов, программ машинного зрения и аналитикам больших данных. Им достаточно будет сделать один лист кода, а потом фрактал сам вырастит сложную систему.
Но также это можно применить и в обратную сторону сложную архитектуру программы можно будет упростить. Программы станет легче писать, легче тестировать.

А по поводу бабушки надо подумать.

11

Лис написал(а):

Я сейчас отписал администратору просьбу передать модераторские права от Павиа к Feeman.

Ёлки... Я пришел на этот форум, чтобы побыть простым пользователем, который высказывает идеи наравне с остальными, -- чтобы проверить их годность на практике, тсзть. Получение модераторских прав в этот план не укладывается. Мне по-любому нужен внешний форум с обычным социумом, тут надо что-то придумать.

Возможно, обсуждение каких-то необывательских идей и правда стоит перенести на форум "Канторовых систем" (цвета хаки). Пока главная проблема на моем форуме -- пишу я на нем практически один.

Павиа написал(а):

Вроде бы и хочется по слушать ваши вебинары, но тратить 2 часа на тему которая укладывается максимум в 10 минут, - не решаюсь.

Так не слушайте, никто вас не заставляет. Дождитесь, когда всё будет обсосано в разговорах до такой степени, что удастся записать. Своими нововведениями LiveEdu порушили мои планы, так что это теперь будет позже, чем казалось зимой.

12

Лис написал(а):

Я сейчас отписал администратору просьбу передать модераторские права от Павиа к Feeman.

Поддержу! Главное, он знает что делать: :D

Freeman написал(а):

за такое банить нужно<...>в топку

Давно привык свои сообщения всегда сохранять)

Freeman написал(а):

Так не слушайте, никто вас не заставляет.

Но тогда и сообщения Павиа не должны доставлять Вам особого дискомфорта.

Отредактировано MihalNik (2017-03-21 23:55:52)

13

Freeman написал(а):

Мне по-любому нужен внешний форум с обычным социумом


Да нет, Вам нужен не обычный форум, а необычный, отличающийся от обычного политикой модерирования.
Обычных форумов как грязи:
rsdn.org
opennet.ru
linux.org.ru
ixbt.com
и т.д.

ну и вообще поисковики для этого есть - https://top100.rambler.ru/?query=программирование

А если нужна политика модерирования, то кто-то должен её осуществлять. И если претензии к модератору - для форума это негативно, а с личной точки зрения - так и вовсе форум непригоден.

Freeman написал(а):

Получение модераторских прав в этот план не укладывается.


Ну если гражданская ответственность отсутствует - кушайте что есть. И не говорите, что Вам не предлагали возможности изменить мир к лучшему.

Отредактировано Лис (2017-03-22 00:18:07)

14

Лис написал(а):

Да нет, Вам нужен не обычный форум, а необычный, отличающийся от обычного политикой модерирования.

Мне нужен форум, где посты про поиск ТРИЗ в аниме будут переноситься из темы "Какую задачу решает ваш язык/программа" куда-нибудь в болталку или в специально выделенный раздел, где обсуждается ТРИЗ в аниме. Я не буду в него заходить, и всё.

15

Freeman написал(а):

Мне нужен форум, где посты про поиск ТРИЗ в аниме будут переноситься из темы "Какую задачу решает ваш язык/программа" куда-нибудь в болталку или в специально выделенный раздел, где обсуждается ТРИЗ в аниме. Я не буду в него заходить, и всё.


Мне такие движки форумов неизвестны (хотя я не эксперт по ним).

И это в целом непросто, потому что может потребоваться разрезать пост на части и добавлять контекст, чтобы он сохранялся в ответвляемом топике.

Отредактировано Лис (2017-03-22 00:20:55)

16

Как мощны его лапищи!

17

Попрошу всех воздержаться от взаимных упреков и так далее.
вернее ведь искать то, что нас объединяет а не разницу.

я имею себе правило - не менять свои правила)
первое решение, чаще всего, наиболее верное.

каждый, по истечению определенного времени и сделав некий вклад в наш диалог, получит привилегии и сможет модерировать и администрировать так,
как ему кажется верным, не нарушая при этом идиллию остальных.

на текущий момент есть двое администраторов с противоположным мнением - и это хорошо.
я прошу Вас давайте прибегать к административным мерам сообща.

и вспоминая один из тезисов Freeman - для обсуждения подобных вопросов давайте будет отдельная тема.
считаю что в теме о компиляторе Павиа обсуждать иные вопросы не целесообразно.

18

Лис написал(а):

Мне такие движки форумов неизвестны (хотя я не эксперт по ним).

Я забыл написать, что разделение тем -- задача модераторов, как меня поняли и так. В качестве перекрестной ссылки дам ТЗ от Pavia, аналогичным образом выделенное на OSDev.ru.

19

Freeman написал(а):

Мне нужен форум, где посты про поиск ТРИЗ в аниме будут переноситься из темы "Какую задачу решает ваш язык/программа" куда-нибудь в болталку или в специально выделенный раздел, где обсуждается ТРИЗ в аниме. Я не буду в него заходить, и всё.

Дело в том, что другие люди не высказывают желания этим заниматься, а само собой оно пока так не случается.

Freeman написал(а):

Я забыл написать, что разделение тем -- задача модераторов, как меня поняли и так.

Правильно, но когда за это не платят, всё остаётся на усмотрение модератов, включая степень их свободности/ленивости.
Уборщиками не хотят программисты работать, тем более бесплатно :D

Отредактировано MihalNik (2017-03-22 01:11:28)


Вы здесь » Ремесло программиста » Общие вопросы » Компилятор Павиа