ОБЗОР ОСОБЕННОСТЕЙ ЯЗЫКА ПРОГРАММИРОВАНИЯ KOTLIN.

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

Download "ОБЗОР ОСОБЕННОСТЕЙ ЯЗЫКА ПРОГРАММИРОВАНИЯ KOTLIN."

Транскрипт

1 УДК Колмакова Е.Н., студентка 3 курс, факультет «Информационные системы и технологии» Поволжский Государственный Университет Телекоммуникаций и Информатики Россия, г. Самара ОБЗОР ОСОБЕННОСТЕЙ ЯЗЫКА ПРОГРАММИРОВАНИЯ KOTLIN. Статья посвящена обзору языка программирования Kotlin. Описаны его преимущества перед другими языками. Рассмотрены основные возможности, отсутствующие в Java. Ключевые слова: Kotlin, Java, языки программирования, функции The article provides a review of Kotlin language. Describe it is advantages over other languages. Consider the main features that not present in Java. Keywords: Kotlin, Java, programming languages, functions В наши дни существует множество языков программирования, среди которых есть действительно мощные и многофункциональные. Но ни один синтаксис не является универсальным. Потому, появление новых языков явление довольное частое. Рассмотрим Kotlin, один из таких языков, который подает большие надежды на будущее. Kotlin - это новый статически типизированный язык программирования, ориентированный на платформу Java. Его главные особенности прежде всего направлены на безопасность, выразительность, краткость и универсальность кода. Однако история разработки «альтернативных» Java языков насчитывает более десятилетия, поэтому у Kotlin немало конкурентов - Scala, Fantom и Gosu, да и сама Java тоже не стоит на месте. Но всё же Kotlin имеет хорошие перспективы, и тому есть несколько причин.

2 Во-первых, компания JetBrains, которая занимается созданием языка, хорошо разбирается в современных инструментах разработки и за долгое время существования накопила большой опыт в области языков программирования, а также собрала сильную команду специалистов. Kotlin приходит к нам из индустрии, а не научного сообщества. Он решает реальные проблемы, с которыми сталкиваются работающие программисты сегодня. Во-вторых, необходимость создания нового языка существует давно, но создать такой язык, который бы позволил взять (огромную) готовую кодовую базу Java, обычных Java-разработчиков, дать им новый инструмент и более эффективно продолжать разработку такого инструмента до появления Kotlin не существовало. Каковы же основные особенности этого языка? Null-безопасность. Null Pointer Exception одна из самых распространённых ошибок во многих языках программирования, в том числе и Java. Например, если создать строку, присвоить ей значение null и вызвать её в каком-нибудь методе, то во время выполнения мы получим Null Pointer Exception. В Kotlin мы получим ошибку еще на этапе компиляции. Таким образом, возможно заранее определить, будет ли переменной безопасной и содержать значение null или нет. Отсутствие сырых типов (raw types) обобщённых типов, употребляемых без параметров. Основной недостаток применения таких типов потеря типовой безопасности, обеспечиваемой настраиваемыми типами. Бывает, что иногда ничего неизвестно о типе аргумента, но попрежнему есть необходимость использовать его безопасным способом. Верным путем здесь будет написать, что мы имеем дело с объектом, не потребляющим никаких значений неизвестных типов, и имеющего верхнюю границу соответствующего параметра. Kotlin обеспечивает

3 сокращенный синтаксис для этого: в записи Foo <*> означает Foo <out Bar>, где Bar является верхней границей для параметра типа Foo. Отсутствие проверяемых исключений. Механизм проверяемых исключений основан на добавлении метод класса описание в явном виде всех исключений, которые он может сгенерировать. Кроме того, функция, вызывающая метод с объявленными исключениями, для каждого из них должна содержать обработчик, либо указывать этот тип как генерируемый ею в своём описании. Например, интерфейс JDK, реализованный классом StringBuilder Appendable append (CharSequence csq) throws IOException; В этом коде описывается, что каждый раз при добавлении чего-либо к строке, эти исключения IOExceptions должны быть обработаны. Зачем? Потому что это может быть выполнение операций ввода - вывода (Writer также реализует Appendable). Так что это приводит к такого рода кода во всех местах: try {log.append(message) } catch (IOException e ) { // Must be safe } Все это слишком громоздко, потому Kotlin не поддерживает проверяемые исключения Шаблоны строк. Эта особенность позволяет уменьшить объем код а. Так, при формировании строки в Java приходится использовать конкатен ацию, чтобы поместить значение переменной в середину строки. val apples = 4 println("i have " + apples + " apples.") В Kotlin все гораздо проще, достаточно добавить к имени переменной знак $. val apples = 4 println("i have $apples apples.") Свойства. Типичный класс Java представляет наличие приватных полей и методов getter и setter. Это слишком шаблонно и Kotlin позволяет

4 реализовать это лучше. Необходимо определить поля класса как переменные, и они являются публичными по умолчанию, а об инкапсуляции заботится компилятор, который самостоятельно генерирует getter и setter. Классы-расширения. Это одна из самых мощных возможностей в Kotlin. Она заключается в возможности определить метод для типа отдельно от его объявления. Ниже мы имеем функцию, которая проверяет, если мы запустили версию Lollipop или выше, то она принимает целое число в качестве аргумента: public fun islollipoporgreater(code: Int): Boolean { return code >= Build.VERSION_CODES.LOLLIPOP } Но мы можем изменить его к функции расширения, поставив тип и точку перед именем функции, и используя ключевое слово this: } public fun Int.isLollipopOrGreater(): Boolean { return this >= Build.VERSION_CODES.LOLLIPOP И теперь можно вызвать эту функцию из числа 16.isLollipopOrGreater() Это может быть любое целое число или литерал, также возможно сделать для final классов. Данные методы могут быть определены в любом месте. Все это увеличивает понятность и читаемость кода. Классы данных. Иногда возникает необходимость написать класс, который ничего не делает, а только хранит данные. В Kotlin для такого существуют классы данных, которые помечается как data: data class Human (val name : String, val age : Int) В данном случае компилятор, генерирует в классе Human несколько стандартных методов: equals()/hashcode(), tostring() и component1(), component2(), copy(). Все эти функции используют свойства класса,

5 объявленные в первичном конструкторе. Так, component1() возвращает name, а component2() age. Кроме того, классы данных дают возможность возвращать несколько значений из функции, не используя кортежи, что значительно улучшает читаемость кода. Функции высшего порядка, то есть функции, которые могут возвращать функции передавать в качестве параметров, возвращать из других функций, а также лямбда-выражения или анонимные функции - это функции, которые не объявлены, не имеют названия, но передаются как выражение. В заключение можно сказать, что многие особенности Kotlin не новы, и пришли из других языков, но их очень ждали именно в Java. Количество проектов на нем становится все больше и больше, в будущем Kotlin мог бы стать хорошей заменой Java в больших проектах и удобным инструментом для создания небольших проектов, благодаря своей простоте гибкости, дающих разработчику больше возможностей для написания быстрого и качественного кода. Использованные источники: 1. Официальный сайт языка программирования Kotlin [Электронный ресурс] URL: 2. Многофункциональный сайт Хабрахабр [Электронный ресурс] / URL:

Основы программирования на Java. Исключения

Основы программирования на Java. Исключения Основы программирования на Java Исключения Программа Классы и объекты в Java: основные сведения Управление памятью для ссылочных типов Реализация наследования в Java Пакеты как механизм реализации пространств

Подробнее

TEST-DRIVEN DEVELOPMENT РАЗРАБОКА ЧЕРЕЗ ТЕСТИРОВАНИЕ: ПРЕИМУЩЕСТВА И НЕДОСТАТКИ.

TEST-DRIVEN DEVELOPMENT РАЗРАБОКА ЧЕРЕЗ ТЕСТИРОВАНИЕ: ПРЕИМУЩЕСТВА И НЕДОСТАТКИ. УДК 004.424 Колмакова Е.Н., студент 3 курс, факультет «Информационные системы и технологии» Поволжский Государственный Университет Телекоммуникаций и Информатики Россия, г. Самара TEST-DRIVEN DEVELOPMENT

Подробнее

Замыкания и анонимные функции в языках C#, Java. function initadder(x) { function adder(y) { return x + y } // захвачена переменная x return adder

Замыкания и анонимные функции в языках C#, Java. function initadder(x) { function adder(y) { return x + y } // захвачена переменная x return adder Основные характеристики функциональных языков программирования. Использование понятий функционального программирования (замыкания, анонимные функции) в современных объектно-ориентированных языках Функциональные

Подробнее

Классы и объекты. ООП (объектно ориентированное программирование) - парадигма программирования в которой

Классы и объекты. ООП (объектно ориентированное программирование) - парадигма программирования в которой Классы и объекты ООП (объектно ориентированное программирование) - парадигма программирования в которой основными концепциями являются понятия объектов и классов. Класс (lat. группа ) - группа явлений

Подробнее

Постулат ISSN УДК 004. О новых языках программирования

Постулат ISSN УДК 004. О новых языках программирования УДК 004 О новых языках программирования Ленкин Алексей Викторович Приамурский государственный университет имени Шолом-Алейхема Студент Аннотация Статья посвящена исследованию в области новых языков программирования

Подробнее

Паттерны проектирования

Паттерны проектирования Паттерны проектирования Введение Что такое «хороший дизайн» Точного универсального ответа на этот вопрос нет Есть стандартные решения для определенных задач паттерны Предложены хорошими специалистами Проверены

Подробнее

Mikhail Glukhikh mailto: JetBrains, Senior Software Developer

Mikhail Glukhikh mailto: JetBrains, Senior Software Developer Mikhail Glukhikh mailto: Mikhail.Glukhikh@jetbrains.com JetBrains, Senior Software Developer Разрабатывается JetBrains с 2011 Open-Source с 2012 Версия 1.0 выпущена в феврале 2016 Компилируется в JVM и

Подробнее

Классы, объекты и пакеты в Java

Классы, объекты и пакеты в Java Классы, объекты и пакеты в Java Алексей Владыкин 3 октября 2012 Алексей Владыкин Классы, объекты и пакеты в Java 3 октября 2012 1 / 42 1 Основы ООП 2 Объявление класса 3 Использование класса 4 Наследование

Подробнее

ПРЕИМУЩЕСТВА ВИЗУАЛЬНЫХ ЯЗЫКОВ ПРОГРАМИРОВАНИЯ НА ПРИМЕРЕ BLUEPRINT В СРЕДЕ ИГРОВОГО ДВИЖКА UNREAL ENGINE 4.

ПРЕИМУЩЕСТВА ВИЗУАЛЬНЫХ ЯЗЫКОВ ПРОГРАМИРОВАНИЯ НА ПРИМЕРЕ BLUEPRINT В СРЕДЕ ИГРОВОГО ДВИЖКА UNREAL ENGINE 4. УДК 004.438 Неизвестный Михаил Александрович студент 2 курс, факультет «Информационных систем и технологий» Поволжский университет телекоммуникаций и информатики, Россия, г.самара ПРЕИМУЩЕСТВА ВИЗУАЛЬНЫХ

Подробнее

Качество кода. Владимир Ярославский Инженер-программист. 11 декабря 2008 Sun Microsystems, Inc.

Качество кода. Владимир Ярославский Инженер-программист. 11 декабря 2008 Sun Microsystems, Inc. Качество кода Владимир Ярославский Инженер-программист 11 декабря 2008 Sun Microsystems, Inc. 1 Что будем улучшать Производительность Читаемость Ясность Дизайн 2 Доступ к другому коду Классы: package Атрибуты:

Подробнее

Абстрактные классы и методы

Абстрактные классы и методы Абстрактные классы и методы Абстрактные методы Абстрактные классы Расширение абстрактных классов Интерфейсы «Множественное наследование» в Java Вложенные интерфейсы Абстрактные классы и методы В ряде ситуаций

Подробнее

Содержание. Часть I. Основы Java 21

Содержание. Часть I. Основы Java 21 Содержание Об авторе 13 Введение 15 Как работать с этой книгой 15 Соглашения, используемые в книге 15 Что можно не читать 16 Несколько предположений 17 Структура книги 18 Часть I. Основы Java 18 Часть

Подробнее

Встроенная документация Java

Встроенная документация Java Встроенная документация Java Андрей Дмитриев andrei-dmitriev@yandex.ru http://in4mix2006.narod.ru/ 2008 Copyright (C) 2000-2008 Sun Microsystems, Inc. All rights reserved. Документация Необходимость поддержки

Подробнее

Обобщения. Основные понятия

Обобщения. Основные понятия Обобщения. Основные понятия Термин «обобщение», по существу, означает параметризированный тип. Особая роль параметризированных типов состоит в том, что они позволяют создавать классы, структуры, интерфейсы,

Подробнее

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

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

Подробнее

Введение в С++11 (стандарт ISO/IEC 14882:2011 Вне рассмотрения в рамках курса остаются нововведения для работы с шаблонами:

Введение в С++11 (стандарт ISO/IEC 14882:2011 Вне рассмотрения в рамках курса остаются нововведения для работы с шаблонами: (стандарт ISO/IEC 14882:2011 ) Вне рассмотрения в рамках курса остаются нововведения для работы с шаблонами: ведение понятий лямбда-функций и выражений, внешние шаблоны, альтернативный синтаксис шаблонных

Подробнее

4.13 Список аргументов переменной длины

4.13 Список аргументов переменной длины 4.13 Список аргументов переменной длины В JDK 5 была добавлена новая функциональная возможность, которая упрощает создание методов, принимающих переменное количество аргументов. Это средство получило название

Подробнее

4 Классы. 4.1 Основы классов

4 Классы. 4.1 Основы классов 4 Классы Класс центральный компонент Java. Поскольку класс определяет форму и сущность объекта, он является той логической конструкцией, на основе которой построен весь язык. Как таковой, класс образует

Подробнее

ЯЗЫК ПРОГРАММИИРОВАНИЯ С#. ДОСТОИНСТВА И НЕДОСТАТКИ, ОСНОВНЫЕ ВОЗМОЖНОСТИ. СОПОСТАВЛЕНИЕ С ДРУГИМИ ЯЗЫКАМИ ПРОГРАММИРОВАНИЯ.

ЯЗЫК ПРОГРАММИИРОВАНИЯ С#. ДОСТОИНСТВА И НЕДОСТАТКИ, ОСНОВНЫЕ ВОЗМОЖНОСТИ. СОПОСТАВЛЕНИЕ С ДРУГИМИ ЯЗЫКАМИ ПРОГРАММИРОВАНИЯ. УДК 004.43 Перцев С.А. студент 2 курс, факультет «Информационных систем и технологий» Россия, г. Самара Островский В.В. студент 3 курс, факультет «Информационных систем и технологий» Россия, г. Самара

Подробнее

Теоретические вопросы

Теоретические вопросы МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ ДЕРЖАВНИЙ ВИЩИЙ НАВЧАЛЬНИЙ ЗАКЛАД «ЗАПОРІЗЬКИЙ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ» Спеціальність 6.040301 Прикладна математика Дисципліна «Програмування» Модульна контрольна робота

Подробнее

Методические указания для выполнения лабораторных работ по дисциплине «Объектно-ориентированный анализ и программирование»

Методические указания для выполнения лабораторных работ по дисциплине «Объектно-ориентированный анализ и программирование» МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Владимирский государственный университет имени Александра Григорьевича

Подробнее

Функции ref out определении вызове Main()

Функции ref out определении вызове Main() Функции Функции представляют собой блоки кода, позволяющие выполнять одни и те же операции над различными значениями данных. Функции определяются один раз и могут вызываться из любой точки приложения.

Подробнее

Современные технологии программирования (часть 2)

Современные технологии программирования (часть 2) Гуляев Г.М. Современные технологии программирования (часть 2) Лекция 4. ООП на языке Scala Курс лекций для студентов АлтГТУ LOGO Классы В отличие от java декларация public не используется. Все классы в

Подробнее

Содержание. Часть I. Основы Java 21 Глава 1. Знакомство с Java 23. Введение 14. Глава 2. Разработка программного обеспечения 35

Содержание. Часть I. Основы Java 21 Глава 1. Знакомство с Java 23. Введение 14. Глава 2. Разработка программного обеспечения 35 Содержание Об авторе 13 Введение 14 Как работать с этой книгой 14 Соглашения, принятые в книге 14 Что можно не читать 15 Исходные предположения 16 Структура книги 17 Часть I. Основы Java 17 Часть II. Создание

Подробнее

Программирование на языке Java

Программирование на языке Java Теория и технология программирования Программирование на языке Java Лекция 3. Проектирование классов в Java Глухих Михаил Игоревич, к.т.н., доц. mailto: glukhikh@mail.ru Общий базовый класс В языке Java

Подробнее

Анонимные записи в Haskell

Анонимные записи в Haskell Анонимные записи в Haskell (Anonymous Records in Haskell) Никита Волков Введение Введение Выучи уже Haskell во имя добра! http://learnyouahaskell.com/ Терминология Терминология: Типы данных и конструкторы

Подробнее

Kotlin это. Остров в Финском заливе: 3 / 183

Kotlin это. Остров в Финском заливе: 3 / 183 Kotlin 1 / 183 Kotlin это 2 / 183 Kotlin это Остров в Финском заливе: 3 / 183 Kotlin это 4 / 183 Kotlin это Деревня в Польше: 5 / 183 Kotlin это Кетчуп: 6 / 183 Kotlin это Класс эскадренных миноносцев:

Подробнее

"Теория и практика современной науки" 12(18) 2016

Теория и практика современной науки 12(18) 2016 УДК 004.9 Чаденкова А.А., Калиева Д.А., студентки 1 курс, факультет «Информационные системы и технологии» ФГБОУ ВО «Поволжский государственный университет телекоммуникаций и информатики», г. Самара, Российская

Подробнее

Об авторе 17 О техническом редакторе 17

Об авторе 17 О техническом редакторе 17 Об авторе 17 О техническом редакторе 17 Введение 18 Эволюция Java 18 Java SE 8 21 Структура книги 21 Основные навыки и понятия 21 Вопросы и упражнения для самопроверки 21 Вопросы к эксперту 22 Упражнения

Подробнее

Основы платформы Microsoft.NET

Основы платформы Microsoft.NET Основы платформы Microsoft.NET Тема: Обработка ошибок Понятие исключения...1 Обработка исключений...2 Блок try...2 Блок catch...3 Блок finally...3 Пример обработки исключений...3 Обработка нескольких исключений...5

Подробнее

Глава 15 Делегаты БИЛЛ ВАГНЕР ЭРИК ЛИППЕРТ

Глава 15 Делегаты БИЛЛ ВАГНЕР ЭРИК ЛИППЕРТ Глава 15 Делегаты Делегаты предназначены для случаев, в которых C++, Pascal и Modula используют указатели на функции. В отличие от последних в C++ делегаты являются полностью объектно-ориентированными.

Подробнее

Компьютерный практикум по телекоммуникациям

Компьютерный практикум по телекоммуникациям Компьютерный практикум по телекоммуникациям Для студентов НИ-2 Черноиванов Андрей Игоревич a.tchernoivanov@gmail.com This paper is disctributed under CC BY-NC License Все задания как на компьютере из дисплейного

Подробнее

Code Conventions. (for the Java Programming Language)

Code Conventions. (for the Java Programming Language) Code Conventions (for the Java Programming Language) Зачем? 80% времени жизни ПО находится в поддержке Почти никогда ПО не поддерживается автором Соглашение об именовании улучшает читаемость кода, ускоряя

Подробнее

Шаблоны ( template) средство языка C++, предназначенное для кодирования обобщённых алгоритмов, без привязки к некоторым параметрам (например, типам

Шаблоны ( template) средство языка C++, предназначенное для кодирования обобщённых алгоритмов, без привязки к некоторым параметрам (например, типам Шаблоны 2013 Шаблоны ( template) средство языка C++, предназначенное для кодирования обобщённых алгоритмов, без привязки к некоторым параметрам (например, типам данных, размерам буферов, значениям по умолчанию)

Подробнее

Ключевые слова языка С#

Ключевые слова языка С# 1 abstract, см. также 11, 55 2 as, см. также 37 Ключевые слова языка С# Модификатор abstract используется при объявлении класса, метода или свойства. Использование модификатора abstract в объявлении класса

Подробнее

Вступительное слово и обзор Java технологии

Вступительное слово и обзор Java технологии Вступительное слово и обзор Java технологии Евгений Беркунский, НУК eugeny.berkunsky@gmail.com http://www.berkut.mk.ua Что такое Java? Язык программирования Платформа: Аппаратная Операционная: Windows,

Подробнее

Современные технологии программирования (часть 2)

Современные технологии программирования (часть 2) Гуляев Г.М. Современные технологии программирования (часть 2) Лекция 5. Case - классы и поиск по шаблону (pattern matching) Курс лекций для студентов АлтГТУ LOGO Равенство объектов Проверка на равенство

Подробнее

Научный руководитель: Герасимова В.Г., старший преподаватель кафедры «Информационные системы и технологии»

Научный руководитель: Герасимова В.Г., старший преподаватель кафедры «Информационные системы и технологии» УДК 004.432 Прокофьева В.С., студент 1 курс, факультет «Информационные системы и технологии» ФГБОУ ВО «Поволжский государственный университет телекоммуникаций и информатики», г. Самара, Российская Федерация

Подробнее

Программирование на JAVA

Программирование на JAVA Программирование на JAVA Владимир Юрьевич Романов, Московский Государственный Университет им. М.В.Ломоносова Факультет Вычислительной Математики и Кибернетики vromanov@cs.msu.su, vladimir.romanov@gmail.com

Подробнее

Объекты, классы и пакеты в Java

Объекты, классы и пакеты в Java Объекты, классы и пакеты в Java Алексей Владыкин 22 сентября 2014 Алексей Владыкин Объекты, классы и пакеты в Java 22 сентября 2014 1 / 37 1 Основы ООП 2 Пакеты 3 Классы 4 Наследование Алексей Владыкин

Подробнее

Лекция 5. Система поддержки времени исполнения (Run-time system, RTS)

Лекция 5. Система поддержки времени исполнения (Run-time system, RTS) Лекция 5 Система поддержки времени исполнения (Run-time system, RTS) Содержание Что такое RTS Определение и примеры RTфункций Общие принципы проектирования и оптимизации RTS Механизмы управления памятью

Подробнее

ВЫБОР ИНСТРУМЕНТА КОДИРОВАНИЯ ПРИ РЕШЕНИИ ЗАДАЧ МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ

ВЫБОР ИНСТРУМЕНТА КОДИРОВАНИЯ ПРИ РЕШЕНИИ ЗАДАЧ МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ ВЫБОР ИНСТРУМЕНТА КОДИРОВАНИЯ ПРИ РЕШЕНИИ ЗАДАЧ МАТЕМАТИЧЕСКОГО МОДЕЛИРОВАНИЯ Л.В. Яблокова Самарский государственный аэрокосмический университет имени академика С.П. Королёва (национальный исследовательский

Подробнее

Динамическое выделение памяти и исключения в С++

Динамическое выделение памяти и исключения в С++ Лабораторная работа 4 Динамическое выделение памяти и исключения в С++ Цель работы: 1) изучить менеджер памяти С++ 2) изучить различные способы обработки исключений; 3) получить практические навыки программирования

Подробнее

Разработка API в Java-проекте: как оказывать влияние на людей и не приобрести врагов

Разработка API в Java-проекте: как оказывать влияние на людей и не приобрести врагов Разработка API в Java-проекте: как оказывать влияние на людей и не приобрести врагов Чашников Николай программист JetBrains Nikolay.Chashnikov@jetbrains.com Как возникает API class B class A Как возникает

Подробнее

Содержание ЧАСТЬ I. НАЧНЕМ, ПОЖАЛУЙ 29 ЧАСТЬ II. ОСНОВЫ ПРОГРАММИРОВАНИЯ В C# 43. Введение 21

Содержание ЧАСТЬ I. НАЧНЕМ, ПОЖАЛУЙ 29 ЧАСТЬ II. ОСНОВЫ ПРОГРАММИРОВАНИЯ В C# 43. Введение 21 Содержание Введение 21 ЧАСТЬ I. НАЧНЕМ, ПОЖАЛУЙ 29 Глава 1. Создание вашего первого консольного приложения на C# 31 Введение в машинные языки, C# и платформу.net 31 Что такое программа 31 Что такое C#

Подробнее

ЛАБОРАТОРНАЯ РАБОТА 29 Создание приложения с разветвленным меню. Динамические массивы

ЛАБОРАТОРНАЯ РАБОТА 29 Создание приложения с разветвленным меню. Динамические массивы ЛАБОРАТОРНАЯ РАБОТА 29 Создание приложения с разветвленным меню. Динамические массивы Цели: научиться применять указатели; научиться работать с динамическими массивами; закрепить умение по обработке ошибок;

Подробнее

Семинар 5. Статические элементы данных и функции. Наследование. Виртуальные методы.

Семинар 5. Статические элементы данных и функции. Наследование. Виртуальные методы. Семинар 5. Статические элементы данных и функции. Наследование. Виртуальные методы. 1. Статическая (static) переменная класса Добавим в определение класса статическую переменную: private: // double x;

Подробнее

ТОЧКИ СЛЕДОВАНИЯ В C. Волков Виталий Александрович студент. Митьков Станислав Александрович студент

ТОЧКИ СЛЕДОВАНИЯ В C. Волков Виталий Александрович студент. Митьков Станислав Александрович студент ЭЛЕКТРОННЫЙ НАУЧНЫЙ ЖУРНАЛ «APRIORI. CЕРИЯ: ЕСТЕСТВЕННЫЕ И ТЕХНИЧЕСКИЕ НАУКИ» 6 2015 УДК 004 ТОЧКИ СЛЕДОВАНИЯ В C Волков Виталий Александрович студент Митьков Станислав Александрович студент Мордовский

Подробнее

Шаблоны (параметризованные типы)

Шаблоны (параметризованные типы) Лабораторная работа 2 Шаблоны (параметризованные типы) Цель работы: изучить представление и правила работы с шаблонами в С++. Теоретические сведения Использование шаблонов призвано, облегчить процесс написания

Подробнее

Лабораторная работа 0 Знакомство со средой

Лабораторная работа 0 Знакомство со средой Лабораторная работа 0 Знакомство со средой 1. Установка и запуск. Если вы выполняете лабораторную работу дома, и на вашем компьютере не установлена среда разработки (IDE) и комплект разработчика Java (JDK),

Подробнее

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

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

Подробнее

Современные технологии программирования

Современные технологии программирования Гуляев Г.М. Современные технологии программирования Лекция 1. Проблемы разработки ПО Центр компетенции СПО Алтайского края LOGO Языки программирования Компьютер - это реальное или виртуальное устройство

Подробнее

Георгий Баркан Эксперт по технологиям разработки ПО Microsoft

Георгий Баркан Эксперт по технологиям разработки ПО Microsoft Георгий Баркан Эксперт по технологиям разработки ПО Microsoft Россия gbarkan@microsoft.com @gbarkan Преимущества использования LINQ Синтаксис LINQ LINQ to SharePoint string cs ="Data Source=localhost;..";

Подробнее

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

СРАВНЕНИЕ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ New university Technical sciences УДК 004.9 В.Н. Таран *, Р.С. Горщар **, В.Е. Осыка *** СРАВНЕНИЕ ЯЗЫКОВ ПРОГРАММИРОВАНИЯ В статье приведены виды классификации языков программирования. Проведен анализ

Подробнее

Лекция 12. Шаблоны, часть вторая

Лекция 12. Шаблоны, часть вторая http://compscicenter.ru 1/10 Александр Смаль CS центр 18 ноября 2015 Санкт-Петербург http://compscicenter.ru 2/10 Полная специализация шаблонов: классы struct Array {... T * data_ ; ; template struct

Подробнее

Типы значений в языке программирования Kotlin

Типы значений в языке программирования Kotlin Санкт-Петербургский государственный университет Математическое обеспечение и администрирование информационных систем Кафедра информационно-аналитических систем Зареченский Михаил Алексеевич Типы значений

Подробнее

Обработка исключительных ситуаций

Обработка исключительных ситуаций Обработка исключительных ситуаций Андрей Дмитриев andrei-dmitriev@yandex.ru http://in4mix2006.narod.ru/ 2008 Copyright (C) 2000-2008 Sun Microsystems, Inc. All rights reserved. Что должно произойти при

Подробнее

Кафедра Математического и компьютерного моделирования РАЗРАБОТКА ИНФОРМАЦИОННОЙ СИСТЕМЫ ДЛЯ СТРАХОВОЙ КОМПАНИИ. Автореферат бакалаврской работы

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

Подробнее

Приблизительные вопросы к зачёту (1 семестр) по дисциплине «СЕТЕВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ»

Приблизительные вопросы к зачёту (1 семестр) по дисциплине «СЕТЕВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» Приблизительные вопросы к зачёту (1 семестр) по дисциплине «СЕТЕВЫЕ ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ» Тема 1. Введение в технологию Java Java как платформа, история создания. Среда разработки. Этапы создания

Подробнее

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

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

Подробнее

Управляющие конструкции и исключения в Java

Управляющие конструкции и исключения в Java Управляющие конструкции и исключения в Java Алексей Владыкин 7 октября 2013 Алексей Владыкин Управляющие конструкции 7 октября 2013 1 / 29 1 Условные операторы 2 Циклы 3 Исключения Алексей Владыкин Управляющие

Подробнее

ЯЗЫК VBA ОБЗОР ТИПОВ ДАННЫХ VBA

ЯЗЫК VBA ОБЗОР ТИПОВ ДАННЫХ VBA ЯЗЫК VBA Язык VBA является объектно-ориентированным. Это значит, что многие его команды имеют особенный формат. Типичная команда VBA имеет вид: ..< >.

Подробнее

КОЛЛЕКЦИИ В JAVA 8. Земляков Геннадий Евгеньевич. студент Самарский государственный аэрокосмический университет, Самара.

КОЛЛЕКЦИИ В JAVA 8. Земляков Геннадий Евгеньевич. студент Самарский государственный аэрокосмический университет, Самара. ЭЛЕКТРОННЫЙ НАУЧНЫЙ ЖУРНАЛ «APRIORI. CЕРИЯ: ЕСТЕСТВЕННЫЕ И ТЕХНИЧЕСКИЕ НАУКИ» 2 2014 УДК 004.9 КОЛЛЕКЦИИ В JAVA 8 Земляков Геннадий Евгеньевич студент Самарский государственный аэрокосмический университет,

Подробнее

Объектно-ориентированное программирование в PHP для начинающих

Объектно-ориентированное программирование в PHP для начинающих Объектно-ориентированное программирование в PHP для начинающих Доброго времени суток, уважаемые читатели нашего блога! Добро пожаловать на первый урок из серии уроков по объектноориентированному программированию

Подробнее

Обработка ошибок. Обработка ошибок. Александр Смаль. CS центр 2 марта 2016 Санкт-Петербург. 1/22

Обработка ошибок. Обработка ошибок. Александр Смаль. CS центр 2 марта 2016 Санкт-Петербург.  1/22 http://compscicenter.ru 1/22 Александр Смаль CS центр 2 марта 2016 Санкт-Петербург http://compscicenter.ru 2/22 Способы обработки ошибок Отсутствие обработки ошибок. size_t write ( string file, DB const

Подробнее

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

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

Подробнее

Программирование на JAVA

Программирование на JAVA Программирование на JAVA Владимир Юрьевич Романов, Московский Государственный Университет им. М.В.Ломоносова Факультет Вычислительной Математики и Кибернетики vromanov@cs.msu.su, vladimir.romanov@gmail.com

Подробнее

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

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

Подробнее

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

Функции. Функция поименнованная часть программы, которая может вызываться из других частей программы неограниченное число раз. Функции Функция поименнованная часть программы, которая может вызываться из других частей программы неограниченное число раз. Это отдельная подпрограмма, управляемая входами и возвращающая что-то на выходе.

Подробнее

Практическая работа 3

Практическая работа 3 Практическая работа 3 Задание на практическую работу В процессе написания тестовых заданий ознакомьтесь с: - принципами создания динамических структур в Java (Linked List, FIFO), - механизмами наследования

Подробнее

Эта глава предлагает молниеносное турне на тему возможностей языка C#. Да,

Эта глава предлагает молниеносное турне на тему возможностей языка C#. Да, Глава 3 Краткий обзор языка C# Эта глава предлагает молниеносное турне на тему возможностей языка C#. Да, мы уже слышим ваши возражения: Но ведь просто невозможно сжать всю информацию о C# в одну главу!

Подробнее

Язык программирования Си++ Семинар 9. Зачет: методика его проведения, теоретический минимум и типовые задания.

Язык программирования Си++ Семинар 9. Зачет: методика его проведения, теоретический минимум и типовые задания. Язык программирования Си++ Иванов А.П., Князева О.С. Семинар 9. Зачет: методика его проведения, теоретический минимум и типовые задания. Зачет проводится в практикуме и состоит из двух частей: теоретической

Подробнее

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ

ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ ОБЪЕКТНО-ОРИЕНТИРОВАННОЕ ПРОГРАММИРОВАНИЕ ШАБЛОНЫ ФУНКЦИЙ 2 3 ШАБЛОНЫ ФУНКЦИЙ При создании функций иногда возникают ситуации, когда две функции выполняют одинаковую обработку, но работают с разными типами

Подробнее

Java-классы под капотом

Java-классы под капотом Java-классы под капотом Алексей Владыкин 20 ноября 2015 Алексей Владыкин Java-классы под капотом 20 ноября 2015 1 / 28 1 Reflection API 2 Расположение объекта в памяти 3 Байткод Java Алексей Владыкин Java-классы

Подробнее

Java-классы: взгляд изнутри

Java-классы: взгляд изнутри Java-классы: взгляд изнутри Алексей Владыкин 27 октября 2014 Алексей Владыкин Java-классы: взгляд изнутри 27 октября 2014 1 / 29 1 Reflection API 2 Расположение объекта в памяти 3 Байткод Java Алексей

Подробнее

ИЗУЧЕНИЕ ЯЗЫКА ПРОГРАММИРОВАНИЯ JAVA: РАЗРАБОТКА КОНСОЛЬНОГО ПРИЛОЖЕНИЯ ДЛЯ ОРГАНИЗАЦИИ РАБОТЫ МАГАЗИНА ИГРУШЕК

ИЗУЧЕНИЕ ЯЗЫКА ПРОГРАММИРОВАНИЯ JAVA: РАЗРАБОТКА КОНСОЛЬНОГО ПРИЛОЖЕНИЯ ДЛЯ ОРГАНИЗАЦИИ РАБОТЫ МАГАЗИНА ИГРУШЕК УДК 004.42 Чаденкова А.А., Якушев Д.С. студенты 1 курс, факультет «Информационные системы и технологии» ФГБОУ ВО «Поволжский государственный университет телекоммуникаций и информатики», г. Самара, Российская

Подробнее

Лабораторная работа 2. Моделирование клиент-серверной системы удаленных вычислений (методом Map-Reduce)

Лабораторная работа 2. Моделирование клиент-серверной системы удаленных вычислений (методом Map-Reduce) Лабораторная работа 2. Моделирование клиент-серверной системы удаленных вычислений (методом Map-Reduce)... 1 Map-Reduce... 2 Ввод и вывод... 2 Установление сетевого подключения.... 2 Classloader и Reflection...

Подробнее

1.1. Ввод данных Выделение текста с помощью рамочки Резюме 32 Упражнения 34

1.1. Ввод данных Выделение текста с помощью рамочки Резюме 32 Упражнения 34 СОДЕРЖАНИЕ ВВЕДЕНИЕ 15 Новый подход к программированию на C++ 15 Наша книга полезна как для новичков, так и для опытных программистов 15 Абстракция 16 Охват материала 16 Несколько слов для опытных C- и

Подробнее

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

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

Подробнее

Введение в MPS. Михаил Власьев, JetBrains, проект MPS

Введение в MPS. Михаил Власьев, JetBrains, проект MPS Введение в MPS Михаил Власьев, JetBrains, проект MPS Michael.Vlassiev@jetbrains.com Универсальные и специализированные языки программирования Универсальные языки недостаточно выразительны Универсальные

Подробнее

4. Понятие класса. Программа 7. Класс Box

4. Понятие класса. Программа 7. Класс Box 4. Понятие класса Класс определяет новый тип данных, используя который можно определять переменные этого типа, которые называются объектами или экземплярами класса. Объявление класса имеет вид: class classname

Подробнее

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

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

Подробнее

Увеличение модульности программного обеспечения на языке Java.

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

Подробнее

Микротест - источник ваших знаний

Микротест - источник ваших знаний Курс Oracle: Основы SQL и PL/SQL (Код: MT-SQL/PLSQL) Код: MT-SQL/PLSQL Курс длится 40 академических часов Январь 17 Февраль 17 Март 17 Апрель 17 Май 17 Июнь 17 Июль 17 Август 17 Сентябрь 17 Октябрь 17

Подробнее

Лекция 3. Операции и функции свободной памяти

Лекция 3. Операции и функции свободной памяти Название Лекция 3. и функции свободной памяти Проектирование ПО на C ++ 25 сентября 2010 г. Лекция 3 1 / 33 Объявления функций, использующих исключения Реализация функций выделения памяти Реализация обработчика

Подробнее

Обработка исключительных ситуаций

Обработка исключительных ситуаций Обработка исключительных ситуаций Евгений Беркунский, НУК eugeny.berkunsky@gmail.com http://berkut.mk.ua По материалам Андрея Дмитриева Что должно произойти при исполнении этой программы? class SimpleMistake

Подробнее

Тема 1.1 Функции в С. Понятие функции

Тема 1.1 Функции в С. Понятие функции Тема 1.1 Функции в С Понятие функции Опыт показывает, что для написания больших программ лучше пользоваться функциями. В таком случае программа будет состоять из отдельных фрагментов кода. Такой отдельный

Подробнее

Языки и методы программирования. Электронные тесты промежуточного контроля знаний

Языки и методы программирования. Электронные тесты промежуточного контроля знаний МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ УНИВЕРСИТЕТ имени академика

Подробнее

Основные принципы обработки исключений

Основные принципы обработки исключений Исключения Исключение это аварийное состояние, которое возникает в кодовой последовательности во время выполнения. Другими словами, исключение это ошибка времени выполнения. В машинных языках, не поддерживающих

Подробнее

С++. Виртуальные функции.

С++. Виртуальные функции. Пособие предназначено для студентов, изучающих язык С++. Является дополнением к существующему методическому пособию[1]. Может быть также полезно преподавателям, ведущим практические занятия по языку С++.

Подробнее

А. В. Гаврилов. Объектно-ориентированное программирование. Вопросы к экзамену

А. В. Гаврилов. Объектно-ориентированное программирование. Вопросы к экзамену МИНОБРНАУКИ РОССИИ ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ «САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АЭРОКОСМИЧЕСКИЙ УНИВЕРСИТЕТ ИМЕНИ АКАДЕМИКА С.П.КОРОЛЕВА

Подробнее

Структурные типы данных

Структурные типы данных Структурные типы данных Классы и структуры являются двумя основными конструкциями системы общих типов CTS (Common Type System) в платформе.net Framework. Каждая по сути является структурой данных, объединяющей

Подробнее

Концепция перемещений (move) (C++11)

Концепция перемещений (move) (C++11) Концепция перемещений (move) (C++11) В стандарт C++11 введены перемещающие конструктор и оператор присваивания, для более оптимального управления объектами Пример I: функция обмена для двух стеков void

Подробнее

I. Аннотация. 6. Форма промежуточного контроля: экзамен. 7. Язык преподавания: русский

I. Аннотация. 6. Форма промежуточного контроля: экзамен. 7. Язык преподавания: русский I. Аннотация 1. Цели и задачи дисциплины: дать общее представление обучающимся об объектно-ориентированном программировании, о методологии построения модели объектов в виде классов. 2. Место дисциплины

Подробнее

Исключения являются удобным методом обработки ошибок, но в данном коде оно используется немного некорректно. Приведу несколько примеров:

Исключения являются удобным методом обработки ошибок, но в данном коде оно используется немного некорректно. Приведу несколько примеров: Цели: Использование исключений для указания ошибки в действиях Устранение обёрток в бинах Устранение пустых коллекций Использование исключений для указания ошибки в действиях Исходный код Исключения являются

Подробнее

Рассмотрение и решение проблем проверки корректности пользовательских данных на стороне java-сервера

Рассмотрение и решение проблем проверки корректности пользовательских данных на стороне java-сервера # 05, май 2016 УДК 004.432 Рассмотрение и решение проблем проверки корректности пользовательских данных на стороне java-сервера Семенченко И. И., студент Россия, 105005, г. Москва, МГТУ им. Н.Э. Баумана,

Подробнее

1. Аннотация. 2. Цели освоения дисциплины

1. Аннотация. 2. Цели освоения дисциплины 1. Аннотация Курс направлен на формирование и развитие у студентов практических навыков программирования на Java и приобретение ими необходимого опыта для реализации проектов, связанных с вычислениями

Подробнее

Лабораторная работа 1

Лабораторная работа 1 Лабораторная работа 1 Объектно-ориентированное программирование ХАРЬКОВСКИЙ НАЦИОНАЛЬНЫЙ АВТОМОБИЛЬНО-ДОРОЖНЫЙ УНИВЕРСИТЕТ ФАКУ ЛЬТЕТ КОМПЬЮТЕРНЫХ ТЕХНОЛОГИЙ И МЕХАТРОНИКИ Кафедра информационных технологий

Подробнее

Введение 17 Глава 1. Основы Java

Введение 17 Глава 1. Основы Java Введение 17 Структура книги 20 Основные навыки и понятия 20 Упражнения для самопроверки 20 Обращение к знатоку 20 Примеры для опробования 20 Навыки программирования 20 Необходимое программное обеспечение

Подробнее

1 Исключения в C++ enum Error { OK, LN, SQRT }; Error errcode;

1 Исключения в C++ enum Error { OK, LN, SQRT }; Error errcode; 1 Исключения в C++ Механизм порождения и обработки исключений в C++ предназначен в основном для передачи информации о возникающих ошибках из вызываемых функций в вызывающие. Этот процесс весьма важен,

Подробнее