1 | |
На каком языке написаны операторы03.07.2020, 23:58. Показов 4914. Ответов 30
Метки нет (Все метки)
Например компилятор при открытии понимает
if else break и т.д (может это всё тупо переписано из Ассэмблера). Интересно как они созданы как устроены, можно ли создать свои? Только не нужно рассказывать как они работают, пишу в поисковик этот вопрос и все как один блогеры начинают рассказывать как они работают. Просто хочу понять и развиваться, компилятор также подсвечивает синим и типы данных int char и т.д., я бы тоже хотел создать свои.
0
|
03.07.2020, 23:58 | |
Ответы с готовыми решениями:
30
На каком языке написаны стандартные библиотеки языка? На каком языке программирования написаны программы Setup На каком языке и в каком приложении писалась эта програмка? Операторы цикла в языке C ++ |
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
|
|
04.07.2020, 16:20 | 4 |
В универ идите. В районе 3-4 го курсов будет предмет теория знаковых систем (семиотика). От там все это и изучают. Ну и на курсач свой учебный язык пилють.
А на 3-4 ом - потому что до этого все это время учат как комп фунциклит и т.д. чтобы понятно было как из этих букафок вычисления поиметь, а не только распарсить.
0
|
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
|
|
04.07.2020, 17:17 | 6 |
Nexi99,
ну по парсингу так чтобы совсем на пальцах https://al.cs.msu.ru/files/for... theory.pdf Только для того, чтобы от того, что что то распарсилось, был смысл придется вот это https://logic.pdmi.ras.ru/~dvk/graphs_dk.pdf изучить понять и научится использовать с закрытыми глазами. Этого для первого этапа - построения абстрактного синтаксического графа, пригодного к исполнению будет достаточно. Дальше этапы оптимизации и кодогенерации. Для того чтобы понять как их делать, для каждого из них нужно точно так же изучить, понять, и научиться использовать с закрытыми глазами свой набор талмудов.
0
|
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,888
|
|
04.07.2020, 22:59 | 7 |
Сообщение было отмечено Antikl как решение
Решение
Ох путаете вы чего-то. Компилятор ничего не подсвечивает и ничего не открывает. Он просто читает входной файл и переводит в объектный.
А открывают и подсвечивают редакторы кода. Собственно, похоже, проблема уже на этом этапе - вы не знаете как происходит компиляция. Попробуйте отказаться от IDE и поработать при помощи инструментов прошлого тысячелетия (актуальных до сих пор): консольный компилятор (да хотя бы gcc/g++), make, терминал. Причем начните именно с поиска как этим всем пользоваться, как создавать многофайловые проекты, объединять несколько языков и тому подобные задачи.
3
|
2063 / 1542 / 168
Регистрация: 14.12.2014
Сообщений: 13,402
|
|
05.07.2020, 07:20 | 9 |
И подсветка в прошлом тысячелетии была ни чем иным как выхлопом лексера. В нонешнем там без выхлопа именно парсера точно не обошлось.
0
|
05.07.2020, 09:49 | 10 |
На первом курсе учат "Методы трансляции и языки программирования. Изучаются там грамматики, классификация грамматик Хомского, контекстно-зависимые грамматики, контекстно-зависимые грамматики, конечные автоматы, регулярные выражения, левосторонний разбор, правосторонний разбор, лексический разбор, синтаксический разбор, построение дерева синтаксического разбора, цепочки, правила вывода цепочек, состояния конечных автоматов, алфавит входных символов.
Американцы используют для этого дела yacc (yet another compiler compiler), bison, lex, flex - с их помощью созданы компиляторы gcc, g++, языки программирования C, C++, Perl, PHP, Python и множество других «Компиляторы: принципы, технологии и инструменты» — классический учебник по теории построения компиляторов под авторством Альфреда В. Ахо, Рави Сетхи и Джеффри Д. Ульмана
1
|
DrOffset
|
05.07.2020, 12:49
#12
|
0
|
Модератор
|
||||||
13.09.2020, 19:02 | 13 | |||||
Стандартными средствами, думаю, можно реализовать на с++ некоторый ограниченный аналог if else (без использования встроенного в язык if).
break и другие аналоги goto, и, тем более, throw без использования сомнительных платформозависимых и компляторозависимых приёмчиков написать на с++, скорее всего, невозможно. Придётся править компилятор. Ассемблер - это программа, написанная обычно на одном из доступных языков высокого уровня. https://repo.or.cz/nasm.git/bl... assemble.c Переписывать оттуда особо нечего. Компилятор, обнаружив break, определяет, в каком switch или цикле он находится. Если ни в каком, то выдаёт сообщение об ошибке, например, такое:
Сообщение от gcc
exitlooporswitch - метка сразу после switch или тела цикла, в котором был обнаружен break.
0
|
1352 / 851 / 365
Регистрация: 26.02.2015
Сообщений: 3,799
|
|
13.09.2020, 19:25 | 14 |
Как самому создать цикл, который будет работать по моей технологии
Создаётся ли копия инструкции написанной программистом? А я смотрю, ты основательно готовишься к концу осени... Тебе стоит объединиться с Etyuhibosecyu, чтобы вы могли закончить разработку языка C↑ᶜC.
0
|
Croessmah
|
13.09.2020, 19:26
#15
|
0
|
13.09.2020, 20:16 [ТС] | 16 |
Я смотрел на Ассемблере много команд можно формулировать разные технические нюансы, если я правильно понял Ассемблер может работать как с типами так и без них используя команду
mov ну это конечно грубо говоря, циклы там тоже есть, но только их нужно собирать, если я правильно понял там просто команда на сдвиг и команда на инкремент как таковых циклов там конечно нет.У меня много задумок и нет времени иначе я бы с удовольствием поигрался с этим языком. Но возникает куча вопросов как подогнать код под нужные процессоры а также очень геморойно будет подключить это всё в с++ чтобы использовать в том же mql4 и других оболочках.
0
|
13.09.2020, 20:41 [ТС] | 18 |
Я читал про это на сайтах да и сам эту команду использовал для присваивания значений. Ну в любом случае работы вагон и сделать её не получиться и придётся нормально с с++ разобраться может через лет 20ть попробую на Ассемблере компилятор сделать или писать на нём но на данный момент не целесообразно из-за трудоёмкости.
Если операторы написаны таким способом то явно эти языки тупо копипастились друг у друга поэтому они так коряво и работают ну да ладно хватит и этого.
0
|
76 / 68 / 10
Регистрация: 11.07.2016
Сообщений: 320
|
|
13.09.2020, 21:04 | 20 |
Они работают ровно так, как было задумано. Автомобиль не становится корявым из-за того, что на нём нельзя слетать до луны.
0
|
13.09.2020, 21:04 | |
13.09.2020, 21:04 | |
Помогаю со студенческими работами здесь
20
На каком языке... Операторы выбора(переключатель) в языке C++ На каком языке написано? на каком языке писать На каком языке код На каком языке исполняют? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |