Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Клуб программистов > Свободное общение
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.10.2024, 09:56   #11
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,674
По умолчанию

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

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

К примеру, в школьные годы решил написать игру в шашки (по правилам русских шашек). После того, как сделал интерфейс пользователя, встал вопрос реализации интеллекта. Было интересно обдумывать разные варианты, прокручивая их в голове и представляя, как компьютер в том или ином случае будет играть. По факту пришел к идеи перебора всех ходов сначала за компьютер, а затем всех возможных ответных ходов за игрока и так вглубь. Придуманный алгоритм реализовал, компьютер начал неплохо играть, меня даже обыгрывать. Но позже узнал, что мой алгоритм, это минимаксный поиск, то есть вполне себе известный алгоритм, придуманный задолго до меня. Однако весь кайф был именно в поиске решения проблемы и в создании своего собственного алгоритма. Знал бы я заранее про минимакс, возможно, забросил бы разработку, так как никакого интереса повторять за кем-то не было. А так хоть и был изобретен велосипед, но сам процесс изобретения, это и была самоцель.
Arigato вне форума Ответить с цитированием
Старый 15.10.2024, 21:31   #12
MihalNik
МегаМодератор
СуперМодератор
 
Регистрация: 27.11.2012
Сообщений: 5,684
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Может, у кого другая методика, но вообще-то начинать работу, не имея плана, могут только пчёлы. У них алгоритм построения сот в ПЗУ от рожденя заложен. А при разработке языка БНФ - это и есть такой план.
Если ЯП без хитростей, можно писать код парсера почти эквивалентный БНФ, с точностью до оберточных знаков и функций.
Но БНФ - изначально бумажный формат работы времен медленных вычислений и ничтожных объемов памяти. Как и тетрадь в клеточку.
И вообще это точно не план разработки ЯП.
Благими намерениями устлана дорога на programmersforum.ru

Последний раз редактировалось MihalNik; 15.10.2024 в 21:42.
MihalNik вне форума Ответить с цитированием
Старый 15.10.2024, 22:09   #13
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,657
По умолчанию

Ну вот, а я не знал... И пользовался при разработке. Не прав был, видимо
Когда работаешь в команде - как сотрудницам описать их участок работы? Рисованием в воздухе замысловатых фигур? Многостраничным описанием?
Немного, может, не в тему: моя "наставница" по конструкторским делам говорила: "Язык технолога - слова. Язык конструктора - графика" . И я, грешным делом, когда работал больше с уклоном в электронную часть - прежде рисовал схему, а потом брался за паяльник. А надо было бы, как в радиолюбительском фольклоре: "Спаял - включай. Что лишнее - отгорит".
Я вообще - не любитель спорить. В каждой избушке - свои побрякушки. Дела давно минувших дней. Сейчас, возможно, появились некие мета-языки, позволяющие по заданному синтаксису строить парсеры и генераторы кода, но я уже далёк от этих дел.
Возвращаясь к истокам: желающие оценить-помочь ТСу, видимо, всё же хотели бы видеть описание языка хоть в каком виде. Бог с ними, с БНФ, с СД.

Последний раз редактировалось digitalis; 15.10.2024 в 22:21.
digitalis вне форума Ответить с цитированием
Старый 16.10.2024, 12:03   #14
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,674
По умолчанию

Цитата:
Сообщение от Alisov0808 Посмотреть сообщение
Пока что что-то больше вывода в консоль будет сложно написать, так как язык ещё на раннем этапе развития.
Ну что же, давайте посмотрим, что скажет нейронка по поводу этого языка. Загрузил файл с документацией для обучения нейронки этому языку. Итог изучения:
Цитата:
Я изучил документацию по языку программирования Lumin. Вот основные моменты:

Синтаксис и компиляция:
Программа компилируется через ввод имени файла в консоли.
Поддерживаются различные форматы: winconsole, bios, lconsole.
Есть команды для инициализации и форматирования.

Импорт и ассемблер:
Можно импортировать файлы, скомпилированные через fasm, и включать их с помощью import или include.

Работа с консолью:
Поддерживаются команды для работы без ОС, например, вывод с помощью bprint, ввод символов через binputchr, а также очистка экрана и настройка цвета текста.
Для ОС Windows и Linux поддерживаются команды через библиотеку lib/scioc.asm для работы с вводом-выводом и вызовов системных команд.

Функции и метки:
Определение функций происходит с помощью func, с возвратом значений через ret.
Метки аналогичны функциям, но не завершаются автоматически, их используют для разделения кода.

Циклы и условия:
Поддерживаются циклы типа loop, которые можно использовать как while и for.
Условные операторы: if, else, с возможностью использования логических операторов и сравнения строк.

Массивы и динамическая память:
Работа с массивами: добавление и удаление элементов.
Управление памятью через команды allocm и freem.

Типы данных и структуры:
Типы данных: byte, word, dword, qword и другие.
Определение структур с возможностью создания экземпляров через crtstruc.

Ассемблерные вставки и классы:
Возможны вставки ассемблерного кода внутри программы.
Поддержка классов с конструкторами и возможностью создания экземпляров.

Работа с файлами (winfile библиотека):
Создание, чтение, запись, удаление файлов и директорий через функции winfile.

Теперь я готов помогать тебе писать программы на этом языке! Какую задачу ты хочешь решить на Lumin?
Попробуем решить задачку: "Напиши программу на языке Lumin для вывода последовательности чисел Фибоначчи."
Ответ:
Цитата:
Вот пример программы на языке Lumin для вывода последовательности чисел Фибоначчи:

lumin

Код:
func Fibonacci
{
    byte n=10       # Количество чисел Фибоначчи, которые нужно вывести
    dword a=0       # Первое число последовательности
    dword b=1       # Второе число последовательности
    dword temp=0    # Временная переменная для хранения следующего числа
    byte i=0        # Счетчик

    print a         # Выводим первое число
    print b         # Выводим второе число

    loop i, n, less
    {
        temp = a + b        # Вычисляем следующее число как сумму двух предыдущих
        print temp          # Выводим следующее число
        a = b               # Переносим значение b в a
        b = temp            # Переносим значение temp в b
        i+=1                # Увеличиваем счетчик
    }
}

# Вызов функции для выполнения
entrypoint Fibonacci
Описание:

Переменные:
n — количество чисел Фибоначчи, которые нужно вывести.
a и b — начальные числа последовательности (0 и 1).
temp — временная переменная для хранения текущего числа.
i — счетчик для цикла.

Логика:
Цикл loop продолжает вычисление до тех пор, пока счетчик не достигнет n.
В каждом шаге цикла вычисляется следующее число последовательности как сумма двух предыдущих.
Число выводится через команду print.

Вывод:
Программа выводит первые 10 чисел последовательности Фибоначчи.

Ты можешь изменить значение переменной n, чтобы получить другое количество чисел.
На счет корректности программы с точки зрения синтаксиса языка не в курсе, так как сам документацию не изучал и компилировать этот код не пытался. Ну может ТС проверит у себя.
Arigato вне форума Ответить с цитированием
Старый 18.10.2024, 14:07   #15
Vapaamies
Просветитель
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,844
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
Когда работаешь в команде - как сотрудницам описать их участок работы?
Вот и спалился. О какой команде речь? Я русским языком написал: одиночному разработчику может не хватать ресурсов для БНФ. Это на работе черпай глубже — кидай дальше, там не до сантиментов. А нам потому-то и приходится слать всех советчиков подальше в исследовательской и передовой разработке, ибо что вам велосипед — нам предмет разработок или даже бизнеса. Мера вынужденная, так сказать. А вас слушать — всё уже сделано до нас, бери да пользуйся. Весь энтузиазм убиваете.

Цитата:
Сообщение от digitalis Посмотреть сообщение
Может, у кого другая методика, но вообще-то начинать работу, не имея плана, могут только пчёлы.
Не стал писать в том посте, что тоже разрабатываю язык программирования, поскольку сайт на вечной переделке. Но тоже могу сказать за себя.

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

У автора же темы задача намного более простая — всё пощупать. Как это можно было не понять, не представляю.
Цитата:
Сообщение от Arigato Посмотреть сообщение
Для себя можно создавать так, как сам это видишь, не утруждаясь изучением теории. Поскольку во втором случае ты по сути просто пройдешь стандартный путь. И зачастую это убивает энтузиазм.
Цитата:
Сообщение от Arigato Посмотреть сообщение
Сам придумывал алгоритмы, которые, как выяснялось позже, уже были придуманы до меня. Но сам процесс самостоятельного поиска решения как раз и доставлял удовольствие. А взять из книжки готовый пример, это совсем не то, быстро надоедает.
Цитата:
Сообщение от Arigato Посмотреть сообщение
А так хоть и был изобретен велосипед, но сам процесс изобретения, это и была самоцель.
Вот Arigato всё понял.
В разработке: воспроизводственный контур ИТ
Vapaamies вне форума Ответить с цитированием
Старый 19.10.2024, 10:38   #16
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,657
По умолчанию

Я так и не понял: каких РЕСУРСОВ может не хватать даже одиночному разработчику перед началом работы? План работы для начала нужен? Думаю - да. Оформить его не мешало бы как-то визуально, чтоб не держать в бошке, и периодически заглядывать? Думаю - да. А как - в виде БНФ, синтаксической диаграммы, схемы алгоритма или ещё - дело десятое. У меня обычно ресурсов хватало - несколько jpg умещались в винчестер.
Ну ладно, не буду больше об этом. Каждому - das Seine.
Только вот насчёт ж@пализинга так и не понял - кто и кому его должен делать. Видимо, сказывается у меня недостаток общей культуры - отстал от современного стиля корректного ведения дискуссии.

Последний раз редактировалось digitalis; 19.10.2024 в 10:45.
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать свой язык программирования? future7 Свободное общение 19 05.05.2015 01:08
создать графический редактор в лазарусе!половину сделал а дальше никак не могу( кнопки все всё правильно сделал,а все равно не раб soso1 Помощь студентам 2 24.10.2013 17:05
Свой язык программирования Дэнис Помощь студентам 32 28.02.2012 07:17
Thank you.С длинной арифметикой в задаче с динамикой(пол задания сделал).Язык:Си. trebor Помощь студентам 1 05.01.2011 15:02
Свой язык программирования koljsch Общие вопросы C/C++ 4 07.04.2009 22:15