Операционная система Linux. Лекция 11

Save this PDF as:
 WORD  PNG  TXT  JPG

Размер: px
Начинать показ со страницы:

Download "Операционная система Linux. Лекция 11"

Транскрипт

1 Операционная система Linux Лекция 11

2 GNU Compiler Collection (gcc) GNU Compiler Collection - набор компиляторов для различных языков программирования, разработанный в рамках проекта GNU. GCC является свободным программным обеспечением, распространяется фондом свободного программного обеспечения (FSF) на условиях GNU GPL. Он используется как стандартный компилятор для свободных UNIXподобных операционных систем. Изначально названный GNU C Compiler поддерживал только язык Си. Позднее GCC был расширен для компиляции исходных кодов на таких языках программирования, как C++, Objective-C, Java, Фортран и Ada. gcc --version gcc --help 2

3 Hello, world. hello.c #include <stdio.h> int main(){ } printf("hello, world.\n"); return 0; gcc hello.c В каталоге появится файл a.out (assembler output), запуск его на выполнение - командой./a.out (точка означает текущий каталог). Имя выходного исполняемого файла, а также любого другого файла формируемого gcc, можно изменить с помощью опции -o gcc hello.c -o hello.out 3

4 Расширения имен файлов file.c - исходный код на языке C, который надо обработать препроцессором file.cpp - исходный код на языке C++, который надо обработать препроцессором file.h - заголовочный файл C, C++ file.i (ii)- исходный код на языке C (С++), который не надо обрабатывать препроцессором file.s - код ассемблера file.o - объектный файл man gcc - полный список расширений 4

5 Общее определение компиляции ''Компиляция - трансляция программы, составленной на исходном языке высокого уровня, в эквивалентную программу на низкоуровневом языке, близком машинному коду.'' При использовании gcc процесс компиляции можно разбить на 4 этапа: обработка препроцессором, компиляция, ассемблирование и связывание (линковка). Опции gcc позволяют прервать процесс на любом из этих этапов. 5

6 1. Препроцессор Препроцессор осуществляет подготовку исходного файла к компиляции - вырезает комментарии, добавляет содержимое заголовочных файлов (директива препроцессора #include), реализует раскрытие макросов (символических констант, директива препроцессора #define). Воспользовавшись опцией -E дальнейшие действия gcc можно прервать и просмотреть содержимое файла, обработанного препроцессором. gcc -E hello.c -o hello.i hello.i - файл длиной порядка 800 строк, его лучше смотреть командой cat -n hello.i less По соглашениям gcc расширение.i соответствует файлам с исходным кодом на языке C не требующим обработки препроцессором. Такие файлы компилируются минуя препроцессор: gcc hello.i -o hello 6

7 2. Компиляция После препроцессинга наступает очередь компиляции. Компилятор преобразует исходный текст программы на языке высокого уровня в код на языке ассемблера. Остановить процесс создания исполняемого файла по завершении компиляции позволяет опция -S: gcc -S hello.c При этом задавать имя выходного файла не обязательно, так как gcc автоматически создаст файл hello.s, содержащий реализацию программы на языке ассемблера. cat hello.s 7

8 3. Ассмеблирование Следующий этап - операция ассмеблирования - трансляция кода на языке ассемблера в машинный код. Результат - объектный файл. Объектный файл содержит блоки готового к исполнению машинного кода, блоки данных, а также список определенных в файле функций и внешних переменных (таблицу символов), но при этом в нем не заданы абсолютные адреса ссылок на функции и данные. Объектный файл не может быть запущен на исполнение непосредственно, но в дальнейшем (на этапе линковки) может быть объединен с другими объектными файлами (при этом, в соответствии с таблицами символов, будут вычислены и заполнены адреса существующих между файлами перекрестных ссылок). Опция gcc -c, останавливает процесс по завершении этапа ассемблирования: gcc -c hello.c Для объектных файлов принято стандартное расширение.o 8

9 4. Связывание (линковка) Если полученный объектный файл hello.o передать линковщику, последний вычислит адреса ссылок, добавит код запуска и завершения программы, код вызова библиотечных функций и в результате получится готовый исполняемый файл программы. gcc hello.o -o hello 9

10 Оптимизация Опции -O1, -O2, -O3 - задают уровень оптимизации кода генерируемого компилятором. С увеличением номера, степень оптимизации возрастает. Без '-O' цель компилятора состоит в том, чтобы уменьшить стоимость трансляции и выдать ожидаемые результаты при отладке. С '-O' компилятор пробует уменьшить размер кода и время исполнения. Опция -O0 - отменяет какую-либо оптимизацию кода. Опция необходима на этапе отладки приложения. Опция -Os - задает оптимизацию не по эффективности кода, а по размеру получаемого файла. Производительность программы при этом должна быть сопоставима с производительностью кода полученного при компиляции с уровнем оптимизации заданным по умолчанию. 10

11 circle.c int main () { int i; for(i = 0; i < 10; ++i) ; return i; } Пустое тело цикла gcc -S circle.c (без оптимизации) gcc -S -O3 circle.c -o circle3.s (максимальная оптимизация) 11

12 Задание на практику Набрать файл с кодом hello.c, скомпилировать его, получив файл a.out, выполнить. Используя опции gcc, получить файл, обработанный препроцессором (hello.i), файл, содержащий программу на языке ассемблера (hello.s), объектный файл (hello.o), исполняемый файл (hello). Набрать файл с кодом circle.c, получить файлы, содержащие программы на языке ассемблера circle.s - без оптимизации, circle3.s - с оптимизацией уровня 3, сравнить их. Получить соответствующие исполняемые файлы. Как получить результат выполнения такой программы? 12

Операционная система Linux. Лекция 12

Операционная система Linux. Лекция 12 Операционная система Linux Лекция 12 1 Компиляция нескольких файлов Раздельная компиляция трансляция частей программы по отдельности с последующим объединением их компоновщиком в единый загрузочный модуль.

Подробнее

СибГУТИ Кафедра ВС Программирование на языке высокого уровня (ПЯВУ), семестр учебный год Поляков А.Ю.

СибГУТИ Кафедра ВС Программирование на языке высокого уровня (ПЯВУ), семестр учебный год Поляков А.Ю. СибГУТИ Кафедра ВС Программирование на языке высокого уровня (ПЯВУ), семестр 1 2009 2010 учебный год Поляков А.Ю. Лабораторная работа 1. Среда программирования ОС Linux. Цель работы: Познакомиться с программным

Подробнее

Практическое занятие 55

Практическое занятие 55 ФГОБУ ВПО "СибГУТИ" Кафедра вычислительных систем Дисциплины "ЯЗЫКИ ПРОГРАММИРОВАНИЯ" "ПРОГРАММИРОВАНИЕ" Практическое занятие 55 ОС GNU/Linux Преподаватель: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич

Подробнее

Лабораторная работа 0. Знакомство с ОС GNU/Linux

Лабораторная работа 0. Знакомство с ОС GNU/Linux Кафедра вычислительных систем Сибирский государственный университет телекоммуникаций и информатики Лабораторная работа 0. Знакомство с ОС GNU/Linux Перышкова Евгения Николаевна E-mail: e.peryshkova@gmail.com

Подробнее

Система трансляции программ в Unix 1.1 Схема трансляции программы Препроцессирование. Трансляция в ассемблер. Ассемблирование. Компоновка.

Система трансляции программ в Unix 1.1 Схема трансляции программы Препроцессирование. Трансляция в ассемблер. Ассемблирование. Компоновка. 1 Система трансляции программ в Unix 1.1 Схема трансляции программы Рассмотрим схему трансляции программы на языке Си, которая традиционно используется в системах Unix. Трансляция программы состоит из

Подробнее

Компилятор и его друзья

Компилятор и его друзья 11 июля 2016 г. Знакомые компиляторы Паскаль fpc hello.pas C gcc hello.c -o hello C++ g++ hello.cpp -o hello Тоже компиляторы Существенно отличаются от предыдущих! Java javac Hello.java Python python -m

Подробнее

План курса. Литература.

План курса. Литература. План курса. Литература. Язык программирования C Б.В. Керниган, Д.М. Ричи. "Язык программирования С" Язык программирования C++ Бьерн Страуструп "Язык программирования С++" m Практические занятия Компьютерный

Подробнее

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ "Последовательные программы"

ПРАКТИЧЕСКОЕ ЗАНЯТИЕ Последовательные программы ФГОБУ ВПО "СибГУТИ" Кафедра вычислительных систем ПРОГРАММИРОВАНИЕ ЯЗЫКИ ПРОГРАММИРОВАНИЯ ПРАКТИЧЕСКОЕ ЗАНЯТИЕ "Последовательные программы" Преподаватель: Доцент Кафедры ВС, к.т.н. Поляков Артем Юрьевич

Подробнее

Языки программирования и методы трансляции

Языки программирования и методы трансляции Языки программирования и методы трансляции Введение 1 Спектр языков программирования 2 Наибольший общий делитель Сначала программы писали так: Пример (Программа вычисления н.о.д. для x86) 55 89 e5 53 83

Подробнее

Модульное программирование. Сборка проектов из нескольких файлов. Утилита make.

Модульное программирование. Сборка проектов из нескольких файлов. Утилита make. Студенческая лаборатория МФТИ-Intel Модульное программирование. Сборка проектов из нескольких файлов. Утилита make. Максим Кузнецов maks.kuznetsov@gmail.com 30.11.2012 http://ilab.mipt.ru Мотивация Зачем

Подробнее

Знакомство с традиционными средствами разработки в ОС Linux

Знакомство с традиционными средствами разработки в ОС Linux Лаборатория системного программирования и информационных технологий СПбГУ Лабораторная работа 2 Знакомство с традиционными средствами разработки в ОС Linux 1 Цели работы Знакомство с традиционными средствами

Подробнее

Базовое программное обеспечение процессора NM6403

Базовое программное обеспечение процессора NM6403 Введение Базовое программное обеспечение (БПО) нейропроцессора NM6403 обеспечивает полный цикл разработки и отладки прикладных программ. БПО позволяет разрабатывать прикладные программы на языке Си++ и

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2015/2016. Лекция 4

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2015/2016. Лекция 4 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2015/2016 Лекция 4 1 Нормальные алгоритмы Маркова Определение нормального алгоритма Маркова (НАМ) V алфавит основных символов V алфавит маркеров σ, σ

Подробнее

ЛАБОРАТОРНАЯ РАБОТА 2. «ИЗУЧЕНИЕ ОПТИМИЗИРУЮЩЕГО КОМПИЛЯТОРА» 1. ОПТИМИЗИРУЮЩИЙ КОМПИЛЯТОР. ОСНОВНЫЕ ФУНКЦИИ И ХАРАКТЕРИСТИКИ

ЛАБОРАТОРНАЯ РАБОТА 2. «ИЗУЧЕНИЕ ОПТИМИЗИРУЮЩЕГО КОМПИЛЯТОРА» 1. ОПТИМИЗИРУЮЩИЙ КОМПИЛЯТОР. ОСНОВНЫЕ ФУНКЦИИ И ХАРАКТЕРИСТИКИ ЛАБОРАТОРНАЯ РАБОТА 2. «ИЗУЧЕНИЕ ОПТИМИЗИРУЮЩЕГО КОМПИЛЯТОРА» Цели работы 1. Изучение основных функций оптимизирующего компилятора, и некоторых примеров оптимизирующих преобразований и уровней оптимизации.

Подробнее

Компиляция программ

Компиляция программ 1 План лекции : 1. Введение. Трансляторы и интерпретаторы. 2. Этапы трансляции программ. 3. Транслятор gcc. 4. Утилита make. 5. Пример компиляции проекта. Литература по лекции Примечания и комментарии

Подробнее

Сборка программы на языке C

Сборка программы на языке C А. Г. Фенстер, fenster@fenster.name 9 февраля 2010 г. 1 Сборка программы из нескольких файлов Программы на языке C обычно состоят из нескольких файлов с исходным кодом. Рассмотрим этапы сборки программы

Подробнее

Лекция 2. Сборка С++ программ. С++ Basics. Valery Lesin,

Лекция 2. Сборка С++ программ. С++ Basics. Valery Lesin, Лекция Сборка С++ программ С++ Basics. Valery Lesin, 2013 1 Компиляция С++ Basics. Valery Lesin, 2013 2 Объявления и определения 9. 10. 1 1 1 // declarations void foo(int bar); extern int value; // definitions

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2016/2017. Лекция 13

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2016/2017. Лекция 13 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2016/2017 Лекция 13 1 Схема раздельной компиляции Исходная программа file1.c file2.c file3.c 1 Препроцессор 1 Препроцессор 1 Препроцессор 2 Компилятор

Подробнее

Рис Схема алгоритма рассматриваемой задачи. Уточним содержимое блока «Вычисление и печать расстояния».

Рис Схема алгоритма рассматриваемой задачи. Уточним содержимое блока «Вычисление и печать расстояния». Лабораторная работа 1 Программирование линейных алгоритмов Цель работы: выработать практические навыки работы с системой Microsoft Visual Studio, научиться создавать, вводить в компьютер, выполнять и исправлять

Подробнее

Программа работы с кластером «HIG Cluster Tool»

Программа работы с кластером «HIG Cluster Tool» Программа работы с кластером «HIG Cluster Tool» Автор и разработчик: Хныкин Иван Геннадьевич (с) 2010 Начало работы Войдите на интернет сайт кластера: По ссылке «Информация» находится документация по работе

Подробнее

СОЗДАНИЕ ПРИЛОЖЕНИЙ НА C++ В СРЕДЕ NETBEANS. Чекуров В.В.

СОЗДАНИЕ ПРИЛОЖЕНИЙ НА C++ В СРЕДЕ NETBEANS. Чекуров В.В. СОЗДАНИЕ ПРИЛОЖЕНИЙ НА C++ В СРЕДЕ NETBEANS Чекуров В.В. nau.devclub@gmail.com http://osum.sun.com/group/nau ВПЕЧАТЛЕНИЯ ОТ РАБОТЫ В СРЕДЕ NETBEANS И CYGWIN Интегрированная среда разработки (IDE) NetBeans,

Подробнее

Установка и настройка рекомендуемых средств разработки в ОС Windows для курса «Технология программирования»

Установка и настройка рекомендуемых средств разработки в ОС Windows для курса «Технология программирования» Установка и настройка рекомендуемых средств разработки в ОС Windows для курса «Технология программирования» СОДЕРЖАНИЕ 1 Установка MinGW... 2 1.1 Загрузка... 2 1.2 Установка... 2 1.3 Настройка системы...

Подробнее

Языки программирования

Языки программирования 3. Влияние архитектуры Структура компьютера 1. Данные; 2. Элементарные операции; 3. Управление последовательностью действий; 4. Доступ к данным; 5. Управление памятью; 6. Операционная среда. 2 Данные Хранение:

Подробнее

Подключение внешних библиотек в среде Code::Blocks

Подключение внешних библиотек в среде Code::Blocks Курс «Технология программирования» Подключение внешних библиотек в среде Code::Blocks Библиотека (англ. library) в программировании сборник подпрограмм или объектов, используемых для разработки программного

Подробнее

ИНФОРМАТИКА I: ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ СИ

ИНФОРМАТИКА I: ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ СИ ИНФОРМАТИКА I: ОСНОВЫ ПРОГРАММИРОВАНИЯ НА ЯЗЫКЕ СИ ЛЕКЦИЯ 1 12 СЕНТЯБРЯ 2010 ВВЕДЕНИЕ В КУРС. ЯЗЫК СИ В СТРУКТУРЕ КОМПЕТЕНЦИЙ СТУДЕНТА И ВЫПУСКНИКА ПЕТРГУ Формы организации занятий Лекционные (16 занятий

Подробнее

переменные, стандартный ввод-вывод. Игра «Утраченный клад»

переменные, стандартный ввод-вывод. Игра «Утраченный клад» 1 Типы, переменные, стандартный ввод-вывод. Игра «Утраченный клад» Программирование игр взыскательная отрасль. В этой сфере и разработчик, и машина должны работать на пределе возможностей. Но игра здесь

Подробнее

Руководство по работе в среде разработки Code::Blocks

Руководство по работе в среде разработки Code::Blocks Руководство по работе в среде разработки Code::Blocks С/к. «ООП на C ++» мехмат, II курс, ВО, ИСТ Практикум Руководство по работе в среде разработки Code::Blocks 1 / 60 Создание Функция Файл Путь к файлу

Подробнее

Лекция 9. Терновой Максим Юрьевич к.т.н., с.н.с., доцент кафедры информационнотелекоммуникационных

Лекция 9. Терновой Максим Юрьевич к.т.н., с.н.с., доцент кафедры информационнотелекоммуникационных Технологии программирования Зима-Весна Лекция 9 Терновой Максим Юрьевич к.т.н., с.н.с., доцент кафедры информационнотелекоммуникационных сетей Вопросы, рассматриваемые на лекции 1. Частные (private) элементы

Подробнее

Рис.1 Начальная страница Microsoft Visual Studio 2010

Рис.1 Начальная страница Microsoft Visual Studio 2010 ЛАБОРАТОРНАЯ РАБОТА 5 Тема: Работа в среде Microsoft Visual Studio 2010 Цель работы: Навчиться работать в среде Microsoft Visual Studio 2010 Оборудование: ПК,ПО Microsoft Visual Studio 2010 Ход роботы

Подробнее

Алгоритмизация и программирование

Алгоритмизация и программирование Алгоритмизация и программирование Программирование на С/С++ (ч.1 - основы) Беркунский Е.Ю., кафедра ИУСТ, НУК eugeny.berkunsky@gmail.com http://www.berkut.mk.ua Компьютеры для чего? Компьютер это универсальный

Подробнее

#define <name> <text>

#define <name> <text> 1 Занятие 9 1.1 Препроцессор Препроцессирование это специальный просмотр исходного файла на языке Си, в ходе которого выполняются специальные директивы (директивы препроцессора) и производится макроподстановка

Подробнее

1. Определение пространства имен 2. Анонимные пространства имен

1. Определение пространства имен 2. Анонимные пространства имен Лекция 16 Тема: Пространства имен План: 1. Определение пространства имен 2. Анонимные пространства имен 3. Стандартное пространство имен 4. Оператор разрешения области видимости 5. Объявление using 6.

Подробнее

Программы из нескольких файлов

Программы из нескольких файлов 102 В.Л. Тарасов Лекции по программированию на C++ Лекция 8 Программы из нескольких файлов Как правило, исходные тексты программ на C++ размещают в нескольких файлах. Это удобно, так как небольшой код

Подробнее

Постулат ISSN УДК 004. Работа на Assembler в Microsoft Visual Studio 2015

Постулат ISSN УДК 004. Работа на Assembler в Microsoft Visual Studio 2015 УДК 004 Работа на Assembler в Microsoft Visual Studio 2015 Волков Виталий Александрович Мордовский государственный университет им. Н.П.Огарева студент Аннотация В данной статье описывается работа на языке

Подробнее

Производственно-практическое издание ПРОГРАММИРОВАНИЕ ДЛЯ НАЧИНАЮЩИХ. Майк МакГрат ПРОГРАММИРОВАНИЕ НА C ДЛЯ НАЧИНАЮЩИХ (орыс тілінде)

Производственно-практическое издание ПРОГРАММИРОВАНИЕ ДЛЯ НАЧИНАЮЩИХ. Майк МакГрат ПРОГРАММИРОВАНИЕ НА C ДЛЯ НАЧИНАЮЩИХ (орыс тілінде) 004.43 32.973-018.2 15 Все права защищены. Книга или любая ее часть не может быть скопирована, воспроизведена в электронной или механической форме, в виде фотокопии, записи в память ЭВМ, репродукции или

Подробнее

Установка компилятора GNU Compiler Collection (GCC). Установка, локализация и настройка IDE Eclipse CDT (C/C++ Development Tools) Luna

Установка компилятора GNU Compiler Collection (GCC). Установка, локализация и настройка IDE Eclipse CDT (C/C++ Development Tools) Luna Установка компилятора GNU Compiler Collection (GCC). Установка, локализация и настройка IDE Eclipse CDT (C/C++ Development Tools) Luna МЕТОДИЧЕСКОЕ ПОСОБИЕ для пользователей OS Windows Дата: 23.07.15 2

Подробнее

Москва Мироновская 33 телефон (495) факс: (495)

Москва Мироновская 33 телефон (495) факс: (495) Внимание! Важно знать перед установкой! K2 Studio устанавливается на операционные системы Windows XP SP3, Windows Server 2003 SP2, Windows Vista, Windows Server 2008, Windows Server 2008 R2, Windows Server

Подробнее

Компиляция и интерпретация программ

Компиляция и интерпретация программ Компиляция и интерпретация программ Языки программирования, в общем случае, разработаны для того, чтобы человек мог в понятной ему форме написать программу. Для того, чтобы программа могла быть исполнена

Подробнее

Лабораторная работа 1. Построение первого приложения. Линейные программы

Лабораторная работа 1. Построение первого приложения. Линейные программы Лабораторная работа 1. Построение первого приложения. Линейные программы 1 Моя первая программа Традиционно при изучении нового языка программирования первой программой, которую пишет программист, является

Подробнее

(пусть адреса ячеек равны 51, F2 и 93) Машинный код:

(пусть адреса ячеек равны 51, F2 и 93) Машинный код: Языки программирования высокого уровня Пример: сложить содержимое двух разных ячеек и результат поместить в третью. (вспоминаем формат машинной команды (лекция 5)) Код Операции О п е р а н д (пусть адреса

Подробнее

Операционная система Linux. Лекция 6

Операционная система Linux. Лекция 6 Операционная система Linux Лекция 6 Командная оболочка (shell, bash) является интерфейсом командной строки в Unix-подобных ОС, то есть выполняет команды, которые подает пользователь, или которые читаются

Подробнее

КОМПИЛЯЦИЯ ПРОГРАММ, НАПИСАННЫХ НА ЯЗЫКЕ СИ, В LINUX. работы в лабораториях Кафедры вычислительных систем Сибирского

КОМПИЛЯЦИЯ ПРОГРАММ, НАПИСАННЫХ НА ЯЗЫКЕ СИ, В LINUX. работы в лабораториях Кафедры вычислительных систем Сибирского КОМПИЛЯЦИЯ ПРОГРАММ, НАПИСАННЫХ НА ЯЗЫКЕ СИ, В LINUX (в лабораториях Кафедры вычислительных систем СибГУТИ) В методическом пособии рассматривается порядок разработки программ, включающий: подготовку текстового

Подробнее

Средства разработки мобильных приложений в Linux

Средства разработки мобильных приложений в Linux Лаборатория системного программирования и информационных технологий СПбГУ Средства разработки мобильных приложений в Linux 1 План GNU GNU Compiler Collection (gcc) GNU make GNU autotools GNU debugger Открытые

Подробнее

Министерство образования РФ Самарский государственный аэрокосмический университет академика С. П. Королева ИСПОЛЬЗОВАНИЕ ЯЗЫКА ПРОГРАММИРОВАНИЯ СИ

Министерство образования РФ Самарский государственный аэрокосмический университет академика С. П. Королева ИСПОЛЬЗОВАНИЕ ЯЗЫКА ПРОГРАММИРОВАНИЯ СИ Министерство образования РФ Самарский государственный аэрокосмический университет академика С. П. Королева имени ИСПОЛЬЗОВАНИЕ ЯЗЫКА ПРОГРАММИРОВАНИЯ СИ Методические указания к лабораторным работам по

Подробнее

Лабораторная работа 1 Программирование алгоритмов линейной структуры

Лабораторная работа 1 Программирование алгоритмов линейной структуры Лабораторная работа 1 Программирование алгоритмов линейной структуры 1. ЦЕЛЬ РАБОТЫ: приобретение практических навыков работы в интегрированной среде, изучение структуры программы на языке С. 2. ОСНОВНЫЕ

Подробнее

Лабораторная работа 1. Построение первого приложения. Линейные программы

Лабораторная работа 1. Построение первого приложения. Линейные программы Лабораторная работа 1. Построение первого приложения. Линейные программы 1 Моя первая программа Традиционно при изучении нового языка программирования первой программой, которую пишет программист (ужасно,

Подробнее

Лекция 2. Как выполняются программы на C++

Лекция 2. Как выполняются программы на C++ http://compscicenter.ru 1/21 Лекция 2. Как выполняются программы на C++ Александр Смаль CS центр 15 сентября 2016 Санкт-Петербург http://compscicenter.ru 2/21 Типы данных Целочисленные: 1. char (символьный

Подробнее

Обзор Java технологий

Обзор Java технологий Обзор Java технологий Что такое Java? Язык программирования Платформа: Аппаратная Операционная Технологии Сообщество разработчиков Популярность Java технологий 6 млн. Java разработчиков. 2.5 млн. серверов

Подробнее

Потоки. #include <stdio.h> Что можно делать с потоками? Открыть Использовать ( читать, писать в поток ) Закрыть

Потоки. #include <stdio.h> Что можно делать с потоками? Открыть Использовать ( читать, писать в поток ) Закрыть Потоки Стандартные потоки: stdin, stdout, stderr Потоки также можно создать самим: FILE * fp; FILE это тип данных, который определен в stdio.h, и потому любая программа, которая использует потоки должна

Подробнее

Начало История Библиотеки. Название. Лекция 1. Введение. Объектно-ориентированное программирование на C ++ 7 сентября 2009 г.

Начало История Библиотеки. Название. Лекция 1. Введение. Объектно-ориентированное программирование на C ++ 7 сентября 2009 г. Название Лекция 1. Введение Объектно-ориентированное программирование на C ++ 7 сентября 2009 г. Лекция 1 1 / 11 C C ++ Цели, ставившиеся при создании С Цели Непосредственная работа с памятью Структурные

Подробнее

Лекции по курсу Алгоритмы и алгоритмические языки, 1 курс, 1 поток, 2010/2011 уч.год.

Лекции по курсу Алгоритмы и алгоритмические языки, 1 курс, 1 поток, 2010/2011 уч.год. Лекция 8 Массивы и указатели 8.1. Указатели 8.1.1. Организация памяти в компьютере массив последовательно пронумерованных (адресуемых) ячеек, которые можно обрабатывать по отдельности, либо группами. Указатель

Подробнее

Язык программирования Cи. Семинар 5. Коллоквиум, методика проведения и типовые вопросы.

Язык программирования Cи. Семинар 5. Коллоквиум, методика проведения и типовые вопросы. Язык программирования Cи Бикулов Д.А., Иваницкая Н.В., Иванов А.П. Семинар 5. Коллоквиум, методика проведения и типовые вопросы. Коллоквиум проводится на семинарском занятии в середине семестра (обычно

Подробнее

ЛАБОРАТОРНАЯ РАБОТА 3

ЛАБОРАТОРНАЯ РАБОТА 3 ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ БЮДЖЕТНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «СИБИРСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ И ИНФОРМАТИКИ»

Подробнее

Практическая работа 1. Элементы интерфейса

Практическая работа 1. Элементы интерфейса Практическая работа 1. Элементы интерфейса Школа 444, Москва Практическая работа 1 «Элементы интерфейса», Стр.-1, Всего - 6 В последнее время особое внимание уделяется лицензионной чистоте используемого

Подробнее

Языки программирования и методы трансляции

Языки программирования и методы трансляции Языки программирования и методы трансляции Имена, связывание, области видимости 1 Время связывания 2 3 Статические области видимости Динамические области видимости Имя, область видимости и связывание Имя

Подробнее

Информационные технологии. Лекция 3

Информационные технологии. Лекция 3 Информационные технологии Лекция 3 1 Оболочка bash 2 Основные сведения Оболочка или shell работа в текстовом режиме (интерфейс командной строки) Графический интерфейс пользователя (GUI) работа в графическом

Подробнее

Платформа Java SE: введение

Платформа Java SE: введение Платформа Java SE: введение Андрей Дмитриев andrei.dmitriev@oracle.com Программа Платформа JavaSE. Язык Java. С чего начать? Вопросы и ответы. Платформа Java SE Почему платформа?

Подробнее

Программирование в C++ Преподаватель Колотова Людмила Павловна

Программирование в C++ Преподаватель Колотова Людмила Павловна Программирование в C++ Преподаватель Колотова Людмила Павловна 2 Содержание 4-го занятия по практике Работа с функциями. Простые и библиотечные функции Передача аргументов в функцию Значение, возвращаемое

Подробнее

Статические и динамические библиотеки

Статические и динамические библиотеки ПРОГРАММИРОВАНИЕ Статические и динамические библиотеки Преподаватель: Ст. преп. Кафедры ВС, Перышкова Евгения Николаевна Создание объектных файлов Одной командой: #gcc -c main.c f1.c f2.c Каждый файл отдельно:

Подробнее

Введение. Программный код будет представлен таким же образом: Hi mom! // программа int main() {... } C++_for_dumm_7-еd.indb

Введение. Программный код будет представлен таким же образом: Hi mom! // программа int main() {... } C++_for_dumm_7-еd.indb Введение М ы рады приветствовать вас на страницах нашей книги! В ней вы найдете всю необходимую для изучения C++ информацию, изложенную доступным языком и не отягощенную излишними подробностями. Об этой

Подробнее

Платформа Java SE: введение

Платформа Java SE: введение Платформа Java SE: введение Андрей Дмитриев andrei-dmitriev@yandex.ru http://in4mix2006.narod.ru/ 2008 Copyright (C) 2000-2008 Sun Microsystems, Inc. All rights reserved. Программа Платформа JavaSE Язык

Подробнее

Перенос проекта с Clipper на xharbour Compiler build и выше. Скачать дистрибутив xharbour

Перенос проекта с Clipper на xharbour Compiler build и выше. Скачать дистрибутив xharbour Перенос проекта с Clipper на xharbour Compiler build 0.99.71 и выше Эта статья для тех кто хочет перейти «без проблем» с Clipper на xharbour for Windows. Я попытаюсь в этой статье показать порядок перехода.

Подробнее

Глава 6. Интерфейс между программами, написанными на языках C и Fortran и пакетом Scilab

Глава 6. Интерфейс между программами, написанными на языках C и Fortran и пакетом Scilab SCILAB Глава 6. Интерфейс между программами, написанными на языках C и Fortran и пакетом Scilab Содержание главы: Как добавить код C и Fortran программ в Scilab? Динамическое линкование Особенности интерфейса

Подробнее

Лекция 2. Модульное программирование

Лекция 2. Модульное программирование Название Лекция 2. Модульное программирование Объектно-ориентированное программирование на C ++ 7 сентября 2009 г. Лекция 2 1 / 17 Проблемы при разработке ПО Проблемы Правила применения Проблемы, возникающие

Подробнее

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ СТРОИТЕЛЬНЫЙ УНИВЕРСИТЕТ Институт экономики, управления, информационных систем в строительстве и недвижимости Кафедра информационных

Подробнее

Применение диверсифицирующих и обфусцирующих преобразований для изменения сигнатуры программного кода

Применение диверсифицирующих и обфусцирующих преобразований для изменения сигнатуры программного кода Применение диверсифицирующих и обфусцирующих преобразований для изменения сигнатуры программного кода. Нурмухаметов Алексей Раисович 1 декабря 2016 г. Институт Системного Программирования 1/19 Введение

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2017/2018. Лекция 11

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2017/2018. Лекция 11 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2017/2018 Лекция 11 1 Вычисления с плавающей точкой Предпосылки: дробные двоичные числа Стандарт арифметики с плавающей точкой IEEE 754: Определение Пример

Подробнее

ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ С/C++ (ЧАСТЬ 1)

ПРОГРАММИРОВАНИЕ НА ЯЗЫКЕ С/C++ (ЧАСТЬ 1) МИНИСТЕРСТВО ОБРАЗОВАНИЯ РЕСПУБЛИКИ БЕЛАРУСЬ УЧРЕЖДЕНИЕ ОБРАЗОВАНИЯ «БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТРАНСПОРТА» Кафедра «Информационные технологии» Д. В. БАЛАЩЕНКО, Д. В. ЗАХАРОВ ПРОГРАММИРОВАНИЕ

Подробнее

Например, следующий оператор объявляет массив из 100 целочисленных элементов с именем data:

Например, следующий оператор объявляет массив из 100 целочисленных элементов с именем data: Массивы Массив (или массив данных) это набор однородных элементов. Массив это пронумерованная ( или проиндексированная) последовательность величин одинакового типа, обозначаемая одним именем. Элементы

Подробнее

Embedded Design Handbook 4. Инструменты командной строки Nios II Перевод: Егоров А.В., 2011 г.

Embedded Design Handbook 4. Инструменты командной строки Nios II Перевод: Егоров А.В., 2011 г. Линковщик Используйте команду nios2-elf-g++ для компоновки ваших объектных файлов и архивов в окончательный исполняемый формат ELF. Пример использования линковщика Для компоновки ваших объектных файлов

Подробнее

Язык программирования С

Язык программирования С ПРОГРАММА Язык программирования С 2015г. Пояснительная записка Большая часть действительно серьёзных и сложных программ в настоящее время пишется именно на С и С++ (СИ). В курсе по С (СИ) обращается особое

Подробнее

Фонд оценочных средств для проведения промежуточной аттестации обучающихся по дисциплине

Фонд оценочных средств для проведения промежуточной аттестации обучающихся по дисциплине Общие сведения 1. Кафедра Фонд оценочных средств для проведения промежуточной аттестации обучающихся по дисциплине 2. Направление подготовки 3. Дисциплина 4. Тип заданий 5. Количество этапов формирования

Подробнее

Лабораторная работа 1 Знакомство со средой Microsoft Visual Studio 2010 (Ultimate)

Лабораторная работа 1 Знакомство со средой Microsoft Visual Studio 2010 (Ultimate) Лабораторная работа 1 Знакомство со средой Microsoft Visual Studio 2010 (Ultimate) 1. Запустите среду разработки: меню Пуск \ Программы \ Microsoft Visual Studio 2010 \Microsoft Visual Studio 2010. Появится

Подробнее

Учебно-методические указания к лабораторной работе 1 по курсу Основы программирования и алгоритмизации в области автоматизации

Учебно-методические указания к лабораторной работе 1 по курсу Основы программирования и алгоритмизации в области автоматизации МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Государственное автономное образовательное учреждение высшего образования «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» Учебно-методические

Подробнее

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2016/2017. Лекция 8

Курс «Алгоритмы и алгоритмические языки» 1 семестр 2016/2017. Лекция 8 Курс «Алгоритмы и алгоритмические языки» 1 семестр 2016/2017 Лекция 8 1 Указатели & - операция адресации * - операция разыменования int a = 1; int *p; p = &a; *p = 2; printf ("Значение переменной a = %d\n",

Подробнее

Автоматизация запуска программ и их тестирования на базе вычислительных моделей

Автоматизация запуска программ и их тестирования на базе вычислительных моделей Автоматизация запуска программ и их тестирования на базе вычислительных моделей Бедарев Николай, НГУ Прокопьева Анастасия, НГУ 09.07 14.07 2017 г. г. Новосибирск Проблема Процесс тестирования и запуска

Подробнее

Создание C++ проектов в Visual Studio Некоторые рекомендации и советы Отладка в Visual Studio Точки останова...

Создание C++ проектов в Visual Studio Некоторые рекомендации и советы Отладка в Visual Studio Точки останова... Оглавление Создание C++ проектов в Visual Studio 2008... 2 Некоторые рекомендации и советы... 5 Отладка в Visual Studio... 7 Точки останова... 7 Отслеживание значений переменных... 10 Примечания... 12

Подробнее

Среда программирования

Среда программирования Дисциплина "" Среда программирования Прогресс технологии дает нам все более совершенные средства длядвижениявспять. О. Хаксли Содержание Понятие среды программирования Техника разработки программ Классификация

Подробнее

ЯЗЫКИ ПРОГРАММИРОВАНИЯ

ЯЗЫКИ ПРОГРАММИРОВАНИЯ ЯЗЫКИ ПРОГРАММИРОВАНИЯ Выполнила: ученица 10А класса МОУ СОШ 53 г. Саратова Юлия Юдаева Язык программирования формальная знаковая система, предназначенная для записи компьютерных программ. Язык программирования

Подробнее

РАБОЧАЯ ПРОГРАММА Дисциплина «Информационная техника ч.1» форма обучения очная.

РАБОЧАЯ ПРОГРАММА Дисциплина «Информационная техника ч.1» форма обучения очная. ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ Филиал государственного образовательного учреждения высшего профессионального образования «Московский государственный институт радиотехники, электроники и автоматики

Подробнее

СОЗДАНИЕ ПЕРВОГО ПРОЕКТА в microc PRO for AVR

СОЗДАНИЕ ПЕРВОГО ПРОЕКТА в microc PRO for AVR СОЗДАНИЕ ПЕРВОГО ПРОЕКТА в microc PRO for AVR Специально для посетителей kazus.ru от SwanSwan E-mail: m_mm@land.ru ПРОГРАМНЫЕ И АППАРАТНЫЕ РЕШЕНИЯ ДЛЯ РАЗРАБОТЧИКОВ МИРА это сделать просто 2 Проект MikroC

Подробнее

Федеральное государственное автономное образовательное учреждение высшего профессионального образования «СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ»

Федеральное государственное автономное образовательное учреждение высшего профессионального образования «СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ» Федеральное государственное автономное образовательное учреждение высшего профессионального образования «СИБИРСКИЙ ФЕДЕРАЛЬНЫЙ УНИВЕРСИТЕТ» Институт математики и фундаментальной информатики Базовая кафедра

Подробнее

Методы взаимодействия прикладного приложения и ядра ОС

Методы взаимодействия прикладного приложения и ядра ОС Санкт Петербургский Государственный Университет Математико механический факультет Кафедра системного программирования Методы взаимодействия прикладного приложения и ядра ОС Курсовая работа студента 344

Подробнее

1. Общая информация о дисциплине 1.1. Название дисциплины: Системное программное обеспечение

1. Общая информация о дисциплине 1.1. Название дисциплины: Системное программное обеспечение 1. Общая информация о дисциплине 1.1. Название дисциплины: Системное программное обеспечение 1.2. Трудоѐмкость дисциплины 1.2.1. Трудоѐмкость дисциплины по учебному плану очной формы обучения: 180 часов

Подробнее

Содержание ПРЕДИСЛОВИЕ Глава 1 БАЗОВЫЕ ПОНЯТИЯ ЯЗЫКА Глава 2 ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА Си... 56

Содержание ПРЕДИСЛОВИЕ Глава 1 БАЗОВЫЕ ПОНЯТИЯ ЯЗЫКА Глава 2 ВВЕДЕНИЕ В ПРОГРАММИРОВАНИЕ НА Си... 56 Содержание ПРЕДИСЛОВИЕ... 6 Глава 1 БАЗОВЫЕ ПОНЯТИЯ ЯЗЫКА... 10 1.1. Алфавит, идентификаторы, служебные слова... 11 1.2. Литералы... 14 1.3. Переменные и именованные константы... 21 1.4. Операции... 30

Подробнее

КОМПИЛЯТОРЫ. КОМПИЛЯЦИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ В ОС FreeBSD

КОМПИЛЯТОРЫ. КОМПИЛЯЦИЯ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ В ОС FreeBSD МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ

Подробнее

IDK1031 Основы Click to edit Master title style программирования на языке С. Сборка программных продуктов. Система сборки.

IDK1031 Основы Click to edit Master title style программирования на языке С. Сборка программных продуктов. Система сборки. IDK1031 Основы Click to edit Master title style программирования на языке С Сборка программных продуктов. Система сборки. Этапы разработки программного обеспечения Разработка, тестирование Внедрение Поддержка

Подробнее

Технологии программирования

Технологии программирования Федеральное агентство связи федеральное государственное образовательное бюджетное учреждение высшего профессионального образования «Сибирский государственный университет телекоммуникаций и информатики»

Подробнее

Простейшая программа Hello, world!

Простейшая программа Hello, world! Простейшая программа Hello, world! // System.out.println("Привет, мир!"); Обязательные требования: 1) Имя файла, содержащего код программы, должно совпадать с именем класса 2) Файл должен иметь расширение.java

Подробнее

О.В.Бартеньев VISUAL FORTRAN: НОВЫЕ ВОЗМОЖНОСТИ Пособие содержит обширный материал по специальным, расширяющим стандарт Фортрана возможностям Digital

О.В.Бартеньев VISUAL FORTRAN: НОВЫЕ ВОЗМОЖНОСТИ Пособие содержит обширный материал по специальным, расширяющим стандарт Фортрана возможностям Digital О.В.Бартеньев VISUAL FORTRAN: НОВЫЕ ВОЗМОЖНОСТИ Пособие содержит обширный материал по специальным, расширяющим стандарт Фортрана возможностям Digital Visual Fortran, который, как известно, использует в

Подробнее

Прилагаемый компакт-диск

Прилагаемый компакт-диск Ââåäåíèå Добро пожаловать в мир книги C++ для чайников шестое издание; в ней вы найдете всю необходимую для изучения C++ информацию, изложенную доступным языком и не отягощенную излишними подробностями.

Подробнее

Объявление функций в С/С++

Объявление функций в С/С++ Объявление функций в С/С++ Описание функций в отдельных файлах В С++ существует возможность поместить объявления функций в отдельный файл, тогда необходимо будет подключать файл с функциями, как в случае

Подробнее

РАБОЧАЯ УЧЕБНАЯ ПРОГРАММА по дисциплине «Системное программирование»

РАБОЧАЯ УЧЕБНАЯ ПРОГРАММА по дисциплине «Системное программирование» МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ «МАТИ» РОССИЙСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ им. К. Э. ЦИОЛКОВСКОГО Кафедра «Моделирование систем и информационные технологии» «УТВЕРЖДАю»

Подробнее

Консольные приложения Visual C++ в среде Microsoft Studio 2008

Консольные приложения Visual C++ в среде Microsoft Studio 2008 Московский государственный технический университет имени Н. Э. Баумана Факультет Информатика и системы управления Кафедра Компьютерные системы и сети «УТВЕРЖДАЮ» Заведующий кафедрой ИУ-6 Сюзев В.В. Г.

Подробнее

Алгоритмы, структуры данных и прогр-ие_рус_3рк_зим_шайдуллина_ис(2к3,4г очн)

Алгоритмы, структуры данных и прогр-ие_рус_3рк_зим_шайдуллина_ис(2к3,4г очн) Алгоритмы, структуры данных и прогр-ие_рус_3рк_зим_шайдуллина_ис(2к3,4г очн) Автор теста: Шайдуллина Динара Ташеновна Название курса: Алгоритмы, структуры данных и программирование Название теста: Алгоритмы,

Подробнее

Содержание. Часть I. Погружение в С++ Глава 1. Введение и настройка среды разработки...20

Содержание. Часть I. Погружение в С++ Глава 1. Введение и настройка среды разработки...20 Содержание Часть I. Погружение в С++ Глава 1. Введение и настройка среды разработки...20 Что такое язык программирования?...20 В чем различие между C и C++?.........................................21 Обязательно

Подробнее

Система сетевого файлообмена (аналог системы NetBIOS)

Система сетевого файлообмена (аналог системы NetBIOS) Санкт-Петербургский государственный университет информационных технологий, механики и оптики Кафедра «Компьютерные технологии» И.А. Вотинов, Б.З. Хасянзянов, А.А. Шалыто Система сетевого файлообмена (аналог

Подробнее

времени выполнения) компилирует ее содержимое в машинный код

времени выполнения) компилирует ее содержимое в машинный код 1. Объектно-ориентированное программирование 1 1.1. Введение в.net и С# Microsoft.NET это платформа для разработки прикладных программ, основанная и ориентированная на Интернет..NET основывается на двух

Подробнее

Зачем изучать концепции языков программирования Большая свобода в выражении мыслей Знания, необходимые для правильного выбора подходящего языка програ

Зачем изучать концепции языков программирования Большая свобода в выражении мыслей Знания, необходимые для правильного выбора подходящего языка програ Концепции языков программирования Зачем изучать концепции языков программирования Большая свобода в выражении мыслей Знания, необходимые для правильного выбора подходящего языка программирования Способность

Подробнее

Лекции по курсу Алгоритмы и алгоритмические языки, 1 курс, 1 поток, 2010/2011 уч.год.

Лекции по курсу Алгоритмы и алгоритмические языки, 1 курс, 1 поток, 2010/2011 уч.год. Лекция 11 Сортировка 11.1. Сортировка. Постановка задачи. 11.1.1. Сортировка это упорядочение наборов однотипных данных, для которых определено отношение линейного порядка (например,

Подробнее