Санкт-Петербургский государственный университет
Опубликован: 25.07.2014 | Доступ: свободный | Студентов: 1039 / 80 | Длительность: 17:26:00
Лекция 6:

Обзор языков программирования, предоставляемых Visual Studio 2013

7.5. Язык JavaScript, его новые возможности в VS 2013 и новый язык TypeScript

JavaScript - динамический язык, широко используемый для Web-программирования. Он удобен для встраивания в Web-страницы для их анимации. Фирма Microsoft активно использует JavaScript для разработки Web-приложений, несмотря на оболие собственных инструментов для этой цели.

Пример кода на JavaScript, встроенного в Web-страницу:

<!DOCTYPE html>
<html>
<head>
<script>
function myFunction() {
    document.getElementById("demo").innerHTML =
  "Paragraph changed.";
}
</script>
</head>

<body>

<h1>My Web Page</h1>

<p id="demo">A Paragraph.</p>

<button type="button" onclick="myFunction()">Try it</button>

</body>
</html>
    

В данном примере код на HTML определяет кнопку с надписью Try It, а код на JavaScript реализует обработчик события нажатия кнопки, в результате которого абзац HTML-кода изменяется: надпись A paragraph преобразуется в Paragraph changed.

Пример, несмотря на свою простоту, достаточно эффектен, так как HTML-код в браузере изменяется на глазах в результате нажатия кнопки.

В версии Visual Studio 2013 в языке JavaScript реализованы следующие возможности:

  • Операторы let и const для определения переменных и констант в некотором блоке;
  • Операторы создания объектов, коллекций объектов и объектов вида "ключ - значение", в том числе - объектов для представления даты.

Кроме того, появился новый типизированный язык TypeScript - расширение языка JavaScript, рассмотрение которого выходит за рамки данного курса.

7.6. Язык F# и его новые возможности в VS 2013

F# - функциональный язык программирования, сочетающий в себе несколько парадигм - функциональную и объектно-ориентированную. Он появился как разработка Microsoft Research (автор - Don Syme) и в настоящее время приобрел заслуженную популярность, особенно среди молодых программистов. Несмотря на свою экзотичность, он предоставляет доступ ко всем возможностям .NET Framework.

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

Можно сказать, что начало функциональному подходу было положено в 1960 г. профессором Дж. Мак-Карти - автором языка обработки список ЛИСП. "Чистый" ЛИСП - его первоначальная версия - является первым из широко известных функциональных языков. Однако достаточно быстро появились диалекты языка ЛИСП, включающие понятия присваивания, переменной, метки и перехода на метку, характерные для процедурных языков. Видимо, многие программисты того времени сочли чисто функциональный стиль программирования не вполне удобным или не вполне привычным.

Следующим важным этапом развития функционального программирования стала Тьюринговская лекция профессора Джона Бэкуса (в прошлом - автора языка Фортран) "Can programming be liberated from the von Neumann style? A functional style and its algebra of programs" (1977), в которой автор призвал более широко использовать функциональный подход к программированию и предложил свой собственный функциональный язык FP.

Идеи Дж. Мак-Карти и Дж. Бэкуса были развиты в популярных ныне функциональных языках - ML, Caml, OCaml и, наконец, в языке F#, разработанном Доном Саймом из фирмы Microsoft Research и включенном корпорацией Microsoft в базовый набор языков, реализованных для платформы Microsoft.NET в составе интегрированной среды Visual Studio.

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

Рассмотрим несколько простых примеров на языке F#.

let function1 (x: 'a) (y: 'a) =
    printfn "%A %A" x y
    

В данном примере определена явно обобщенная (generic) функция с одим обобщенным параметром-типом 'a. В языке F# обобщенный явный параметр-тип обозначается идентификатором со впереди стоящим апострофом.

let printSequence 
     (sequence1: Collections.seq<_>)    
=
   seq.iter 
    (fun elem -> 
     printf "%s " (elem.ToString())) sequence1
    

В примере определена функция печати последовательности. В качестве параметра-типа задан "заполнитель позиции" - символ подчеркивания. В примере используется встроенный итератор последовательности seq.iter, с помощью которого последовательность-параметр sequence1 просматривается, и каждый ее элемент elem печатается.

Данные примеры иллюстрируют особенности и лаконичный математический стиль языка F#.

В версии Visual Studio 2013 в языке F# реализованы следующие новые возможности:

  • Объединения с ограничениями (discriminated unions). Пример:
    type Shape =
        | Rectangle of width : float * length : float
        | Circle of radius : float
        | Prism of width : float * float * height : float
          
  • Улучшения работы среды для навигации по коду на F#
  • Многомерные массивы.

7.7. Резюме

В версии Visual Studio 2013 Microsoft предоставляет поистине разнообразные возможности в части реализации языков, так и в части поддержки разработки программ на различных языках интегрированной средой. Реализованы языки Visual C#, Visual C++, JavaScript, TypeScript, Visual Basic, Visual F#. Обеспечивается удобна поддержка среды для программирования на этих языках (навигация, автоматическое завершение кода и др.) Предоставляются онлайн-шаблоны разработки кода на этих языках.

Ключевые термины

JavaScript - динамический объектно-ориентированный язык, широко используемый в браузерах для анимации Web-страниц.
TypeScript - расширение языка JavaScript со строгой типизацией, реализованное фирмой Microsoft в обновлении 2 среды Visual Studio 2013.
Visual C# - объектно-ориентированный и компонентно-ориентированный язык программирования, уникальный по своим возможностям.
Visual Basic - простой объектно-ориентированный язык программирования, особенно удобный для разработки GUI.
Visual C++ - классический объектно-ориентированный язык программирования, имеющий в реализации в среде Visual Studio большое число расширений.
Visual F# - функциональный язык программирования, сочетающий функциональный стиль с объектно-ориентированным.
Итератор (iterator) - конструкция в языках программирования для перебора элементов коллекции.
Параметризованные типы (generics) - возможности обобщенного программирования в современных языках, обеспечивающие разработку в общем виде алгоритмов обработки коллекций.

Краткие итоги

В версии Visual Studio 2013 Microsoft предоставляет поистине разнообразные возможности в части реализации языков, так и в части поддержки разработки программ на различных языках интегрированной средой. Реализованы языки Visual C#, Visual C++, JavaScript, TypeScript, Visual Basic, Visual F#. Обеспечивается удобна поддержка среды для программирования на этих языках (навигация, автоматическое завершение кода и др.) Предоставляются онлайн-шаблоны разработки кода на этих языках.

Набор для практики

Вопросы

  1. Каковы основные особенности и возможности языка Visual C#?
  2. Каковы основные особенности и возможности языка Visual C++?
  3. Каковы основные особенности и возможности языка Visual F#?
  4. Каковы основные особенности и возможности языка Visual Basic?
  5. Каковы основные особенности и возможности языка JavaScript?
  6. Что такое язык TypeScript?
  7. Что такое параметризованные типы?
  8. Что такое функциональный стиль программирования и чем он удобен?
  9. В чем преимущества параметризованных типов в сравнению в Java?
  10. В чем преимущества параметризованных типов в Visual C# 2013, по сравнению с более ранними реализациями C#?
  11. Для каких задач удобно использовать язык JavaScript?
  12. Для каких задач и алгоритмов удобно использовать язык F#?

Упражнения

  1. Разработайте простой консольный проект на языке C# в Visual Studio 2013.
  2. Разработайте простой Windows-проект на языке Visual Basic в Visual Studio 2013.
  3. Разработайте простой проект на языке F# в Visual Studio 2013.
  4. Разработайте простой консольный проект на языке Visual C++ в Visual Studio 2013.
  5. Разработайте простую анимированную Web-страницу с изменяющимся содержимым, используя язык JavaScript

Темы для курсовых работ, рефератов, эссе

  1. Обзор языка C# и его развитие (реферат).
  2. Обзор языка C++ и его развитие (реферат).
  3. Обзор языка Visual Basic и его развитие (реферат).
  4. Обзор возможностей языка F# (реферат).
  5. Обзор возможностей языка JavaScript (реферат).
  6. Обзор возможностей нового языка TypeScript (реферат).

Дополнительные материалы, презентации

Презентация к данной лекции: VS_2013_Course_7.pptx.

Александр Калинин
Александр Калинин

Осенью прошёл курс и получил ключ. Но т.к. уже имел действующую подписку, то ключом не воспользовался. Сейчас захожу сюда, а про DreamSpark вообще ни слова. Где же мой ключ?