🗊Презентация Язык Си: стандарты, основные концепции. Исполнение программы

Нажмите для полного просмотра!
Язык Си: стандарты, основные концепции. Исполнение программы, слайд №1Язык Си: стандарты, основные концепции. Исполнение программы, слайд №2Язык Си: стандарты, основные концепции. Исполнение программы, слайд №3Язык Си: стандарты, основные концепции. Исполнение программы, слайд №4Язык Си: стандарты, основные концепции. Исполнение программы, слайд №5Язык Си: стандарты, основные концепции. Исполнение программы, слайд №6Язык Си: стандарты, основные концепции. Исполнение программы, слайд №7Язык Си: стандарты, основные концепции. Исполнение программы, слайд №8Язык Си: стандарты, основные концепции. Исполнение программы, слайд №9Язык Си: стандарты, основные концепции. Исполнение программы, слайд №10Язык Си: стандарты, основные концепции. Исполнение программы, слайд №11Язык Си: стандарты, основные концепции. Исполнение программы, слайд №12Язык Си: стандарты, основные концепции. Исполнение программы, слайд №13Язык Си: стандарты, основные концепции. Исполнение программы, слайд №14Язык Си: стандарты, основные концепции. Исполнение программы, слайд №15Язык Си: стандарты, основные концепции. Исполнение программы, слайд №16Язык Си: стандарты, основные концепции. Исполнение программы, слайд №17Язык Си: стандарты, основные концепции. Исполнение программы, слайд №18Язык Си: стандарты, основные концепции. Исполнение программы, слайд №19Язык Си: стандарты, основные концепции. Исполнение программы, слайд №20Язык Си: стандарты, основные концепции. Исполнение программы, слайд №21Язык Си: стандарты, основные концепции. Исполнение программы, слайд №22Язык Си: стандарты, основные концепции. Исполнение программы, слайд №23Язык Си: стандарты, основные концепции. Исполнение программы, слайд №24Язык Си: стандарты, основные концепции. Исполнение программы, слайд №25Язык Си: стандарты, основные концепции. Исполнение программы, слайд №26

Содержание

Вы можете ознакомиться и скачать презентацию на тему Язык Си: стандарты, основные концепции. Исполнение программы. Доклад-сообщение содержит 26 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Язык Си: стандарты, основные концепции. Исполнение программы.
Описание слайда:
Язык Си: стандарты, основные концепции. Исполнение программы.

Слайд 2





Стандарты языка Си
Начало 70-х:	появление языка Си
1978:		Kernighan, Ritchie (K&R)
1989:		ANSI C (C89)
1999:		C99
2011:		C11
Описание слайда:
Стандарты языка Си Начало 70-х: появление языка Си 1978: Kernighan, Ritchie (K&R) 1989: ANSI C (C89) 1999: C99 2011: C11

Слайд 3





Основные требования к языку Си
(мои «измышлизмы»)
Язык должен быть эффективным как ассемблер
На нем должно быть удобно программировать по сравнению с ассемблером
Программы должны быть переносимы на уровне исходных текстов
Описание слайда:
Основные требования к языку Си (мои «измышлизмы») Язык должен быть эффективным как ассемблер На нем должно быть удобно программировать по сравнению с ассемблером Программы должны быть переносимы на уровне исходных текстов

Слайд 4





Основные концепции языка Си
Си - язык сравнительно "низкого" уровня
Си - "маленький" язык c однопроходным компилятором
Си предполагает, что программист знает, что делает
Описание слайда:
Основные концепции языка Си Си - язык сравнительно "низкого" уровня Си - "маленький" язык c однопроходным компилятором Си предполагает, что программист знает, что делает

Слайд 5





Использование языка Си
Разработка операционных систем
UNIX, Windows, Linux, …
СУБД
Oracle*, MySQL*, SQL Server*, PostgreSQL
Компиляторы, интерпретаторы
Python, Ruby, Eiffel**, …
Встроенные системы
ПО с открытым исходным кодом
Описание слайда:
Использование языка Си Разработка операционных систем UNIX, Windows, Linux, … СУБД Oracle*, MySQL*, SQL Server*, PostgreSQL Компиляторы, интерпретаторы Python, Ruby, Eiffel**, … Встроенные системы ПО с открытым исходным кодом

Слайд 6





Почему стоит изучать язык Си
Описание слайда:
Почему стоит изучать язык Си

Слайд 7





Пример простой программы
 1. /*
 2. Первая программа на Си
 3. */
 4.
 5. #include <stdio.h>
 6.
 7. int main(void)
 8. {
 9.     puts(“Hello, world!”);
10.
11.     return 0;
12. }
Описание слайда:
Пример простой программы 1. /* 2. Первая программа на Си 3. */ 4. 5. #include <stdio.h> 6. 7. int main(void) 8. { 9. puts(“Hello, world!”); 10. 11. return 0; 12. }

Слайд 8





Структура простой программы
Даже в простой программе можно выделить черты, которые будут присущи любой программе на Си:
директивы;
функции;
операторы.
Описание слайда:
Структура простой программы Даже в простой программе можно выделить черты, которые будут присущи любой программе на Си: директивы; функции; операторы.

Слайд 9





Получение исполняемого файла
Описание слайда:
Получение исполняемого файла

Слайд 10





Получение исполняемого файла
Описание слайда:
Получение исполняемого файла

Слайд 11





A1: обработка препроцессором
Препроцессор выполняет:
вырезание комментариев;
текстовые замены (директива define);
включение файлов (директива include).
Файл, получаемый в результате работы препроцессора, называется единицей трансляции.
cpp –o hello.i hello.c (или cpp hello.c > hello.i)

hello.c – 181 байт, hello.i – 19271 байт
Описание слайда:
A1: обработка препроцессором Препроцессор выполняет: вырезание комментариев; текстовые замены (директива define); включение файлов (директива include). Файл, получаемый в результате работы препроцессора, называется единицей трансляции. cpp –o hello.i hello.c (или cpp hello.c > hello.i) hello.c – 181 байт, hello.i – 19271 байт

Слайд 12





Результат работы препроцессора
...

int __attribute__((__cdecl__)) __attribute__ ((__nothrow__))
							puts (const char*);

...

int main(void)
{
    puts("Hello, world!");

    return 0;
}
Описание слайда:
Результат работы препроцессора ... int __attribute__((__cdecl__)) __attribute__ ((__nothrow__)) puts (const char*); ... int main(void) { puts("Hello, world!"); return 0; }

Слайд 13


Язык Си: стандарты, основные концепции. Исполнение программы, слайд №13
Описание слайда:

Слайд 14





Результат работы компилятора
...
	.section .rdata,"dr"
LC0:
	.ascii "Hello, world!\0"
	.text
...
	mov	DWORD PTR [esp], OFFSET FLAT:LC0
	call	_puts
	mov	eax, 0
Описание слайда:
Результат работы компилятора ... .section .rdata,"dr" LC0: .ascii "Hello, world!\0" .text ... mov DWORD PTR [esp], OFFSET FLAT:LC0 call _puts mov eax, 0

Слайд 15





A3: ассемблирование в объектный файл
Ассемблер выполняет перевод программы на языке ассемблера в исполнимый машинный код.
В результате работы ассемблера получается объектный файл: блоки машинного кода и данных, с неопределенными адресами ссылок на данные и процедуры в других объектных модулях, а также список своих процедур и данных.
as –o hello.o hello.s

hello.c – 181 байт, hello.o – 1858 байт
Описание слайда:
A3: ассемблирование в объектный файл Ассемблер выполняет перевод программы на языке ассемблера в исполнимый машинный код. В результате работы ассемблера получается объектный файл: блоки машинного кода и данных, с неопределенными адресами ссылок на данные и процедуры в других объектных модулях, а также список своих процедур и данных. as –o hello.o hello.s hello.c – 181 байт, hello.o – 1858 байт

Слайд 16





Результат работы ассемблера
00000000 b .bss
00000000 d .data
00000000 r .eh_frame
00000000 r .rdata
00000000 r .rdata$zzz
00000000 t .text
         U ___main
         U __filbuf
         U __flsbuf
         U __imp___iob
         U _fgetpos
         U _fopen
0000013b T _fopen64
00000155 T _ftello64
00000000 T _getc
0000008e T _getchar
00000185 T _main
00000041 T _putc
000000dc T _putchar
         U _puts
Описание слайда:
Результат работы ассемблера 00000000 b .bss 00000000 d .data 00000000 r .eh_frame 00000000 r .rdata 00000000 r .rdata$zzz 00000000 t .text U ___main U __filbuf U __flsbuf U __imp___iob U _fgetpos U _fopen 0000013b T _fopen64 00000155 T _ftello64 00000000 T _getc 0000008e T _getchar 00000185 T _main 00000041 T _putc 000000dc T _putchar U _puts

Слайд 17


Язык Си: стандарты, основные концепции. Исполнение программы, слайд №17
Описание слайда:

Слайд 18





Опции компилятора и компоновщика
gcc [опции] [выходной_файл] файл_1 [файл_2] 

    -std=name  (в нашем случае name = c99)
    -pedantic 
    -Wall 
    -Werror 
    -c (--compile) 
    -o <имя> 
    -g[level] (--debug)
Описание слайда:
Опции компилятора и компоновщика gcc [опции] [выходной_файл] файл_1 [файл_2] -std=name (в нашем случае name = c99) -pedantic -Wall -Werror -c (--compile) -o <имя> -g[level] (--debug)

Слайд 19


Язык Си: стандарты, основные концепции. Исполнение программы, слайд №19
Описание слайда:

Слайд 20


Язык Си: стандарты, основные концепции. Исполнение программы, слайд №20
Описание слайда:

Слайд 21





Представление о формате исполняемого файла
Описание слайда:
Представление о формате исполняемого файла

Слайд 22





Запуск программы
Описание слайда:
Запуск программы

Слайд 23





Запуск программы
Описание слайда:
Запуск программы

Слайд 24





Абстрактная память и процесс.
Описание слайда:
Абстрактная память и процесс.

Слайд 25





Функция main
int main(void);
int main(int, char** argv);
Описание слайда:
Функция main int main(void); int main(int, char** argv);

Слайд 26





Литература
Черновик стандарта C99
Dennis M. Ritchie, The Development of the C Language
Артур Гриффитс, GCC: Настольная книга пользователей, программистов и системных администраторов.
John R. Levine, Linkers & Loaders
David Drysdale, Beginner's Guide to Linkers (есть перевод на хабре)
Описание слайда:
Литература Черновик стандарта C99 Dennis M. Ritchie, The Development of the C Language Артур Гриффитс, GCC: Настольная книга пользователей, программистов и системных администраторов. John R. Levine, Linkers & Loaders David Drysdale, Beginner's Guide to Linkers (есть перевод на хабре)



Похожие презентации
Mypresentation.ru
Загрузить презентацию