|
Труд вопреки насмешкам
|
|||||||||||
C↑ᶜC. Дерево нового потомка BCPL засияло ярко-голубыми цветами05.10.2019, 20:41. Показов 2157. Ответов 23
Метки нет (Все метки)
Сегодня, 5 октября 2019 года - великий день! Наконец перечислены все текущие, будущие, устаревшие и зарезервированные конструкции C↑ᶜC, о которых я в настоящее время имею хоть какое-то понятие, включая пространства имен, операторы и неявные преобразования. Когда-то давно, я помню, я писал, что были посеяны семена дерева C↑ᶜC. Потом эти семена раскрылись, взошли, появились первые ростки, затем - листья, бутоны и, наконец - цветы! Слово "голубые" присутствует в названии темы не случайно. Для начала, голубой - цвет магии, а она очень пригодится дереву, так как над ним нависла железная крыша - синтаксический анализатор, а дерево, хоть уже и цветет, но еще очень маленькое и хрупкое, и без магии ему железную крышу не пробить. Кроме того, в какой-то книге, я помню, я читал, что цвет зарождения жизни и начала чего-либо нового - именно голубой, а именно из цветов, а не, например, из листьев, зарождаются плоды, поэтому "голубые цветы" можно считать аллегорией, замкнутой сама на себя. Наконец, голубой - цвет Венеры, то есть вселенской любви и красоты. При всем этом голубой - незаслуженно обиженный цвет, который часто путают со светло-синим - я даже видел на упаковке красок инструкцию, что чтобы получить голубой цвет, надо смешать синий с белым. Ну ладно, напишу без лирики - я завершил список конструкций C↑ᶜC и готов приступить к самому сложному - СИНТАКСИЧЕСКОМУ АНАЛИЗАТОРУ!
Считаю, что настоящая тема достойна находиться в разделе по C#, так как C↑ᶜC - прямое продолжение C#, так как разработка языка Cω была свернута. И плохая новость: преимущество C↑ᶜC перед C# в отношении оператора .. больше не является преимуществом - Microsoft опередила меня в этом отношении. Если еще через пару лет эти индусы создадут аналог Юноны - C↑ᶜC можно будет сворачивать, так как он одинаково не будет иметь никакого смысла. Но это ЕСЛИ, а пока что язык активно разрабатывается.К слову, о Юноне. А ей и так несладко. Она уже была разрушена и фактически не жива. Господин Usaga был прав - революционная "фича" в виде Юноны не оказалась ничем, кроме незнания языка и попытки переизобрести неизвестные мне вещи. Хоть я и не знаю, что означает само слово "фича". Как бы там не было, "нумерующее отображение" оказалось полностью эквивалентным по смыслу хеш-таблице, которая, скорее всего, и используется в методе Join. Если бы в C# была типизированная хеш-таблица, в нумерующем отображении не было бы смысла. И в C↑ᶜC это именно так. Так что, может быть, на две или три недели Юнона рухнула. А потом, как феникс, переродилась в совершенно новом виде - превратилась в унарный оператор и стала эту самую хеш-таблицу и создавать. Теперь такой код:
list имеет тип list() T, то ⚵list - тип HashTable[T, int]. А также, что Linq в создании такой хеш-таблицы в C# не поможет, так как метод ToDictionary создает словарь, реализующий типизированный интерфейс IDictionary, а один из конструкторов хеш-таблицы требует нетипизированного.И не факт, что Юнона не умрет во второй раз, теперь уже действительно навсегда. Недавно читал одну статью на просторах Интернета, и там шла речь о высокоуровневых языках программирования. И автор поднял тему индексации - с какого числа начинать отсчет элементов в коллекции. И его там поносили как не знаю кого. Кто знает, действительно ли эта тема - одна из "священных коров" программирования? Понимаю, что это привычно и т. д. Но подумайте сами, кого лучше переучить - один раз тех, кому "привычно", а возможно, и ноль раз, так как новые языки программирования не отменяют старых, пусть старые деды доработают на "привычных" им языках, или постоянно всю молодежь в школах и университетах? Думаю, первый вариант несоизмеримо лучше. А что касается технической стороны этого вопроса - мы живем в век оптимизирующих компиляторов, и сделать при компиляции поправку на -1 - элементарная задача, да и по времени на фоне серьезных оптимизаций это даже не почувствуется. Так почему же мы в конце второго десятка XXI века все еще индексируем с нуля? Совпадение или нет (а я думаю, что нет), но я решил для себя, что в C↑ᶜC все коллекции, кроме массива, будут индексироваться с единицы, задолго до того, как прочитал эту статью. Думаю, что я с этой идеей не одинок во Вселенной. А что думают об этом господа читающие эти строки? Информация о C↑ᶜC все больше систематизируется, что также в явном виде свидетельствует о прогрессе. На момент написания настоящих строк уже готова сравнительная таблица C# и C↑ᶜC, в которой различия представлены в наглядном табличном виде. Как видно, большинство описаний в C# короче, но по смыслу в C↑ᶜC - лучше. Прошу оценить, правду ли я пишу.
0
|
|||||||||||
| 05.10.2019, 20:41 | |
|
Ответы с готовыми решениями:
23
Старое и новое о C↑ᶜC. На дереве нового потомка BCPL завязались плоды [Воздушные замки] C↑ᶜC. Посеяны семена нового потомка BCPL C# и C↑ᶜC. Реальность и планы |
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|
| 05.10.2019, 22:16 | |
|
0
|
|
|
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
|
|
| 05.10.2019, 22:56 | |
|
0
|
|
|
Труд вопреки насмешкам
|
||
| 06.10.2019, 10:14 [ТС] | ||
|
Даже здесь, где раздел не для трёпа, никому не интересно по серьезному рассмотреть вопрос индексации, или предложить какие-либо новые конструкции, которых вам очень не хватает при разработке на C#? А большинство конструкций C↑ᶜC являются для меня именно такими. Много ли вы видели в Интернете разработчиков, открытых к идеям совершенно посторонних людей (да, на форуме мы знакомы, но мы же не работники одной компании, например?) - попробуйте предложить что-нибудь в Microsoft. Как вы думаете, ее "верхушка" как минимум прокомментирует ваше предложение? Максимум - вас потроллят один-два блогера. А мой язык открыт к идеям со стороны. Разумеется, если только это не оскорбления в стиле "ваш язык - мусор" и не отсылка в учебники. Так никто не хочет поучаствовать в продолжении линии потомков BCPL?
0
|
||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||
| 06.10.2019, 10:31 | ||||
|
Извините, но смысл остального потока сознания я не уловил. У меня не было цели что-то предлагать или критиковать в вашем языке, и уж тем более указывать на разницу между языком и структурами данных — играйтесь на здоровье как вам нравится. Я лишь указал на фактическую ошибку. Ну и по поводу предложений в Microsoft — язык C#, внезапно, открытый: предложения может делать (и даже — о ужас! — самостоятельно реализовывать) кто угодно. Так что зря вы так на "верхушку".
0
|
||||
|
Труд вопреки насмешкам
|
|||
| 06.10.2019, 10:37 [ТС] | |||
Hashtable<TKey, TValue>, где вместо TKey и TValue можно подставлять любой тип, а не только object. Без явных преобразований в этот тип. Но я почти уверен, что такого в C# нет.
0
|
|||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||
| 06.10.2019, 10:40 | ||
|
Оба присутствуют со второй версии языка, т.е. с 2005-го года.
0
|
||
|
Труд вопреки насмешкам
|
|
| 06.10.2019, 10:48 [ТС] | |
|
kolorotur, так фишка в том, что в Dictionary<TKey, TValue> ключи вообще не упорядочены, и поиск занимает линейное время. Думаю, вы поняли, о чем я. А в C↑ᶜC конкретно есть класс
HashTable[TKey, TValue]. Я понятно выражаюсь?
0
|
|
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||
| 06.10.2019, 10:56 | |||
|
Если нужно упорядоченное множество, то имеется класс SortedSet — он поставляется с 2010-го года. В SortedDictionary и в SortedSet — O(logn)
0
|
|||
|
Труд вопреки насмешкам
|
||||||
| 06.10.2019, 11:45 [ТС] | ||||||
0
|
||||||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
||||||
| 06.10.2019, 12:35 | ||||||
Это там тоже написано, прямо в описании класса:
Наличие отличной документации? По поводу кода: что он должен продемонстировать?
0
|
||||||
|
Труд вопреки насмешкам
|
|||
| 06.10.2019, 12:41 [ТС] | |||
|
0
|
|||
|
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
|
|||
| 06.10.2019, 12:49 | |||
|
Почему разные коллекции тестируются с разными данными? Почему в следующем тесте замеряются артефакты, вызванные работой предыдущего теста? Каким образом эти тесты должны проверять сложность поиска? Или они не для этого созданы? Кто же так тесты-то пишет?
0
|
|||
|
Труд вопреки насмешкам
|
|||
| 06.10.2019, 12:54 [ТС] | |||
|
1
|
|||
|
14138 / 9367 / 1350
Регистрация: 21.01.2016
Сообщений: 35,262
|
||
| 28.10.2019, 07:58 | ||
|
Добавлено через 4 минуты Посмотрел я этот файлик и не нашёл ни одного путёвого "преимущества" вашего велосипеда перед C#. NIH?
0
|
||
|
|
|
| 28.10.2019, 08:59 | |
|
В пункте "Логические операторы" вашего документа вы сильно лукавите. Во-первых, xor у вас никакой не N-арный. Вы его просто применяете N-1 раз. Во-вторых, в C# есть xor - это ^
Ну и про станционное программирование. Чем ваши "станции" отличаются от оператора goto ?
0
|
|
|
Труд вопреки насмешкам
|
||||
| 28.10.2019, 11:40 [ТС] | ||||
|
P. S. Ответ в теме через 3 недели после предыдущего - уже тянет на некропостинг...
0
|
||||
|
14138 / 9367 / 1350
Регистрация: 21.01.2016
Сообщений: 35,262
|
||
| 28.10.2019, 11:48 | ||
|
0
|
||
|
Труд вопреки насмешкам
|
|
| 28.10.2019, 11:57 [ТС] | |
|
Usaga, ну, я считаю, что в течение недели еще есть смысл что-то писать. Если тема актуальна и дальше - об этом должен уведомить автор темы, например, словами "Тема актуальна". Но если я в этой теме такого не сделал, значит, тема не актуальна. А писать в неактуальных темах - это и называется некропостинг.
0
|
|
|
|
|||||||||
| 28.10.2019, 11:58 | |||||||||
0
|
|||||||||
| 28.10.2019, 11:58 | |
|
Помогаю со студенческими работами здесь
20
Создание квадродеревьев (дерево, в котором у каждого внутреннего узла ровно 4 потомка) Вызов специфических для потомка функций, не зная класса потомка Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|