Ассемблер и машинный код это разные вещи конечно. Современный и любой другой ассемблер преобразовывает код программы в машинный код! процессор понимает ТОЛЬКО МАШИННЫЙ КОД. Вот зачем нужен ассемблер. Ассемблер ты должен "вставить" туда где синтаксис кода твоего ЯП преобразовывается компилятором в промежуточную форму (команды ассемблера), а затем в исполняемый модуль (т.е. в ".exe" например), кроме того выполняется машинно-зависимая оптимизация программы, которая заключается в учете особенностей архитектуры данного компьютера - вот зачем "нам нужно знать архитектуру процессора для написания своего яп и компилятора для него :)"
ммм, давай так. Например я пишу на асме. Написал программу на каком-то асме. В итоге у меня есть файл с разширением *.asm. Начинаю компилировать его, получаю объектный файл *.obj. Что такое объектный файл - всем понятно. Далее я запускаю компоновщик (линкер, редактор связей и как вы там его называете), линкер связывает все нужные ему объектные файлы, и выдает на выходе *.exe файл, или *.dll... Все... Это в случае с асмом, теперь разберем паскаль... У меня есть файл с паскалевским кодом, запускаю его в делфи напимер. Дефи запускает файл DCC32.EXE, тот выдает опять же объектный файл *.obj, далее запускает линкер linker32.exe и выдает нам конечный исполняемый файл. Где в этой структуре делся асм - я хз, и я хз зачем он нужен в этой последовательности действия. Так как вы кидали статью из вики, то загуглите Структура компилятора, и посмотрите на какие две части он делится. Также посмотрите этап компиляции. Последний этап компиляции - кодогенерация, но это уже относится к реализации компилятора под определенную платформу, и к созданию яп это вообще не относится
Quote (Osg)
А на чём был написан компилятор паскаля на котором был написан компилятор паскаля на паскале?
Это похоже на "что было раньше, яйцо или курица", или "как люди построили кран, который строит много этажные здания, построили для этого специальный кран?", это действительно странно, но я не могу сейчас найти цитату Вирта, он говорил что вначале был придуман сам язык паскаль, а позже его студенты написали для паскаля компилятор на паскале... Как они это сделали я хз. Но это знают многие, например в гугле уже есть фраза "паскаль на паскале"...
Quote (Osg)
И я не понимаю зачем отказываться от винапи, разве что "из принципа": Windows API — это наиболее близкий к системе способ взаимодействия с ней из прикладных программ. Более низкий уровень доступа, необходимый только для драйверов устройств, в текущих версиях Windows предоставляется через Windows Driver Model. - википедия.
Что такое ВинАпи я знаю, но всеравно не понимаю зачем мне надо его знать. Моя яп просто будет вызывать соответствующие методы этой либы, тоесть будет хедер в котором все это описано, и описаны параметры вызова этих функций (ласткалл, сикалл, и т.д.). @noTformaT
ммм, ты перепутал немного.... Посмотри автобиографический фильм Пираты Силиконовой Долины... ПСД.... Жаль что ему оскар так и не дали, но кучу наград он получил... БилГейтс купил коды Дос, а после своровал у Эйпла интерфейс ВинФорм Больше он вроде бы ничего примечательного не сделал.... В плане программинга @noTformaT
Сообщение отредактировал noTformaT - Воскресенье, 27 Ноября 2011, 16:42
Вообще для меня новогоднее настроение начинается с Католического рождества... Когда меня начинают поздравлять мои коллеги и друзья с западного мира. Католическое Рождество всегда засело в моей памяти с серией фильмов Один Дома....(символ1) Но, есть одна мелодия, которые знают многие... Она даже в "Один дома" играла...
Ну, и заканчивается рождественская ночь еще одной песней из фильма выше:
Кстати имено тогда я ставлю елку в комнате... (символ2) Через несколько дней Новый Год.... Это самый лучший праздник в году, я не очень суеверный человек, но пытаюсь организовать его так, чтобы сбылось суеверие "КАК НОВЫЙ ГОД ВСТРЕТИШЬ, ТАК ЕГО И ПРОВЕДЕШЬ....". Все начинается с упаковки подарков...(символ3) Потом в течении дня хожу по друзьям и раздаю им свои подарки...(символ4) К сожалению не всех я могу собрать вместе, поэтому отмечаем в течение целого дня. И так вот облазив целый день и раздавая каждому свои подарки я прихожу домой к 9 вечера... И тут могут быть разные варианты событий... Если празднуем в публичном месте - то это скорей всего будет маскарад....(символ5) Одеваемся кто во что может... Берем шампанское(символ6) и закусон (апельсины, мандарины, бананы и всякое такое(символ8)) и движемся в центр города.... Далее идет бой курантов(символ10), поцелуи(символ11), поздравления(символ12), салют(символ12), и праздник продолжается под музыку еще три дня... Если праздную дома - то сначала готовим еду, потом садимся провожать старый год(символ13), смотрим поздравление Русс президента, потом смотрим поздравление нашего президента(символ14), потом бой курантов(символ10), салют(символ11), поцелуи(символ15) и т.д. Потом включаем телик, там какой-то концерт, и наша квартира превращается в трушный дискачь, до утра. Короче все как в этой песне:
Кстати трешеры "ПТ" упомянули все символы нового года.... (которые я знаю)....
Далее идет рождество, но это совсем другой праздник, а потом старый новый год, который практически похож на нормальный новый год.... @noTformaT
Сообщение отредактировал noTformaT - Воскресенье, 27 Ноября 2011, 16:31
Вроде бы в десятке. Первая мандаринское наречие китайского или как-то так. Второй французский. Украинский вроде бы пятый-шестой. Все думают что фраза "Кум тэля пасэ" - это французский, на самом деле это украинский, мож поэтому французский поменялся с украинским местами :)
1) ты знаешь ассемблер? 2) ты знаешь как устроен и работает процессор? 3) Ты знаешь всё о виндоуз и винАПИ? 4) Зачем нужен именно твой язык программирования, для каких задач конкретно? 5) Чем он будет лучше существующих?
1) зачем нужен ассемблер? Например я пишу яп под названием PI.... Он будет выполнятся в ос ВиндовсХП.... По логике мой компилятор должен компилировать листинг с яп PI сразу же в машинный код... ммм, а современный ассемблер и машиный код - это разные вещи. Где в этой цепочки я должен поставить асм? 2) мммм, компилятор паскаля был написан на паскале. У питона есть реализация компилятора на питоне... Для примера питон не может взаимодействовать с ЦП на прямую... Дальше задумайся над тем, зачем нам нужно знать архитектуру процессора для написания своего яп и компилятора для него 3) ВинАпи? ммм, вот код на языке PI: var myVar:Number = 10; var myVar2:Number = Math.random() * myVar; ммм, ну и зачем мне вин апи? Идем далее, я развиваю своя яп PI, и для этого создаю для линуха/вин/ фраемворк под названием dotPI, и язык PI#. То есть я тупо копирую структуру dotNet и c#. ммм, нужен ли мне ВинАПи в этом случае? Если бы я писал яп, который работает с функциями винапи - вот это другое дело... Но, единственное что-бы делал мой яп в этом случае - вызывал функции апи.... Тоесть я бы тупо подключил к своему яп библиотеку с вин апи. И всех делов... Изучать вин апи мне не пришлось бы... 4) чисто риторический вопрос. Например, в России начнут проводит конкурс на национальный яп.... 5) продолжая пункт 4, моя язык ПИ и его следующие поколения, возьмет все самое лучшее с уже существующих яп. Для примера в ас3 есть нативная поддержка ХМЛ, а в паскале ее нет... Если я реализую эту фичу, то мой яп будет круче в этом вопросе чем паскаль. Так же я реализую поддержку доступа к "ЦП", и мой яп будет круче чем джава. И т.д..... @noTformaT
Я вот в позапрошлый "новый год" ложился спать после последнего удара курантов, хотя и меня звали в гости друзья. И правда, соглашусь с Flyns, не такой уж это праздник, для размаха.
ммм, видимо все очень грустно...... Жаль что для некоторых этот праздник всего лишь обычный день в их жизни.... мож это видео настроит вас на осознание того, что это действительно отличный праздник....
О чем вы подумали, когда увидели эту тему или ту, что рядом?
Что подумал? Подумал о том, что кто-то тоже как и я ждет этот чудесный праздник.... На прошлый Новый Год я заболел, свиным грипом, мож кто-то помнит была эпидемия... Короче во время боя курантов я валялся в кровати с температурой. И мне нельзя было даже пить шампанское, так как я сидел на антибиотиках. Новый Год я встретил хуже всех в мире.... В этот Новый Год я попытаюсь отпраздновать сразу за два... @noTformaT
yarickyarick, ммм, это все хорошо, это действительно хорошо что вы захотели заниматься этим, но я бы посоветовал в вашем случае начать не с подобной литературы.... Если хотите написать свой яп, то лучше начните с самого простого. С машины тюринга... Даже если не хотите, то все равно начинайте с ее. Все современные яп - полны по тюрингу, а самая полная по тюрингу примитивная вещь - машина тюринга. Да что тут говорить, даже сама Википедия утверждает следующее:
Quote
Про машину Тьюринга, пожалуй, должен знать любой школьник, мечтающий стать программистом. Ведь именно её считают основой основ теории алгоритмов.
Далее, начните с конечных автоматов. По своей сути, все программы - конечные автоматы. Начните с реализации самого простого конечного автомата - регулярные выражения. В очень-очень абстрактном виде, регулярное выражение можно представить как программу, ведь по своей сути регулярное выражение это набор команд... Напишите простую программу, выполняющую регулярные выражения, или напишите модуль/пакет к яп которым вы пользуетесь... Но, все это фигня если у вас нет познаний в Дискретной Математике. Это основа основ, к сожалению в школьных курс она не входит, а в универах ее читают только на определенных потоках. Та же книга "Основы конструирования компиляторов" - это просто набор формул из дискретной математики, тоесть теория, на практике, не зная дискретную математику закодировать любую формулу - нереально... Начните с изучения дискретной математики. Теории алгоритмов. Линейная Алгебра. Именно это те три кита, на котором строится любая программа и яп. В буквальном смысле это ядро мира программиста.
Ну, и в конце подумайте зачем вам это надо. Да, возможно это круто, но только в том случае если вы хотите дальше работать в этом направлении. Я, например, учусь на компьютерного инженера, работаю флеш разработчиком, выш образование мне надо только чтобы расти по службе. У меня нет планов в будущем разрабатывать свои яп, трансляторы, интерпретаторы. Мне довольно хватает того что у меня есть сейчас. Но все мы люди, у всех есть семьи и их надо кормить, а для этого нужны деньги... Самый легальный способ заработать много денег - расти по службе... Так уж случилось, что законодательство моей страны требует наличие выш образования для должности выше "реализатор задуманного". Как только я получу вышку - могу пойти на любую управленческую вакансию (менеджер проектов, начальник цеха, директор, зам. директора и т.д). Я мог бы и поступить на куда легче курс, но, у меня уже есть техническое образования, и когда я его получал, нам читали ТРЕХ КИТОВ... Все кто учится со мной на одном потоке такие же как и я, у них тоже нет желания работать по специальности... Ведь понятно, что разработка "трансляторов/яп/компиляторов" это не такое уж простое дело... @noTformaT
На кануне нового года у нас на фирме будет корпоратив (с блекджеком и моей бывшей)... Но, сам новый год я встречу с "семьей", в этот раз решили собрать полностью всей семьей, это конечно не как круто как корпоратив (со стрептизершами ), но, оно того стоит... @noTformaT
Сообщение отредактировал noTformaT - Суббота, 26 Ноября 2011, 20:36
Во всяком случае я имел в виду НекстГен игры консольного качества Доступные в браузере
О, так же само думают Люди из Эпик гейм: На сцене - разработчица "флеш плеера", а тот задрот - основатель ЭпикГеймс, третий - программер из эпик геймов...
Опять же она, но видео на тему "как мы видим браузерные игры".
Как видно, качество игры соответствует консольному И все это в браузере
Юнити тоже не пасет задних, но их сайт у меня заблочен, но можно посмотреть блог компании и все понять... @noTformaT