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

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

Вы можете ознакомиться и скачать презентацию на тему Язык Си: стандарты, основные концепции. Исполнение программы. Доклад-сообщение содержит 24 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций 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





Получение исполняемого файла
 0. // hello.c
 1. #include <stdio.h>
 2. 
 3. #define N 3
 4. 
 5. int main(void)
 6. {
 7.    // Вывод фразы N раз
 8.    for(int i = 0; i < N; i++)
 9.      puts("Hello, world!\n");
10.
11.    return  0;
12. }
Описание слайда:
Получение исполняемого файла 0. // hello.c 1. #include <stdio.h> 2. 3. #define N 3 4. 5. int main(void) 6. { 7. // Вывод фразы N раз 8. for(int i = 0; i < N; i++) 9. puts("Hello, world!\n"); 10. 11. return 0; 12. }

Слайд 6





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

Слайд 7





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

Слайд 8





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 байт

Слайд 9





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

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

...

int main(void)
{

   for(int i = 0; i < 3; i++)
      puts("Hello, world!\n");

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

Слайд 10


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

Слайд 11





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

Слайд 12





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 байт

Слайд 13





Результат работы ассемблера

00000000 b .bss
00000000 d .data
00000000 r .rdata
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 .rdata 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

Слайд 14


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

Слайд 15





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

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

Слайд 16


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

Слайд 17


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

Слайд 18





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

Слайд 19





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

Слайд 20





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

Слайд 21





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

Слайд 22





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

Слайд 23





Параметры функции main
#include <stdio.h>

int main(int argc, char** argv)
{
    for(int i = 0; i < argc; i++)
        printf("%s\n", argv[i]);

    return 0;
}
Описание слайда:
Параметры функции main #include <stdio.h> int main(int argc, char** argv) { for(int i = 0; i < argc; i++) printf("%s\n", argv[i]); return 0; }

Слайд 24





Литература
Черновик стандарта 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
Загрузить презентацию