Среда, 28 Октября 2020, 12:20

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Форум игроделов » Программирование » Общие обсуждения программистов » Создание своего ЯП
Создание своего ЯП
StageДата: Воскресенье, 27 Ноября 2011, 14:19 | Сообщение # 21
постоянный участник
Сейчас нет на сайте
Quote
Можно попробовать, если ты знаешь и понимаешь C++, пару ассемблеров, WinAPI, английский язык....

Кто-нибудь сможет объяснить зачем мне С++ и пара ассемберов и уж тем более WinApi для создания языка? Очередной высер экспертов? Вон у noTformaT истина в посте. У остальных ассемблер головного мозга судя по всему.

Quote
Действительно.Пиши сразу машинным кодом!

Неужели ты думаешь, что языки пишут на ассемблере? Вы совсем там веществами упарываетесь чтоли, пацаны.
OsgДата: Воскресенье, 27 Ноября 2011, 14:43 | Сообщение # 22
был не раз
Сейчас нет на сайте
Stage, "пацан" ты жги чаще, мне будет веселей жить на свете.
1) ассемблер нужно знать для понимания того как процессор программируется вообще, как им управлять. Трансляция программы в исполняемый машинный код выполняется ассемблером.
2) знание архитектуры виндоуз и винапи необходимо для того чтобы твой мегакомпилятор смог создавать исполняемый файл пригодный для работы в ОС виндоуз - очевидно правда?
Без этих двух (по крайней мере) вещей говорить о разработке собственного ЯП может только больной человек.


Цитата века:
"А теперь давай пооясни мне по хардкору для чего мне знание ассемблера, виндуса и winapi при разработке языка программирования" © Stage
StageДата: Воскресенье, 27 Ноября 2011, 15:02 | Сообщение # 23
постоянный участник
Сейчас нет на сайте
Раскудахтался то как.
1) Да. А теперь ответь почему я должен транслировать программу на своем языке в нативный код?
2) Ну вот тут то ты и сфейлился. Исполняемым форматом виндус является PE. Следовательно, для того, чтобы успешно собирать исполняемые файлы под виндус мне достаточно знать этот формат. WinApi и уж тем более архитектура(!!!) windows мне здесь никаким боком не нужны. Почему тобой был выбран виндус мне тоже не понятно, притянул все за уши. Искпертность твоих сообщений зашкаливает вобщем.
05142Дата: Воскресенье, 27 Ноября 2011, 15:12 | Сообщение # 24
постоянный участник
Сейчас нет на сайте
Osg,
1) Процессор и создание своего ЯП связанны разве что при написании компилятора, что делать вовсе не обязательно. См. п. 2.
2) Виндуз? Знаете, в последнее время человекочасы дороже времени исполнения, и всё более популярен байт код, итрепретация, зато кроссплатформенная.


mecinvader
OsgДата: Воскресенье, 27 Ноября 2011, 15:24 | Сообщение # 25
был не раз
Сейчас нет на сайте
Вау, школьник дочитал книгу васи пупкина до главы Portable Executable.

Quote (Stage)
1) Да. А теперь ответь почему я должен транслировать программу на своем языке в нативный код?

чтоб его понял процессор, кэп.

Quote (Stage)
2) Ну вот тут то ты и сфейлился. Исполняемым форматом виндус является PE. Следовательно, для того, чтобы успешно собирать исполняемые файлы под виндус мне достаточно знать этот формат.

который используется для создания EXE, DLL, SYS, или ты чистый РЕ собралсо запускать? ))

Quote (Stage)
WinApi и уж тем более архитектура(!!!) windows мне здесь никаким боком не нужны.

тут просто фейспалм. Написать тебе учебник на тему зачем вообще нужна операционная система? Или проги создаваемые твоим мегакомпилятором не нуждаются в ОС, тогда странно смотреть на твои заявления типа "нахрена мне ассемблер".

Quote (Stage)
Почему тобой был выбран виндус мне тоже не понятно, притянул все за уши.

Выбери ЛЮБУЮ другую, это не избавит тебя от необходимости знать её архитектуру.

Quote (Stage)
Искпертность твоих сообщений зашкаливает вобщем.

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

Добавлено (27.11.2011, 15:24)
---------------------------------------------

Quote (05142)
1) Процессор и создание своего ЯП связанны разве что при написании компилятора, что делать вовсе не обязательно. См. п. 2.
2) Виндуз? Знаете, в последнее время человекочасы дороже времени исполнения, и всё более популярен байт код, итрепретация, зато кроссплатформенная.

Конечно, только интерпретатор нового мегаЯП с неба упадёт или его тоже придётся писать?


Цитата века:
"А теперь давай пооясни мне по хардкору для чего мне знание ассемблера, виндуса и winapi при разработке языка программирования" © Stage
noTformaTДата: Воскресенье, 27 Ноября 2011, 15:29 | Сообщение # 26
Ukrainian independent game developer
Сейчас нет на сайте
Quote (Osg)
1) ты знаешь ассемблер?
2) ты знаешь как устроен и работает процессор?
3) Ты знаешь всё о виндоуз и винАПИ?
4) Зачем нужен именно твой язык программирования, для каких задач конкретно?
5) Чем он будет лучше существующих?

1) зачем нужен ассемблер? Например я пишу яп под названием PI.... Он будет выполнятся в ос ВиндовсХП.... По логике мой компилятор должен компилировать листинг с яп PI сразу же в машинный код... ммм, а современный ассемблер и машиный код - это разные вещи. Где в этой цепочки я должен поставить асм?
2) мммм, компилятор паскаля был написан на паскале. У питона есть реализация компилятора на питоне... Для примера питон не может взаимодействовать с ЦП на прямую... Дальше задумайся над тем, зачем нам нужно знать архитектуру процессора для написания своего яп и компилятора для него smile
3) ВинАпи? ммм, вот код на языке PI:
var myVar:Number = 10;
var myVar2:Number = Math.random() * myVar;
ммм, ну и зачем мне вин апи?
Идем далее, я развиваю своя яп PI, и для этого создаю для линуха/вин/ фраемворк под названием dotPI, и язык PI#. То есть я тупо копирую структуру dotNet и c#. ммм, нужен ли мне ВинАПи в этом случае?
Если бы я писал яп, который работает с функциями винапи - вот это другое дело... Но, единственное что-бы делал мой яп в этом случае - вызывал функции апи.... Тоесть я бы тупо подключил к своему яп библиотеку с вин апи. И всех делов... Изучать вин апи мне не пришлось бы...
4) чисто риторический вопрос. Например, в России начнут проводит конкурс на национальный яп....
5) продолжая пункт 4, моя язык ПИ и его следующие поколения, возьмет все самое лучшее с уже существующих яп. Для примера в ас3 есть нативная поддержка ХМЛ, а в паскале ее нет... Если я реализую эту фичу, то мой яп будет круче в этом вопросе чем паскаль. Так же я реализую поддержку доступа к "ЦП", и мой яп будет круче чем джава. И т.д.....


@noTformaT
StageДата: Воскресенье, 27 Ноября 2011, 15:30 | Сообщение # 27
постоянный участник
Сейчас нет на сайте
Quote
чтоб его понял процессор, кэп.

Сявка, что мне мешает написать язык под JVM или написать для него интерпретатор.

Quote
который используется для создания EXE, DLL, SYS, или ты чистый РЕ собралсо запускать? ))

Да ты же клоун.

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

Понимаешь, такие как ты - они именно что Иксперты. Просишь их за слова ответить, так они фейспалмы лепят, да школотой называют. Даешь им примеры - проходят мимо и снова за старое.
yarickyarickДата: Воскресенье, 27 Ноября 2011, 16:37 | Сообщение # 28
Маленький лицемер
Сейчас нет на сайте
Flyns, Билл Гейтц например в 14 лет компьютер придумал=)
shizofren, очень полезное сообщение!*Сарказм*
Cre-game, Сначала дождись ЯП потом такое пиши...
Osg, Мой ЯП будет сделан специально для создания 2D игр и программ для новичков
Такой себе упрощённый C++, но с возможностями равными ему, возможно со временем я введу в свой ЯП больше возможностей=)


Сообщение отредактировал yarickyarick - Воскресенье, 27 Ноября 2011, 16:41
noTformaTДата: Воскресенье, 27 Ноября 2011, 16:41 | Сообщение # 29
Ukrainian independent game developer
Сейчас нет на сайте
Quote (yarickyarick)
Билл Гейтц например в 14 лет компьютер придумал=)

ммм, ты перепутал немного.... Посмотри автобиографический фильм Пираты Силиконовой Долины... ПСД.... Жаль что ему оскар так и не дали, но кучу наград он получил... БилГейтс купил коды Дос, а после своровал у Эйпла интерфейс ВинФорм smile Больше он вроде бы ничего примечательного не сделал.... В плане программинга smile


@noTformaT


Сообщение отредактировал noTformaT - Воскресенье, 27 Ноября 2011, 16:42
yarickyarickДата: Воскресенье, 27 Ноября 2011, 16:45 | Сообщение # 30
Маленький лицемер
Сейчас нет на сайте
noTformaT, Ну насколько я знаю то Билл Гейтц придумал компьютер в 14 лет, но первым компьютером(Компьютер - кажись с латыни вычислитель) стал вычислитель придуманный в Вавилоне 3000 лет до нашей эры=)
OsgДата: Воскресенье, 27 Ноября 2011, 16:56 | Сообщение # 31
был не раз
Сейчас нет на сайте
Мегажесть...

Quote (noTformaT)
1) зачем нужен ассемблер? Например я пишу яп под названием PI.... Он будет выполнятся в ос ВиндовсХП.... По логике мой компилятор должен компилировать листинг с яп PI сразу же в машинный код... ммм, а современный ассемблер и машиный код - это разные вещи. Где в этой цепочки я должен поставить асм?

Ассемблер и машинный код это разные вещи конечно. Современный и любой другой ассемблер преобразовывает код программы в машинный код! процессор понимает ТОЛЬКО МАШИННЫЙ КОД. Вот зачем нужен ассемблер. Ассемблер ты должен "вставить" туда где синтаксис кода твоего ЯП преобразовывается компилятором в промежуточную форму (команды ассемблера), а затем в исполняемый модуль (т.е. в ".exe" например), кроме того выполняется машинно-зависимая оптимизация программы, которая заключается в учете особенностей архитектуры данного компьютера - вот зачем "нам нужно знать архитектуру процессора для написания своего яп и компилятора для него :)"

Quote (noTformaT)
2) мммм, компилятор паскаля был написан на паскале. У питона есть реализация компилятора на питоне... Для примера питон не может взаимодействовать с ЦП на прямую... Дальше задумайся над тем, зачем нам нужно знать архитектуру процессора для написания своего яп и компилятора для него

Не взаимодействует напрямую? surprised Наверное ты хотел сказать "не формирует на машинном языке скомпилированную программу"? В остальном интерпретатор напрямую работает и с процессором и с ОС.

Quote (noTformaT)
мммм, компилятор паскаля был написан на паскале. У питона есть реализация компилятора напитоне

А на чём был написан компилятор паскаля на котором был написан компилятор паскаля на паскале?

Quote (noTformaT)
3) ВинАпи? ммм, вот код на языке PI:
var myVar:Number = 10;
var myVar2:Number = Math.random() * myVar;
ммм, ну и зачем мне вин апи?
Идем далее, я развиваю своя яп PI, и для этого создаю для линуха/вин/ фраемворк под названием dotPI, и язык PI#. То есть я тупо копирую структуру dotNet и c#. ммм, нужен ли мне ВинАПи в этом случае?
Если бы я писал яп, который работает с функциями винапи - вот это другое дело... Но, единственное что-бы делал мой яп в этом случае - вызывал функции апи.... Тоесть я бы тупо подключил к своему яп библиотеку с вин апи. И всех делов... Изучать вин апи мне не пришлось бы...

Для 2+2=4 конечно винапи нафиг не нужен, это понятно.
Если ты берёшь всё готовое и пытаешься на этом создать новый ЯП - встаёт вопрос который я уже задавал: нафига такой ЯП нужен? Ты сделаешь что-то более быстрое, более богатое используя модули с их достоинствами и недостатками которых не избежать никак?
И я не понимаю зачем отказываться от винапи, разве что "из принципа": Windows API — это наиболее близкий к системе способ взаимодействия с ней из прикладных программ. Более низкий уровень доступа, необходимый только для драйверов устройств, в текущих версиях Windows предоставляется через Windows Driver Model. - википедия.

=============================================
Quote (Stage)
что мне мешает написать язык под JVM или написать для него интерпретатор.

очумелым ручкам и воспалённому мозгу ничего не мешает - вопрос в том чем он лучше будет самой джавы? Максимум - непонятный суррогат не эффективно испоьзующий саму JVM - ты ведь её не разрабатывал, правда? Хотя кому я это пишу... biggrin

Quote (Stage)

Сявка, Да ты же клоун.

Нечего больше возразить когда слился, правда? biggrin

Quote (Stage)
Понимаешь, такие как ты - они именно что Иксперты. Просишь их за слова ответить, так они фейспалмы лепят, да школотой называют. Даешь им примеры - проходят мимо и снова за старое.

Я по-моему на всё тебе ответил. И на все твои "примеры", читай выше - а ответ один: нахваталсо бреда и мнишь себя Икспертом - ну это твои проблемы.


Цитата века:
"А теперь давай пооясни мне по хардкору для чего мне знание ассемблера, виндуса и winapi при разработке языка программирования" © Stage


Сообщение отредактировал Osg - Воскресенье, 27 Ноября 2011, 17:15
shizofrenДата: Воскресенье, 27 Ноября 2011, 16:57 | Сообщение # 32
Starting MS-DOS...
Сейчас нет на сайте
Quote
Билл Гейтц придумал компьютер


Я думал, что его изобрёл Чак Норис!


Моя команда
yarickyarickДата: Воскресенье, 27 Ноября 2011, 17:03 | Сообщение # 33
Маленький лицемер
Сейчас нет на сайте
shizofren, Очень полезное сообщение...
Osg, Только с одним пунктом согласен...
shizofrenДата: Воскресенье, 27 Ноября 2011, 17:16 | Сообщение # 34
Starting MS-DOS...
Сейчас нет на сайте
Quote
БилГейтс купил коды Дос,

Да, но это было очень лаганая система, таковой она и оставалась до версии 3 включительно. Потом была MS DOS 4 с досшелом - радость для юзера + первая русская локализация.
Quote
Эйпла интерфейс ВинФорм

Полностью согласен, вот доказательства:

Добавлено (27.11.2011, 17:16)
---------------------------------------------
yarickyarick, при какой кондиции тебе причудилось, что Билл изобрёл комп? Apple I создали два друга - Стив Джобс и Возняк (процессор motorola), а ПК - фирма IBM (Intel процы). Фирма IBM лишь подписала с Microsoft контракт на распространение ОС MS DOS на IBM PC-совместимые компьютеры.


Моя команда

Сообщение отредактировал shizofren - Воскресенье, 27 Ноября 2011, 17:08
StageДата: Воскресенье, 27 Ноября 2011, 17:20 | Сообщение # 35
постоянный участник
Сейчас нет на сайте
Quote
очумелым ручкам и воспалённому мозгу ничего не мешает - вопрос в том чем он лучше будет самой джавы? Максимум - непонятный суррогат не эффективно испоьзующий саму JVM - ты ведь её не разрабатывал, правда? Хотя кому я это пишу...

Самый мощный твой фейл на сегодня. Спор изначально и был о том, что не обязательно знать ассембелры и устройство процессора для того чтобы написать язык. Какого он там качества будет и тд - это уже совсем другое дело. Следовательно дальше с тобой говорить просто не о чем, хотя меня весьма позабавило ->

Quote
Нечего больше возразить когда слился, правда?

Слился? Напротив, я требую экскурса в PE-формат. Хочется знать, что такое ЧИСТЫЙ PE-ФАЙЛ И ЧЕМ EXE ОТЛИЧАЕТСЯ ОТ DLL КРОМЕ ОДНОГО БАЙТА В ЗАГОЛОВКЕ. Давай бетмен, поясни несведующим.
noTformaTДата: Воскресенье, 27 Ноября 2011, 17:57 | Сообщение # 36
Ukrainian independent game developer
Сейчас нет на сайте
Quote (Osg)
Ассемблер и машинный код это разные вещи конечно. Современный и любой другой ассемблер преобразовывает код программы в машинный код! процессор понимает ТОЛЬКО МАШИННЫЙ КОД. Вот зачем нужен ассемблер. Ассемблер ты должен "вставить" туда где синтаксис кода твоего ЯП преобразовывается компилятором в промежуточную форму (команды ассемблера), а затем в исполняемый модуль (т.е. в ".exe" например), кроме того выполняется машинно-зависимая оптимизация программы, которая заключается в учете особенностей архитектуры данного компьютера - вот зачем "нам нужно знать архитектуру процессора для написания своего яп и компилятора для него :)"

ммм, давай так. Например я пишу на асме. Написал программу на каком-то асме. В итоге у меня есть файл с разширением *.asm. Начинаю компилировать его, получаю объектный файл *.obj. Что такое объектный файл - всем понятно. Далее я запускаю компоновщик (линкер, редактор связей и как вы там его называете), линкер связывает все нужные ему объектные файлы, и выдает на выходе *.exe файл, или *.dll... Все... Это в случае с асмом, теперь разберем паскаль...
У меня есть файл с паскалевским кодом, запускаю его в делфи напимер. Дефи запускает файл DCC32.EXE, тот выдает опять же объектный файл *.obj, далее запускает линкер linker32.exe и выдает нам конечный исполняемый файл.
Где в этой структуре делся асм - я хз, и я хз зачем он нужен в этой последовательности действия.
Так как вы кидали статью из вики, то загуглите Структура компилятора, и посмотрите на какие две части он делится. Также посмотрите этап компиляции. Последний этап компиляции - кодогенерация, но это уже относится к реализации компилятора под определенную платформу, и к созданию яп это вообще не относится smile
Quote (Osg)
А на чём был написан компилятор паскаля на котором был написан компилятор паскаля на паскале?

Это похоже на "что было раньше, яйцо или курица", или "как люди построили кран, который строит много этажные здания, построили для этого специальный кран?", это действительно странно, но я не могу сейчас найти цитату Вирта, он говорил что вначале был придуман сам язык паскаль, а позже его студенты написали для паскаля компилятор на паскале... Как они это сделали я хз. Но это знают многие, например в гугле уже есть фраза "паскаль на паскале"...
Quote (Osg)
И я не понимаю зачем отказываться от винапи, разве что "из принципа": Windows API — это наиболее близкий к системе способ взаимодействия с ней из прикладных программ. Более низкий уровень доступа, необходимый только для драйверов устройств, в текущих версиях Windows предоставляется через Windows Driver Model. - википедия.

Что такое ВинАпи я знаю, но всеравно не понимаю зачем мне надо его знать. Моя яп просто будет вызывать соответствующие методы этой либы, тоесть будет хедер в котором все это описано, и описаны параметры вызова этих функций (ласткалл, сикалл, и т.д.).


@noTformaT
фурилонДата: Воскресенье, 27 Ноября 2011, 17:58 | Сообщение # 37
У котэ свой движок. А у тебя?!
Сейчас нет на сайте
Quote (yarickyarick)
Создание своего ЯП

Незачем.



Если ты стоишь на краю пропасти и думаешь прыгать или нет, то лучше прыгнуть. (с) Джон Леннон
TimKruzДата: Воскресенье, 27 Ноября 2011, 18:01 | Сообщение # 38
старожил
Сейчас нет на сайте
Ох, сколько понаписали... К чему весь этот спор?.. Всё равно вы все говорите каждый о своём. Разрабатывать язык можно по-разному, всё зависит от целей и употребления языка. Можно придумать простой эзотерический язык (и это тоже будет ЯП!), можно простой скриптовый (например, для какого-то своего движка), а можно написать систему, которая позволит программировать на родном языке в вольной форме человеку или вообще силой мысли любому животному. Всё это совершенно разные вещи, и для их реализации нужно разное количество знаний и технических ресурсов...

Quote (yarickyarick)
Скоро мой ЯП увидит свет на этом форуме

Ждём-с; когда доделаешь - выкладывай, мы оценим твои труды; а пока предлагаю админам закрыть тему, ибо тут очередная Holy War и оскорбления друг друга... sad


yarickyarickДата: Воскресенье, 27 Ноября 2011, 18:10 | Сообщение # 39
Маленький лицемер
Сейчас нет на сайте
TimKruz, А я предлагаю почистить тему и выдать предупреждение товаришу Osg за разведение холивара и флуд в теме
StageДата: Воскресенье, 27 Ноября 2011, 18:14 | Сообщение # 40
постоянный участник
Сейчас нет на сайте
Quote
Как они это сделали я хз.

Bootstrapping. Первую версию компилятора пишут на существующем языке, далее переписывают уже на том, что реализовали.

Quote
К чему весь этот спор?.. Всё равно вы все говорите каждый о своём.

Был поставлен вопрос о необходимости определенных знаний для написания языка программирования. Были приведены аргументы, но ракообразный не утихал. Вот и пролилось маленько.
Форум игроделов » Программирование » Общие обсуждения программистов » Создание своего ЯП
  • Страница 2 из 3
  • «
  • 1
  • 2
  • 3
  • »
Поиск:

Все права сохранены. GcUp.ru © 2008-2020
free games download
Рейтинг