Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Типы сооружений для обработки осадков: Септиками называются сооружения, в которых одновременно происходят осветление сточной жидкости...
Топ:
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Определение места расположения распределительного центра: Фирма реализует продукцию на рынках сбыта и имеет постоянных поставщиков в разных регионах. Увеличение объема продаж...
Интересное:
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Дисциплины:
2021-01-31 | 62 |
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
|
|
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!