Например TDA7294

Форум РадиоКот • Просмотр темы - Как компилятор распознает язык си
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Вс апр 28, 2024 02:29:18

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Как компилятор распознает язык си
СообщениеДобавлено: Пн май 29, 2023 16:29:42 
Прорезались зубы

Зарегистрирован: Чт апр 08, 2021 09:46:48
Сообщений: 204
Рейтинг сообщения: 0
Доброго дня! Уже не мало работаю с языком си. Есть пробелы в понимании основной сути, то есть процесса компиляции языка си в машинный код при помощи компилятора. Есть два вопроса, которые пока никак не могу устаканить в голове. Гуру подскажите:


1)что именно компилятор распознает на языке си при преобразовании в машинный код( например ключевые слова, такие как char, volatile — это я знаю, а что еще? Или где найти эти списки, я не нашел).
Хотелось бы знать прям список этих элементов.

2)и вопрос отталкивающийся от первого: в целом, из чего состоит язык си, из ключевых слов и знаков?


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как компилятор распознает язык си
СообщениеДобавлено: Пн май 29, 2023 16:52:42 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 1
Рейтинг сообщений: -2
Зарегистрирован: Сб дек 01, 2007 19:03:23
Сообщений: 159
Рейтинг сообщения: 0
Изначально Си делали как разновидность макроязыка над ассемблером. И в те времена соответствие было довольно таки однозначным. скажем при распознании конструкции IF всё сводилось к кастованию условия во флаг, чтоб потом его можно было элементарно обработать командой JZ/JNZ. Так же с циклами и пр. Ищите книгу Креншоу. Она правда внутри содержит описание компилятора Паскаль, но сути дела это не меняет. Но это тогда! Сейчас Си - это попа в плане понимания мозгами! Компилеры оптимизируют всё так, что без бутылки не разберёшься! У того-же GCC есть флажок, позволяющий транслировать исходник Си в ассемблер. Можно несколько программ написать и посмотреть, что на выходе получится. Но с тем же Креншоу это уже не будет иметь ничего общего.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как компилятор распознает язык си
СообщениеДобавлено: Пн май 29, 2023 17:06:16 
Прорезались зубы

Зарегистрирован: Чт апр 08, 2021 09:46:48
Сообщений: 204
Рейтинг сообщения: 0
Что процесс компиляции очень сложный, это понятно, особо углубляться в это не стоит. Ну у меня возник этот вопрос, так как я в библиотеки CMSIS встречаю подобные слова «ICCARM» или «__CC_ARM». И хотел бы знать, компилятор эти слова тоже распознает как обычные ключевые слова, например «char»?!


Вернуться наверх
 
PCBWay - всего $5 за 10 печатных плат, первый заказ для новых клиентов БЕСПЛАТЕН

Сборка печатных плат от $30 + БЕСПЛАТНАЯ доставка по всему миру + трафарет

Онлайн просмотровщик Gerber-файлов от PCBWay + Услуги 3D печати
Не в сети
 Заголовок сообщения: Re: Как компилятор распознает язык си
СообщениеДобавлено: Пн май 29, 2023 17:24:21 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 1
Рейтинг сообщений: -2
Зарегистрирован: Сб дек 01, 2007 19:03:23
Сообщений: 159
Рейтинг сообщения: 0
Это ведь какие-то define-ы. Препроцессор. Не? В стандарте языка такого нет. Ранее препроцессор был отдельной от лексического анализатора сущностью. Как сейчас - не знаю. По логике ни о каких ICCARM компилятор не знает, сл-но обработать это так же, как и char у него тоже нет возможности.

Добавлено after 9 minutes 35 seconds:
И вообще до компилятора дело может и не дойти. Там далее может быть банальное - если определено ICCARM, то инклюд вон то и вот это. И всё!


Вернуться наверх
 
Выбираем схему BMS для заряда литий-железофосфатных (LiFePO4) аккумуляторов

Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ очень важен контроль процесса заряда и разряда для избегания воздействия внешнего зарядного напряжения после достижения 100% заряда. Инженеры КОМПЭЛ подготовили список таких решений от разных производителей.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Как компилятор распознает язык си
СообщениеДобавлено: Пн май 29, 2023 17:48:36 
Друг Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 1329
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 10551
Рейтинг сообщения: 0
Уже не мало работаю с языком си. Есть пробелы в понимании основной сути... Есть два вопроса, которые пока никак не могу устаканить в голове. Гуру подскажите


"немало", пишется слитно, так как заменяется "много". "основная суть" - суть не может быть основной, устаканить, вероятно, можно ответы на вопросы, а если вопросы не устаканены, то и нехрен их озвучивать. "Гуру, подскажите" - обращение, необходима запятая. Русский язык и тот с проблемами, а Вы за Си беретесь.
Но это так, бесполезное брюзжание.
А по теме - книг тьма. Что-то препятствует их чтению? Предпочитаете изучать на форуме по ответам с ошибками? Это странно.

_________________
добавь radiokot.ru##.tablebg > tbody > tr:has(td>a[href*="?f=17"]) в адблок, сделай форум чище!
"Э-э-э-хей... растёт правосознание!"


Вернуться наверх
 
Новый аккумулятор EVE серии PLM для GSM-трекеров, работающих в жёстких условиях (до -40°С)

Компания EVE выпустила новый аккумулятор серии PLM, сочетающий в себе высокую безопасность, длительный срок службы, широкий температурный диапазон и высокую токоотдачу даже при отрицательной температуре. Эти аккумуляторы поддерживают заряд при температуре от -40/-20°С (сниженным значением тока), безопасны (не воспламеняются и не взрываются) при механическом повреждении (протыкание и сдавливание), устойчивы к вибрации. Они могут применяться как для автотранспорта (трекеры, маячки, сигнализация), так и для промышленных устройств мониторинга, IoT-устройств.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Как компилятор распознает язык си
СообщениеДобавлено: Пн май 29, 2023 17:58:17 
Друг Кота
Аватар пользователя

Карма: 93
Рейтинг сообщений: 1351
Зарегистрирован: Вт мар 16, 2010 22:02:27
Сообщений: 14078
Откуда: ДОНЕЦК
Рейтинг сообщения: 0
Любой компилятор - разновидность текстового редактора.
Собственно там и смотрим, как и чего устроено.
8)


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как компилятор распознает язык си
СообщениеДобавлено: Пн май 29, 2023 19:06:43 
Электрический кот

Карма: -4
Рейтинг сообщений: 70
Зарегистрирован: Вт ноя 19, 2019 06:10:18
Сообщений: 1058
Рейтинг сообщения: 0
Любой компилятор - разновидность текстового редактора.Собственно там и смотрим, как и чего устроено.8)

Повеселил.

maksimdag0 писал(а):
что именно компилятор распознает на языке си при преобразовании в машинный код


1) Н. Вирт "Алгоритмы+структуры данных=программы"
Показано создание мини-Паскадя с генерацией кода.

2) Не могу вспомнить название книги на русском, в которой показано создание интерпретатора языка Small C как пример применения языка Си. Небольшого формата, не очень толстая.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как компилятор распознает язык си
СообщениеДобавлено: Пн май 29, 2023 19:22:02 
Нашел транзистор. Понюхал.
Аватар пользователя

Карма: 1
Рейтинг сообщений: -2
Зарегистрирован: Сб дек 01, 2007 19:03:23
Сообщений: 159
Рейтинг сообщения: 0
Small C - это наверное Герберт Шилдт. У него в разных редакциях книжек разные языки реализованы. То Бейсик, то Си.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как компилятор распознает язык си
СообщениеДобавлено: Пн май 29, 2023 19:52:41 
Прорезались зубы

Зарегистрирован: Чт апр 08, 2021 09:46:48
Сообщений: 204
Рейтинг сообщения: 0
BOB51 писал(а):
) Н. Вирт "Алгоритмы+структуры данных=программы"
Показано создание мини-Паскадя с генерацией кода.
. Попробую поискать в ней ответ на свой вопрос. Благодарю


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как компилятор распознает язык си
СообщениеДобавлено: Пн май 29, 2023 20:35:09 
Друг Кота
Аватар пользователя

Карма: 94
Рейтинг сообщений: 3479
Зарегистрирован: Пн фев 09, 2009 22:19:49
Сообщений: 17594
Откуда: Когда-то был прекрасный город для людей
Рейтинг сообщения: 0
Язык С первоначально был разработан двумя студентами в шутку, как пример того, насколько абсурдным можно сделать алгоритмический язык ( в то время были грандиозные дебаты вокруг семантики машинных языков ).

Но к их удивлению, их тайнопись пришлась по вкусу клану программистов, не желающих иметь конкурентов среди прикладных специалистов, для которых Вирт разработал хорошо продуманный язык с простой компактной семантикой. Причем - даже начальные версии его языка позволяли легко получать решения любых алгоритмических задач.
И когда был устроен чемпионат по языкам программировани, типа, кто круче, то сищники и паскалисты предложили по 10 задач своим противникам. В результате сишники смогли написать код лишь для 8 задач паскалистов, а паскалисты легко решили все 10 задач по Си.
Разумеется, каждая команда имела и решения по своим задачам.

А что имеем в результате ? Си потихоньку сползает на семантические концепции Вирта, ну а наследником Виртовской ветки является ныне Питон.

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


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как компилятор распознает язык си
СообщениеДобавлено: Вт май 30, 2023 04:07:47 
Прорезались зубы
Аватар пользователя

Карма: 2
Рейтинг сообщений: 12
Зарегистрирован: Сб янв 09, 2016 15:51:17
Сообщений: 200
Рейтинг сообщения: 0
Есть пробелы в понимании основной сути, то есть процесса компиляции языка си в машинный код при помощи компилятора.

Меньше знаешь - крепче сон. Некоторые вещи могут серьёзно ушатать психику. Появится маниакальное желание что-то подкрутить и улучшить, и это очень плохо кончится.
Например основных участников проекта GCC всего несколько человек. Если отбросить рапорты, то ещё примерно 50 человек в год решают какую-либо наболевшую проблему, или добавляют/улучшают встроенные функции. Проект открытый, каждый может подключиться к работе, но желающих очень мало - слишком высокий порог.
Это на весь мир!!!
А теперь подумай, насколько нужно форматнуть свой мозг - чтобы туда уместилось всё необходимое. Мозги не резиновые, что-то обязательно придётся забыть.

_________________
sRtoS


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Как компилятор распознает язык си
СообщениеДобавлено: Вт май 30, 2023 04:36:23 
Друг Кота
Аватар пользователя

Карма: 29
Рейтинг сообщений: 1329
Зарегистрирован: Сб дек 18, 2021 19:25:32
Сообщений: 10551
Рейтинг сообщения: 0
порог-то не очень высокий, на самом деле. созданием компиляторов только ленивый раньше не занимался. Всё зависит от уровня компилятора, а GCC вообще уже давно не только Си и далеко не одна платформа, так что, как пример не очень удачен, это типа чувак захотел змейку написать, а ему показали KSP.
Но в целом да. Мозг беречь надо

_________________
добавь radiokot.ru##.tablebg > tbody > tr:has(td>a[href*="?f=17"]) в адблок, сделай форум чище!
"Э-э-э-хей... растёт правосознание!"


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 39


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y