Мои размышления. Компьютер. Программирование. Языки программирования
Підписуйтеся на Telegram-канал «DOU #tech», щоб не пропустити нові технічні статті
Мои размышления. Компьютер. Программирование. Языки программирования. 1. Введение. Существование. Размер. Замануха в названии предполагает, что читать сей опус будут люди типа «очень программисты» потому предупреждаю, что знакомые понятия появятся не скоро. Моя цель очень скромная. Построить систему и язык программирования с минимумом определений. Так как это мои размышления, то давайте обсудим, для начала, природу понятий и их необходимость. Итак, представляем, что у нас ничего нет. Но очень хочется. Первое, что нам понадобится это память. В научных кругах ходят упорные слухи, что эта штука является основой интеллекта. И я с этим полностью согласен. Но мы о компьютерах, и реализации моих задумок в очень даже практическом смысле, потому с очевидностью (для профессионалов) нам потребуется место. Хочу обратить внимание на последовательность. Именно размер того об чем мы будем говорить (в смысле загрузок, хранения, протоколов обмена и многого другого) первичен. Смысл и понятия этого чего-то появится позже. Ну, ведь говорить, рассуждать и взаимодействовать с чем-то возможно, только если оно существует, а значит, имеет размер. Интересующиеся философией мне возразят, что совершенно не обязательно существование связано с материальной природой объекта. И даже приведут в пример существование сюжета «Войны и Мира» без материального носителя. У меня будет что им возразить немного позже. Пока займемся размером. Кажется, что тут рассуждать. Перед вот этим чем-то ставим размер да и всех делов то. Это логично. Но мало кто обратил внимание, что уже появилось первое ПРАВИЛО! Однако у этого правила есть недостаток. Для указания размера тоже нужно место. Потому мы неизбежно стоим перед определением первого понятия-единицы измерения памяти. Бит-это, конечно, классика, но нам хотелось бы побольше. 4 бита. Токен (Token). Вот и пусть это будет первым понятием. А вот теперь разовьем первое правило определения размера до более общего правила объединения (группирования) любых наших штук до вот такого не просто правила но и синтаксиса. 1. Правило определения группирования. Нечто, перечисляемое в скобках с подстрочным и надстрочным значениями после закрывающей скобки, означающим соответственно минимальное (Min) и максимальное (Max) значение содержания. По умолчанию значения Min и Max=1. Пример 1. Определение байта. Т.е. два токена. Для тех, кто не в курсе) Concept Byte {Token}2 Не знаю как вам, а мне надоело называть предмет неизвестной штукой. Давайте назовем его концептом(Concept). Как минимум появляется какой-то осмысленный синтаксис. Это я за пример 1. А сущность объединяющая концепты назовем группой (Group). Нас можно поздравить!!! Мы имеем уже аж три понятия. 2. Структура. Расположение. В предыдущем примере мы как-то легко пропустили по причине «само собой понятно» еще одно понятие. Свойство. Т.е. значения Min и Max являются свойствами. И у них должно быть свое место расположения в определении концепта. Тем, что мы (по умолчанию) приняли, что размер должен идти перед данными мы определили структуру будущего концепта, в котором размер должен идти первым. А ведь это наглядный пример определения свойства будущего концепта. Определять концепт, очень разумно определив его класс. Не особо заморачиваясь определим синтаксис концепта как «Имя класса концепта» «Имя концепта». И вот само слово Concept и определяет концепт. И делаем мощный интеллектуальный прорыв, обозначив определение свойства таким неожиданным словом «Dim». Вот теперь и определим концепт Group. Пример 2. Определение концепта Group Concept Group { Dim Token Min=1 Dim Token Max=1} Продвинутый синтаксис Concept Group { Dim( Token(Min=1, Max=1)}} Надеюсь понятно, что скобками можно группировать. Группирование круглыми скобками требует разделения концептов запятыми. Теперь мы можем определять структуру концепта и, соответственно, создавать понятия по расположению в концепте. Да, да. Понятие можно определять и по расположению а, не только определяя класс. Да мы так зачастую и делаем. Просто не обращаем внимания. Это еще один нюанс, требующий внимания. Для обращения к концептам недостает очень важного понятия «Address». В программировании мы используем идентификаторы. В общем случае это адреса данных. Но, если построение системы в наших руках, то мы можем разместить классы в каком-то порядке. Тогда адрес (вернее какая-то его часть) является определением понятия. Если адрес строить по этим правилам, то можем получить очень любопытные последствия. Я б не хотел останавливаться сейчас подробно о построении (структуре) адреса. Я обещал напомнить о материальном существовании сюжета «Война и Мир». Он существует материально в нашем сознании в качестве адреса. На этом можно и закончить первую часть, резюмируя: Систему можно построить, и я ее построил, вот на этих 5 понятиях. Здесь много чего не хватает. Методов и событий. Но, методы строятся по тем же правилам что и свойства. А событий, в общем случае, всего 2 (=0 и =1). Остальные это комбинации этих событий. Я смог придумать всего 16. Всем спасибо. Если будет интерес, то продолжу.
Найкращі коментарі пропустити