Продолжение формализации. Некоторые идеи #2
Запись от CoderHuligan размещена 03.04.2020 в 14:32
Показов 18134
Комментарии 221
|
(Добавлено позднее: это конечно заблуждение, но оно интересно с точки зрения фантазии...) Кстати, о птичках (не так сложно написать компилятор, как формализовать ЯП без сайд эффектов )Если не отказываться от стека (пусть даже виртуального), а все же оставить некую общую структуру для передачи данных, то можно сделать вот что. Можно обратную польскую запись, как бы это мягче выразиться.. - даже не "выровнять", а обратить любое выражение в последовательность элементарных инструкций, как это было описано в предыдущем посте данного блога, но гораздо проще. Что предлагается? А вот что: Итак: 1) у нас есть, допустим стек; 2) но мы не хотим использовать сложные вложенные выражения со скобками, которые трудно разбирать; 3) использовать старшинство операций по умолчанию(источник ошибок); 4) нас тошнит от синтаксиса Forth; 5) мы хотим все сделать "по компьютерному" а не по.... Чтобы не ходить далеко, начнем сразу с примера: Допустим у нас есть классическое инфиксное выражение (для домохозяек ):
Теперь у нас имеются кроме бинарных и "унарные" операции. Использую термин "унарные" только в данном контексте и прошу не путать их с унарными в обычном. Запишем вышеприведенное выражение таким образом (сразу предупреждаю, что это НЕ префиксная и НЕ постфиксная запись!!!):
Теперь, что же мы получили в итоге? Мы, внимание, - выровняли выражение, и привели его к естественным последовательностям инструкций! Это значит, что теперь это выражение стало совершенно естественным, так как его нужно читать слева направо до самого конца, чтобы его понять, как читаем мы обычные тексты. Нам не нужно прыгать по выражению в поисках первой операции по старшинству. Также мы избавились от лишних промежуточных переменных (как это было в прошлом посте), коих просто нет. Обозначение и лексическое отделение бинарных операций от унарных требует своей проработки. например, унарную операцию "+" можно представить бинарной при помощи ключевого слова "ADD": ADD 3 в. Или использовать односимвольное обозначение. Более того, такую запись возможно сжимать убирая пробелы между операциями:
Более полная проработка данной идеи будет, надеюсь, позднее. Мы привели Forth к нормальному человеческому виду при этом оставив его простоту.. А теперь пойдем дальше и... приготовьтесь.. избавимся и от "бинарных" операций! Преобразуем наше выражение 3 + 4 × (2 − 1) в:
(В выражении a > b, "a" кладется на стек, а оператор > снимает значение переменной со стека сравнивает это значение с "b") Логическое выражение:
Заметьте: длина нашего выражения не длиннее обычного, куда-то испарились все приоритеты, а читать стало намного приятнее! Еще это позволяет почти один в один транслировать выражение в байт код виртуальной машины, надеюсь преимущества тут совершенно очевидны: высокая скорость трансляции. Предлагаю назвать такой способ записи выражений "прямым", хотя предлагайте свои варианты наименования. Прошу не судить строго. Я пока нахожусь в поиске. Спасибо за внимание. | |||||||||||||||||||||||||||||||||||||||||||||
Размещено в Без категории
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 221
Комментарии
-
Кто вам сказал? Специально открыл PHPStorm сделал метку и goto - прекрасно переходят и подсвечивает если метка отсутсвует.
Сообщение от CoderHuligan
Может быть... Только вот пока вы не довели до конца ни одного проекта смысла говорить об это нет ни какого. В чем вы видите тупик? В том, что все используют непонятные для вас скобки, приоритеты и НЕ используют goto?
Сообщение от CoderHuligan
С чего вдруг? Какие исследования вы проводили? На данный момент этот "факт" не более чем мнение неопытного человека, хотя и достаточно начитанного для такого уровня. Но начитанность ни чего не меняет: у меня был преподаватель - ходячий справочник по TurboPascal. Но когда он увидел что я строю менюшки (псевдографика) при помощи процедуры с параметрами, а не копирую один и тот же код оп всей проге - он был в восторге. Да и вообще только за то, что моя программа имела "красивые" менюшки поставил 5 и даже увидев, что программа выполняет основную задачу с ошибкой, просто сказал "бывает".
Сообщение от CoderHuligan
Эту тему стоит обсуждать только тому, кто имеет большой опыт. И на реальных задачах нашел недочеты любого из подходов.
Сообщение от CoderHuligan
В том то и ваша проблема - у вас нет цели, у вас есть процесс. Т.е. вам завтра надоест идея с языком.. Вы начнете свои паттерны программирования рожать, уже на том же ООП.
Сообщение от CoderHuligan
Запись от voral размещена 07.04.2020 в 10:20
-
Запись от Croessmah размещена 07.04.2020 в 10:59
-
Почему мне не понятные? Я понимаю. Но я также понимаю, что структурная парадигма это парадигма костылей, таковой и останется.
Посчитайте сколько раз в вашем коде используется та или иная функция? Обычно либо 1 раз, либо всего несколько. И как правило в каждом конкретном контексте требуется своя разновидность.
Но я не против повторного использования кода. Только код этот должен использовать крайне дозированно, так как создается большая связность модулей. Если один модуль пользуется функциями другого, то он становится зависим от этого другого. Модули должны общаться через интерфейсы.Запись от CoderHuligan размещена 07.04.2020 в 10:59
-
Хулиган тебя самого кнутом надо бичевать вот за это:
Историю он знает.
Реалии на самом деле не сильно изменились. Хороший софт выгодно отличается от неповоротливого нечта.
В основном это, конечно, к скорости относится. Хотя с ростом объёмов даже загрузка программы в память
стала происходить не быстро, что, конечно, нельзя отнести к плюсам.
Нет, лишь критикую голимых дилетантов, которые как раз нихрена не знают ни истории IT, ни элементарных азов.
Попытка казаться "важными" лишь за счёт чужих имён и подражать "блогерам" типа рассказывающих
всем правду, выдавая желаемое за действительное - это такое себе. Твои тезисы пока ничем не подкреплены.
Любителям твое говно не нужно будет, не потому что "мода", а потому что оно реально говно. После пары сотен
строк макаронины, любой любитель охренеет и начнёт искать способ упростить себе жизнь. И мало того, что он
не напишет на нём ничего толкового, так ещё и потратит кучу времени на переучивание потом.
И так давай по порядку.
Во-первых, ты лопух, напутал последовательность, сначала родилось процедурное программирование, потом уже
структурное. Во-вторых структурное программирование это, объективно, на сегодняшний день общепризнанный
стандарт и то что гарантированно точно не вызывает сомнений у большинства программистов профи(у всех кого
видел точно), многие языки верны этой концепции. И она разумеется включена в программистскую базу,
без которой жопа. В-третьих, я говорил про структуры данных и алгоритмы, а не не про структурное программирование.
Это вещи как бы разные. Почему про это говорил, практикующему кодеру должно быть понятно. Не практикующий
- ему один фиг, что конь, что людь, смешались и всё в тумане.
В-четвёртых: разные парадигмы нужно применять по обстоятельствам, там, где они действительно нужны.
Не выйдет склепать на колене что-то среднее между одной и другой парадигмой, скрестив слона и носорога.
Создание фундаментальных концепций это не блоггинг, а серьёзное вкалывание и десятки лет шаманства.
В-пятых: авто нумерация и переход кликом по GOTO поможет чуть более чем никак в разработке софта.
А вот что реально поможет любителю так это можно и так понять, т.е. различный WYSIWYG инструментарий,
аналитика UI, ускорение процессов ввода и компиляции, проработка интуитивно понятных конструкций языка,
встроенный функционал, который позволит им не лазать в нутра и изучать тонны информации. Чтобы это сделать
нужно самому лезть в нутра и изучать эту самую гору инфы, по твоей поделке видно, что с этим большой напряг.Запись от Quiet Snow размещена 07.04.2020 в 11:11
-
Связность - вещь неизбежная и крайне зависимая от архитектуры. Большая она только у лохов,
не способных оную корректно разработать.
Не раскрыта проблематика вопроса. А конкретно - на кой чёрт?
1) Динамические библиотеки менеджит система, 2) кроссплатформенность достигается за счёт
либо ограничения синтаксической базы с последующим ретранслированием, либо за счёт библиотек
под платформы.
Ещё раз повторю вопрос - на кой чёрт?
Про кроссплатформенность уже писал трактаты о куче дилетантов, о куче багов в СПО и что сама
идеология голимый голяк в силу того, что мучаются поголовно. У многих даже и нет возможности
тестировать, откомпилировать то тебе под мак, линукс может откомпилируют, но с нулём тестов - это высер.
И ведь срут, что самое главное, срут и не краснеют, своими какахами софтовыми, прям на людей.
Но программист конечно не виноват, EULA своё вписал и свободен.Запись от Quiet Snow размещена 07.04.2020 в 11:44
-
Очень интересно. С одной стороны люди, которые решают реальные задачи. Кто на дядю работая, кто для души в опенсорсе. В конечном итоге получаются рабочие продукты. С другой стороны один-единственный чувак, который считает, что знает как правильно всё делать, но оказался не в состоянии один небольшой проект консольный довести до ума, чтобы показать, что он прав. И при этом утверждающий, что миру нужна IDE, которая будет по коду сама метки расставлять, а подходы, когда метки вообще не нужны - фу и дураками придумано.
Я правильно понимаю ход ваших мыслей?Запись от Usaga размещена 07.04.2020 в 11:59
-
Давать оценочные суждения можно только с позиции опыта за плечами. У вас его нет. Соответственно, все ваши выводы - ошибочны. И начинать ваять свой трансляторокомпилятор основываясь на ошибочных выводах глупо. И уже тем более сомневаться в адекватности тех, кто в отличие от вас может писать код. Работающий.Запись от Usaga размещена 07.04.2020 в 12:07
-
В неумелых руках любая парадигма превращается в свалку костылей. Не путайте парадигму с теми кто ее использует. И не вешайте бирку на всех. Хотя я больше склонен считать, что вы их считаете костыльной потому что не понимаете.
Сообщение от CoderHuligan
Это что за бред?
Сообщение от CoderHuligan
А это в любом случае так. Или ваш метод GOTO, который вы недавно пропагандировали, избавляет от этой связанности? Нет он таки наоборот позволяет прыгнуть в любое место любого кода, полностью разрушая границы между отдельными модулями. Т.е. там в принципе не возможно работать через "интерфейсы". В методах, которые вы считаете костыльными, это предполагается по умолчанию. Т.е. какждая функция, метод это должна быть черная коробка с одним входом и с одним выходом.
Сообщение от CoderHuligan
Выписывая очередную метку, ваш код ни как не проверяет собраны ли все необходмые для его работы параметры. Т.е. по сути вы сразу после каждой метки должны писать блок проверки используемых далее параметров.Запись от voral размещена 07.04.2020 в 12:24
-
Я не совсем о том. Раньше даже быдлокодер был загнан в очень осязаемые рамки и должен был думать. А сейчас когда опертивка в гигабайтах, диск в терабайтах... Быдлокодеру раньше проект надоест, чем он диск забьет (ну за редким исключением)
Сообщение от Quiet Snow
Запись от voral размещена 07.04.2020 в 12:27
-
Уже убедился, что эту тему человек либо понимает, либо нет. Это совокупность совести, знаний,
редких профессиональных качеств и уважения к пользователю. Уже рассказывал на что оно опирается.
Страдает в основном окружающая среда. Есть такой термин как деградация. Так вот это результат
всеобщей деградации. В нормальном обществе это порицается, у нас же всем насрать. Особенно
это касается людей, не вдающихся в подробности и тех у кого "всё на мази". Когда человеку говоришь
что та или иная программа потребляет несоразмерное своим задачам кол-во ресурсов, должна например
в клик загружаться или быстро считать\выводить те или иные вещи, а он на тебя смотрит, вылупив
тупые глазёнки - тут контакт теряется. Потому что люди не понимают как должно быть, тёмные люди,
не просвещённые. И оправдания в этом деле - тоже херовая вещь. Этому говну нет оправдания,
это равносильно тому, что со страной происходит. Ну был доллар 30 рублей, потом стал 55, да ладно,
всё хорошо потеряли люди половину своих денег - нормально. Потом 65, тоже ничего, живём не сдохли,
сейчас почти 80, да ничего насрать, хоть двести. Подумаешь ещё треть денег просрано.
Так же и с софтом, ну подумаешь работает в 2 раза медленнее, да насрать, ну можно и в три раза
медленнее сделать, да хоть в 10, железо толстое, вытащит, можно на этом даже бабок срубить(как
делали и продолжают Microsoft, я уверен вендоры им отстёгивают приличное кол-во бабла за то чтобы
они сделали хуже).Запись от Quiet Snow размещена 08.04.2020 в 06:24
-
Запись от Usaga размещена 08.04.2020 в 06:40
-
Запись от Quiet Snow размещена 08.04.2020 в 07:44
-
Запись от Croessmah размещена 08.04.2020 в 12:12
-
Запись от Avazart размещена 08.04.2020 в 14:06
-
Запись от Usaga размещена 08.04.2020 в 15:08
-
Запись от Usaga размещена 08.04.2020 в 15:23
-
Знание = кол-ву И качеству реализованных проектов. С удовольствием посмотрел бы ваши.
Сделайте себе рекламу лишний раз.
Вполне логично после столь громких слов о моём "не знании" и не понимании вопроса.
Но помните, что сюда разные люди заходят. Например, ребята с ассемблера могут случайно зайти.
Мне насрать чё ты там слышал. Язык укороти. Прежде чем молвить, что другие сказочники
себя представь для начала. Сам кто вообще? Проекты свои покажи. А там видно будет какое ты
имеешь отношение к оптимизации и не только.
Хорошо, "сказочник" приведёт несколько примеров из индустрии потешить неверующую публику:
1) Несколько лет назад довелось видеть забавную ситуацию, XP vs Win10 на абсолютно одинаковом железе.
Конфа офисная была, проц. точно не припомню, целерон D двухъядерный 2.8ГГц, идеальные условия для определения
потребляемых ресурсов. Ближе к сути: на XP вся прокрутка была плавно(там были довольно приличые таблицы
в EXCEL), на глаз кадров 80-100, на 10-ке на прокрутку было больно смотреть. Реально больно, кадров 7-8 от силы,
для осознания насколько всё тупило - ALT+TAB срабатывал примерно через пол секунды, на компах было по 4GB памяти,
из запущенного только браузер с mail.ru и EXCEL. Разница по загрузке mail-a была гениальная: XP - 4 секунды,
10-ка - 13 секунд.
2) Чисто по, имхо, говняному дот NET-у, который конечно начнёшь защищать. Но факт фактом.
Банальная вещь консоль управления NVidia, при переходе на данную "технологию" качественно
отожралась. Исходно запуск был в клик(пол секунды первый старт, меньше - последующие),
стало около 15-секунд первый старт(сразу после установки), 4 секунды - последующие.
Очень показательно тут как раз то, что сама консоль визуально и функционально не претерпела
никаких изменений, т.е. чистое и корректное сравнение. Применение изменений тоже стало
происходить значительно медленнее. Посему, если часто требуется что-то менять и настраивать
в ней - пользователь будет гарантированно страдать. И всё это на не самом плохом железе, на Core i7 4820k.
На компах похуже будет соотв. жопее. Сказать честно - это просто позорище сраное.
Необходимости этого делать не было. Но лохи из NVidia, отвечающие за этот конфиг так не считают.
Про совместимость этого гавна тоже можно поговорить отдельно. Хотя это больше тупость разработчиков
софта, которые считают себя самыми умными и не желают делать 32 разрядные сборки + поголовное
игнорирвоание концепции "из коробки". Например Restream Chat постоянно каждые пару дней себя
обновляет. Были случаи, когда это говно после обновления требовало обновить ещё и фреймворк,
только уже руками. Т.е. проблемы пользователю на ровном месте = днище позорное.
Из .NET программ оставил себе только одну - VidCoder(из-за единственной функции масштабирования в 4k),
однако ни про какой быстрый старт речи не идёт, тот же HandBrake безнетовских времён загружался
почти в клик. На моём i7 VidCoder - это 22 секунды.
Люди уже реально забыли что такое мгновенный запуск программ в клик. Даже то что когда-то давно
так работало требует нескольких секунд ожидания.
3) Было и такое: https://www.cyberforum.ru/pure... 27902.html
Виндовая лажа. Такие штуки невозможно предвидеть. К слову именно тогда при переходе с XP на 7,
остальные Dx9 приложения "обфусцировались" в скорости в среднем раза в три. Это всё спокойно
проверяется и подтверждается на железе тех лет, т.е. P4, С2D(775-е) + например 7xxx\8xxx\9xxx серии GeForce-ов.
Производитель ОС массово слил хорошее(на тот период) железо.
Сейчас дядя Usaga конечно же начнёт нам затирать, что мы нищеброды и у нас говно железо, мол надо
обновить
для того чтобы сраная менюшка с двумя галочками заработала нормально и что четвёртые
пни\целероны и т.п. которых валом на разных предприятиях - уже никому не нужны. Хотя на этих машинах
в 2005-м вполне бодро работала вторая халфа (P4 3HGz, GeForce 6600GT) - 45-50 FPS. И чтобы их слабыми
(физически устаревшими) счесть, нужно совсем двинуться бошкой. Да и тащили они всю повседневщину
года до 2010-го абсолютно спокойно.Запись от Quiet Snow размещена 08.04.2020 в 20:44
-
Впрочем ради бога. Кесарю кесарево, слесарю слесарево. Можно и дальше считать что это профи сделали
так, что в классической теме в семёрке при попытке верх окна присобачить к верху экрана(выделение на
весь экран) начинается дичайшее слайд шоу, будто комп не может это отобразить и отобразить плавно.
К слову лет так 15 тому назад мой загрузчик BMP файлов на ассемблере, с диска делал это со
скоростью кадров 30 на 200-м MMX-е, на разрешении 640x400. Можно было и гораздо быстрее сделать
почитав соотв. литературу, но даже банально экстраполировав это на современное железо мы не получаем
7-10 кадров в секунду(да да именно так с этим вопросом справляется GTX 980 на core i7), оболочка же
использует аппаратное ускорение, да и в целом её скорость не сильно выше в данном режиме. Повторюсь ПОЗОРИЩЕ.
И люди, которые всё это защищают - тоже позорище.
Зацитирую с другого форума(пост 2016 года):
А теперь посмотрим ваши доводы, реальные тесты, опыт и практику, на чём она основана.Запись от Quiet Snow размещена 08.04.2020 в 20:44
-
Запись от Avazart размещена 08.04.2020 в 21:24
-
Так покажите нам затраты труда.
Обычно так и игнорируют вопросы, тихо сливаясь.
Полно уже было прищучено.
Хорошая издёвка. Пусть исправляет их тот дилетант, кто насрал и кто не может ответить за свой говнокод.
Предпочитаю писать рабочие инструменты.
Скорее люди, без розовых очков, в вопросах оптимизации.Запись от Quiet Snow размещена 08.04.2020 в 23:16

)
):


