Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Топ:
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Характеристика АТП и сварочно-жестяницкого участка: Транспорт в настоящее время является одной из важнейших отраслей народного хозяйства...
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Интересное:
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Что нужно делать при лейкемии: Прежде всего, необходимо выяснить, не страдаете ли вы каким-либо душевным недугом...
Дисциплины:
2021-01-31 | 63 |
5.00
из
|
Заказать работу |
|
|
Самый популярный язык программирования Си содержит низкоуровне- вое подмножество, что провоцирует рассматривать его как ЯНУ. Но приспо- собленность Си к представлению обработки иерархии структур данных с по- мощью программируемых функций дает основания относить его к ЯВУ.
Язык Си предполагает, что программа собирается из набора файлов, со- держащих фрагменты программы и библиотеки функций, подготовленных, возможно, независимо. При этом компилируемая программа представляет собой одноуровневую конструкцию из равноправных определений структур данных и функций. Это означает, что любая функция имеет доступ к любому элементу любой структуры данных и может изменять его значение. Учиты- вая, что результат программы формируется как последовательность шагов изменения данных, размещенных по конкретным адресам, программист вы- нужден детально и тщательно изучать все тонкости побочных эффектов как
своего, так и смежных фрагментов программы. Это оказалось серьезным пре- пятствием к повышению производительности труда.
– При конструировании кода программы C-компилятор распределяет па- мять для глобальных и локальных данных в статической памяти или в стеке, соответственно.
– Встраиваются вызовы библиотечных функций создания-удаления для динамических структур данных и обмена данными, включая ввод-вывод.
–
|
– Типы данных разделены на основные и производные, созданные с по- мощью специальных операций, включая создание неоднородных структур данных.
– Над типами данных определен конкретный набор операций, с помощью которых строятся вычислимые выражения, и схем операторов управления и описания, используемых при конструировании функций.
|
– Многократно используемые функции объединяются в специализиро- ванные библиотеки, часть которых включена в системы программирования на языке Си.
– Компилятору для эффективности кодирования нужна информация о ти- пах данных переменных и результатов функций, но допустимо умолчание в случае типа int и параметров цикла.
– Возможна спецификация вида используемой памяти, но она носит ре- комендательный характер – компилятор учитывает ее в меру возможности.
– Определения функций обладают некоторой свободой в конкретизации списка параметров на уровне вызова функции, что позволяет программиро- вать функции произвольного числа параметров.
– Реализация арифметических операций обладает вариантами, завися- щими от основного типа обрабатываемых скаляров в соответствии с разно- образием аппаратной поддержки этих операций.
Абстрактная машина (АМ) языка Си может рассматриваться как развитие и обобщение АМ для ассемблера, обеспечивающее возможность использо- вать более сложные структуры данных в качестве регистров. Определение мало отличается от АМ пи-кода языка Pascal (см. Лекция 2):
s e c m → s' e' c' m'
|
<Стек_ значений, Локалы, Текущая_Команда, Память >
|
АМ различает следующие категории команд:
– засылка значений из Памяти в Стек;
– вычисления над безымянными операндами в Стеке при обработке вы- ражений;
|
– пересылка значений из стека непосредственно в Память или в регистр Локалы;
– организация переходов по метке в программе;
– организация ветвлений и циклов;
–
|
Определение | Примечание |
Main (argc, argv, envp) | Заголовок функции. |
Int argc; Char **argv; Char **envp; { For (i=0; i < argc; i++) Printf (”arg%i:%s\n”, i, argv [i]); For (p=envp; *p!= (char*)0; p++) Printf (”%s\n”, *p); } | Описания параметров функции: – число аргументов, – вектор аргументов, – вектор системных переменных. Цикл вывода аргументов командной строки при вызове программы |
Пример 14. Программа распечатки параметров командной строки и переменных среды на языке Си15
|
|
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Индивидуальные и групповые автопоилки: для животных. Схемы и конструкции...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!