Обобщенная программа – Большая Энциклопедия Нефти и Газа, статья, страница 1
Обобщенная программа
Cтраница 1
Обобщенные программы являются результатом более широкого применения методов стандартных подпрограмм: они включают многократно используемые общие программы, например программы регистрации, программы ввода и вывода данных, матричных операций и регрессионного анализа. Для того, чтобы сделать обобщенную программу пригодной для выполнения работы в каждом конкретном случае, необходима только спецификация ( перечень значений) требуемых параметров. [1]
Описанную выше обобщенную программу решения стационарной задачи можно легко приспособить для расчета методом конечных разностей распределения температур в радиальном ребре прямоугольного профиля. Для того чтобы избежать неудобств, связанных с применением в расчетах числа л, нами было использовано предложение Дюсин-бера о проведении вычислений для сектора ребра в пределах угла в 1 / 2 радиана. [2]
Операционные системы – это обобщенные программы, применяемые для управления последовательностью выполнения программ, при котором обеспечивается возможность контроля и вмешательства со стороны оператора, а также переключения им управления на себя. Язык операционных систем составляют параметры управления, которыми оператор пользуется, чтобы устанавливать и направлять последовательность выполнения программ. Освобождая программиста от большого количества учетной и диспетчерской черной работы и принимая ее на себя, операционная система, работающая в реальном масштабе времени, упрощает процесс программирования для ЭВМ управления процессом. [3]
Следующий уровень системы математического обеспечения составляют обобщенные программы, компиляторы и операционные системы. Этот уровень имеет ту же структуру, что и нижний уровень системы математического обеспечения. [4]
Система разработана фирмой ИБМ и является системой обобщенных программ, выполняющих функции определения, создания, ведения и опрашивания файлов. Она реализована на ЭВМ IBM-360 и выполняется под управлением операционной системы ОС / 360 с оперативной памятью не менее 192 Кбайт. [5]
Используя методы вычислений в конечных разностях совместно с обобщенной программой для решения стационарных и нестационарных задач теплопроводности на ЭВМ, Винд [4] получил профили температур для радиальных ребер при произвольном распределении коэффициента теплоотдачи. Были рассмотрены радиальные ребра прямоугольного 0 9 и треугольного профилей. Однако эту программу можно применить и для расчета радиальных ребер других форм, таких как параболическая, трапециевидная и гиперболическая. [7]
Система программирования, или операционная система ( ОС), представляет собой набор
Массово-повторяюшиеся расчеты, необходимые для составления справочных таблиц и номограмм, производят по обобщенным программам, удобным для расчета большого числа вариантов сварных конструкций, соединений в требуемой последовательности. [9]
Массово-повторяющиеся расчеты, необходимые для составления справочных таблиц и номограмм, производят по обобщенным программам
, удобным для расчета большого числа вариантов сварных конструкций, соединений в требуемой последовательности. [10]С точки зрения отдела обработки данных исключительное применение фиксированных программ с установленным порядком ввода, вывода и обработки более целесообразно, чем использование обобщенных программ, способных удовлетворить почти любую информационную потребность. Однако для руководителя обработки данных невозможно ограничиться исключительным применением только фиксированных программ. [11]
Обобщенные программы являются результатом более широкого применения методов стандартных подпрограмм: они включают многократно используемые общие программы, например программы регистрации, программы ввода и вывода данных, матричных операций и регрессионного анализа. Для того, чтобы сделать обобщенную программу пригодной для выполнения работы в каждом конкретном случае, необходима только спецификация ( перечень значений) требуемых параметров. [12]
Наряду с упрощением программы модификация адреса имеет еще одно преимущество: если бы в результате сложения данных понадобилось изменить m или п, то это легко достигается без других изменений в основной части программы. Таким образом, модификация позволяет писать обобщенные программы, которые не зависят от фактического размера массива данных. [13]
Вид соотношения (7.32) меняется в зависимости от конкретного способа передачи тепла. Выбор надлежащего интервала времени входит в обобщенную программу решения нестационарных задач, детальному описанию которой посвящен следующий параграф. [14]
Чаще всего эти функции в информационной системе выполняют обобщенные программы. Как правило, они реализуются на основе профилей безопасности ( security profile), в которых специфицированы полномочия, необходимые для доступа к конкретным ресурсам. Профиль безопасности обычно связывается с паролем. И пароль, и профиль безопасности – это метаданные. Хотя мы полагаем, что профили безопасности и пароли должны храниться в СССД, существует мнение, что такие метаданные должны храниться отдельно и контроль доступа к ним должен быть более жестким. [15]
Страницы: 1 2
www.ngpedia.ru
В какой форме может быть выражена обобщенная программа в музыке
21.05.201815:1721 Мая 2018 15:17:10
v-kakoi-forme-mozhet-byt-vyrazhena-obobshchennaia-programma-v-muzyke.zip | |
Программой может служить заглавие, указывающее на какоелибо явление действительности, которое имел в виду композитор, или на вдохновившее его литературное, живописное или пластическое произведение. Композиторы удачно использовали формотворческую роль программы в инструментальной музыке. Анализ должен установить, как педагог определяет содержание обучения, в какой мере оно отвечает намеченным педагогическим задачам. В определенноличных предложениях сказуемое не может быть выражено глаголом 3го лица единственного числа и глаголом в форме прошедшего времени. Домашнее задание нарисовать рисунки на тему Осень это не обязательно могут быть иллюстрации к музыке Чайковского. Из числа определений, существующих в литературе вопроса, примем следующее афоризм это изречение обычно в форме фразы, выражающее какуюлибо обобщнную . В какой форме может быть выражена обобщнная программа. Вы, наверное, уже поняли, что программной музыкой называется такая инструментальная музыка, в основе которой лежит программа, то есть какойто совершенно. Резюмирование, повторение в обобщнной форме основной идеи текста, позиции автора. Какими могут быть подарки? Какие знаете примеры предложений, где сказуемое выражено существительным? Существует так называемая программная музыка, в которой композитор либо указывает название произведения, т. Но бурная, грозная музыка может вызвать ассоциации и с разгулом стихии, и с бурей чувств в душе человека, и с грозным гулом сражения. Заходи и общайся скучно не будет! Вы, наверное, уже поняли, что программной музыкой называется такая инструментальная музыка, в основе которой лежит программа, то есть какойто совершенно
Форма парадная рвсн
Заявление судебным приставам о предоставлении информации образец
Инвентарная карточка учета основных средств форма по окуд 0504031
Заявление на 1 день без сохранения заработной платы образец
Бланк удостоверение о проверке знаний по охране труда бланк
Можно ли сделать доверенность без присутствия доверителя
pro-ulyanovsk.ru
Что такое программная музыка? Примеры и определение программной музыки
Музыкальное произведение, содержание которого раскрывает некую заложенную в него композитором словесную программу, очень часто поэтическую, – вот что такое программная музыка. Это явление придаёт ей специфические черты, отличающие ее от непрограммной, которые отображают настроения, чувства, душевные переживания человека. Программа может быть отражением каких угодно явлений действительности.
Конкретика и синтез
По идее, вся музыка в той или иной степени программна, разве что почти невозможно в точности обозначить ни предметы, ни понятия, которые вызывают те или иные чувства у слушателя. Такими способностями обладает только речь, устная или письменная. Поэтому композиторы нередко снабжают свои произведения программой, таким образом заставляя словесную или литературную предпосылку работать в синтезе со всеми применёнными им музыкальными средствами.
Единству литературы и музыки помогает то, что оба эти вида искусства способны показывать развитие и рост образа во времени. Различные виды творческих действий были объединены ещё с древности, поскольку искусство родилось и развивалось в синкретическом виде, связываясь с ритуалами и трудовой деятельностью. В средствах оно было очень ограниченным, поэтому по отдельности и без прикладных задач просто не могло существовать.
Размежевание
Постепенно бытовой уклад человечества совершенствовался, искусство становилось изощрённее, и появилась тенденция к разъединению его основных родов и видов. Действительность обогащалась, и отображение этого уже достигалось во всём многообразии, хотя синкретическим искусство навсегда осталось в обрядовых, духовных, вокально-инструментальных, драматических аспектах. Совместные действия музыки и слова, однако, определяющие программность, тоже никогда от музыки далеко не уходили.
Это могут быть названия, которые предусматривает программная музыка. Примеры – в сборнике фортепианных пьес П. И. Чайковского “Детский альбом”, где у каждой пьесы есть не только “говорящее”, но и “рассказывающее” название: “Утренняя молитва”, “Нянина сказка”, “Болезнь куклы” и все остальные маленькие произведения. Это его же сборник для детей постарше “Времена года”, где к названию Пётр Ильич присовокупил и яркий поэтический эпиграф. Композитор позаботился о конкретном содержании музыки, тем и объясняя, что такое программная музыка и как нужно исполнять данное произведение.
Музыка плюс литература
Программная музыка для детей особенно понятна, если у произведения есть и название, и сопроводительное слово, которое составляет сам композитор или писатель, вдохновивший его, как сделал Римский-Корсаков в симфонической сюите “Антар” по сказке Сенковского или Свиридов в музыке к повести Пушкина “Метель”.
Тем не менее программа музыку лишь дополняет, не являясь точным разъяснением. Просто объект вдохновения один и тот же у писателя и композитора, а средства всё-таки разные.
Музыка минус литература
Если пьеса называется “Грустная песенка” (например, есть у Калинникова, Свиридова и многих других композиторов), это определяет только характер исполнения, но никак не конкретное содержание, тем и различны программная и непрограммная музыка. Конкретика – это “Собачка потерялась”, “Клоуны”, “Дедушкины часы” (которые потикают-потакают, а потом непременно будут бить). Такова практически вся программная музыка для детей, она глубже и быстрее понимается и лучше усваивается.
Музыкальный язык чаще всего сам конкретизирует программное содержание посредством своей изобразительности: звучание может имитировать пение птиц (“Жаровонок”, “Кукушка”), нагнетание напряжённости, веселье народного гулянья, ярмарочные шумы (“Необычайное происшествие”, “Масленица” и другие. Это так называемая звукопись, которая тоже проясняет, что такое программная музыка.
Определение
Любое снабжённое словесной характеристикой произведение обязательно содержит элементы программности, которая имеет множество видов. А что такое программная музыка, можно понять, даже слушая или разучивая этюды. Они сами по себе призваны развивать технические возможности музыканта в роли развёрнутых упражнений и могут не только программы не содержать, но и музыки как таковой, но всё равно зачастую носят в себе черты программности и даже бывают программны абсолютно. Но если в инструментальном произведении есть сюжет, и содержание последовательно раскрывается, это обязательно программная музыка. Примеры можно найти и в национальных народных, и в классических сочинениях.
“Три кита” и национальные черты в программе
Также помогают понять, что такое программная музыка, определённые черты прикладных жанров: песни (“Полюшко”, например), марша во всём жанровом разнообразии (“Марш Черномора” и “Марш деревянных солдатиков”), а также танца – народного, классического, фантастического. Это, с лёгкой руки Д.Б. Кабалевского, в музыке – “три кита”, определяющие жанровую принадлежность.
Характерные черты национальной музыки тоже обычно служат программности музыкального произведения, задавая общую концепцию, темп, ритм сочинения (“Танец с саблями” Хачатуряна, например, “Два еврея…” и “Гопак” Мусоргского).
Пейзажная и сюжетная программность
Отображение одного или ряда образов, которые на протяжении всего сочинения не претерпевают изменений, – тоже программная музыка. Примеры произведений можно найти повсеместно: “В полях” Глиэра, “По скалам и фьордам” Грига и так далее. Сюда же можно отнести картины праздников и битв, музыкальные изображения пейзажные и портретные.
Даже одни и те же литературные сюжеты композиторы воплощают в музыке по-разному: например, “Ромео и Джульетта” Шекспира у Чайковского вылилась в увертюру, где программность обобщённая, а у Берлиоза – последовательная. И то, и другое, разумеется, программная музыка. Название чаще всего может рассматриваться как сюжетная программа, например “Битва гуннов” Листа по одноимённой фреске Каульбаха или его же этюды “Хоровод гномов” и “Шум леса”. Иногда произведения скульптуры, архитектуры, живописи помогают понять, что такое программная музыка, поскольку участвуют в выборе изобразительных средств для музыкальной картины.
Вывод
Программность обогащает музыку новыми выразительными средствами, помогает в поиске новых форм произведения, дифференцирует жанры. Если композитор обращается к программе в своём сочинении, это сближает его слушателя с действительностью, одухотворяет быт, способствует постижению глубинных духовных начал. Однако, если программность довлеет над остальными задачами, то восприятие музыки заметно снижается, то есть слушателю необходим простор для собственного творческого восприятия.
Поэтому многие композиторы от программности пытались отказываться (в том числе Малер, Чайковский, Штруаус и другие), но, несмотря на это, полностью непрограммной музыки ни у одного из них не получилось. Единство музыки и конкретики её содержания никогда не является нерасторжимым и абсолютным. И чем более обобщённо отражается содержание, тем лучше для слушателя. Что такое программная музыка – станет понятно по малейшим штрихам развития музыкальной мысли: имеющий уши, так сказать, услышит, несмотря на то что единое определение и даже одинаковое понимание этого явления в музыке в среде музыкальных теоретиков пока не появилось.
fb.ru
Обобщенное программирование – это… Что такое Обобщенное программирование?
Обобщённое программирование — парадигма программирования, заключающаяся в таком описании данных и алгоритмов, которое можно применять к различным типам данных, не меняя само это описание. В том или ином виде поддерживается разными языками программирования. Возможности обобщённого программирования впервые появились в 70-х годах в языках CLU и Ada, а затем во многих объектно-ориентированных языках, таких как C++, D и языках для платформы .NET.
Общий механизм
Средства обобщённого программирования реализуются в языках программирования в виде тех или иных синтаксических средств, дающих возможность описывать данные (типы данных) и алгоритмы (процедуры, функции, методы), параметризуемые типами данных. У функции или типа данных явно описываются формальные параметры-типы. Это описание является обобщённым и в исходном виде непосредственно использовано быть не может.
В тех местах программы, где обобщённый тип или функция используется, программист должен явно указать фактический параметр-тип, конкретизирующий описание. Например, обобщённая процедура перестановки местами двух значений может иметь параметр-тип, определяющий тип значений, которые она меняет местами. Когда программисту нужно поменять местами два целых значения, он вызывает процедуру с параметром-типом «целое число» и двумя параметрами — целыми числами, когда две строки — с параметром-типом «строка» и двумя параметрами — строками. В случае с данными программист может, например, описать обобщённый тип «список» с параметром-типом, определяющим тип хранимых в списке значений. Тогда при описании реальных списков программист должен указать обобщённый тип и параметр-тип, получая, таким образом, любой желаемый список с помощью одного и того же описания.
Компилятор, встречая обращение к обобщённому типу или функции, выполняет необходимые процедуры статического контроля типов, оценивает возможность заданной конкретизации и при положительной оценке генерирует код, подставляя фактический параметр-тип на место формального параметра-типа в обобщённом описании. Естественно, что для успешного использования обобщённых описаний фактические типы-параметры должны удовлетворять определённым условиям. Если обобщённая функция сравнивает значения типа-параметра, любой конкретный тип, использованный в ней, должен поддерживать операции сравнения, если присваивает значения типа-параметра переменным — конкретный тип должен обеспечивать корректное присваивание.
Способы реализации
Известно два основных способа реализации поддержки обобщённого программирования в компиляторе.
- Порождение нового кода для каждой конкретизации. В этом варианте компилятор рассматривает обобщённое описание как текстовый шаблон для создания вариантов конкретизаций. Когда компилятору требуется новая конкретизация обобщённого типа или процедуры, он создаёт новый экземпляр типа или процедуры, чисто механически добавляя туда тип-параметр. То есть, имея обобщённую функцию перестановки элементов, компилятор, встретив её вызов для целого типа, создаст функцию перестановки целых чисел и подставит в код её вызов, а затем, встретив вызов для строкового типа — создаст функцию перестановки строк, никак не связанную с первой. Этот метод обеспечивает максимальное быстродействие, поскольку варианты конкретизаций становятся разными фрагментами программы, каждый из них может быть оптимизирован для своего типа-параметра, к тому же в код не включаются никакие лишние элементы, связанные с проверкой или преобразованием типов на этапе исполнения программы. Недостатком его является то, что при активном использовании обобщённых типов и функций с различными типами-параметрами размер откомпилированной программы может очень сильно возрастать, поскольку даже для тех фрагментов описания, которые для разных типов не различаются, компилятор всё равно генерирует отдельный код. Этот недостаток можно затушевать путём частичной генерации общего кода (часть обобщённого описания, которая не зависит от типов-параметров, оформляется специальным образом и по ней компилятор генерирует единый для всех конкретизаций код). Зато данный механизм даёт естественную возможность создания специальных (обычно — сильно вручную оптимизированных) конкретизаций обобщённых типов и функций для некоторых типов-параметров.
- Порождение кода, который во время исполнения выполняет преобразование фактических параметров-типов к одному типу, с которым фактически и работает. В этом случае на этапе компиляции программы компилятор лишь проверяет соответствие типов и включает в код команды преобразования конкретного типа-параметра к общему типу. Код, определяющий функционирование обобщённого типа или функции, имеется в откомпилированной программе в единственном экземпляре, а преобразования и проверки типов выполняются динамически, во время работы программы. В этом варианте порождается, как правило, более компактный код, но программа оказывается в среднем медленнее, чем в первом варианте, из-за необходимости выполнения дополнительных операций и меньших возможностей оптимизации. Кроме того, в компилированный код для типов-параметров далеко не всегда включается динамическая информация о типах (в первом варианте она есть, если вообще поддерживается, поскольку конкретизации для каждого типа-параметра различны), что определяет некоторые ограничения на применение обобщённых типов и функций. Подобные ограничения есть, например, в Java.
Обобщённое программирование в языках
C++
В языке C++ обобщённое программирование основывается на понятии «шаблон», обозначаемом ключевым словом template. Широко применяется в стандартной библиотеке C++ (см. STL), а также в сторонних библиотеках boost, Александр Степанов.
В качестве примера приведём обобщённую функцию, возвращающую большее значение из двух.
// Описание шаблонной функции template <typename T> T max(T x, T y) { if (x < y) return y; else return x; } ... // Применение шаблонной функции int a = max(10,15); ... double f = max(123.11, 123.12); ...
Чтобы программа
Java
Java предоставляет средства обобщённого программирования, синтаксически основанные на C++, начиная с версии J2SE 5.0. В этом языке имеются generics или «контейнеры типа T» — подмножество обобщённого программирования.
.NET
На платформе .NET средства обобщённого программирования появились в версии 2.0.
Пример на C#
interface IPerson { string GetFirstName(); string GetLastName(); } class Speaker { public void SpeakTo<T>(T person) where T : IPerson { string name = person.GetFirstName(); this.say("Hello, " + name); } }
D
В языке «D» средства обобщённого программирования значительно эволюционировали в сравнении с С++, как в процедурной, так и в объектно ориентированной составляющей. Значительно проще стало и лингвистическое представление.
Пример рекурсивной генерации на основе шаблонов D:
// http://digitalmars.com/d/2.0/template.html template Foo(T, R...) // T - тип, R - набор типов { void Foo(T t, R r) { writefln(t); static if (r.length) // if more arguments Foo(r); // do the rest of the arguments } } void main() { Foo(1, 'a', 6.8); } /+++++++++++++++ prints: 1 a 6.8 +++++++++++++++/
Wikimedia Foundation. 2010.
dic.academic.ru
Обобщённое программирование – это… Что такое Обобщённое программирование?
Обобщённое программирование (англ. generic programming) — парадигма программирования, заключающаяся в таком описании данных и алгоритмов, которое можно применять к различным типам данных, не меняя само это описание. В том или ином виде поддерживается разными языками программирования. Возможности обобщённого программирования впервые появились в 1970-х годах в языках Клу и Ада, а затем во многих объектно-ориентированных языках, таких как C++, Java, Object Pascal[1], D, Eiffel, языках для платформы .NET и других.
Методология обобщённого программирования
Обобщённое программирование рассматривается как методология программирования, основанная на разделении структур данных и алгоритмов через использование абстрактных описаний требований[2]. Абстрактные описания требований являются расширением понятия абстрактного типа данных. Вместо описания отдельного типа в обобщённом программировании применяется описание семейства типов, имеющих общий интерфейс и семантическое поведение (англ. semantic behavior). Набор требований, описывающий интерфейс и семантическое поведение, называется концепцией (англ. concept). Таким образом, написанный в обобщённом стиле алгоритм может применяться для любых типов, удовлетворяющих его своими концепциями. Такая возможность называется полиморфизмом.
Говорят, что тип моделирует концепцию (является моделью концепции), если он удовлетворяет её требованиям. Концепция является уточнением другой концепции, если она дополняет последнюю. Требования к концепциям содержат следующую информацию:[3]
- Допустимые выражения (англ. valid expressions) — выражения языка программирования, которые должны успешно компилироваться для типов, моделирующих концепцию.
- Ассоциированные типы (англ. associated types) — вспомогательные типы, имеющие некоторое отношение к моделирующему концепцию типу.
- Инварианты (англ. invariants) — характеристики типов времени исполнения, которые должны быть постоянно верны. Обычно выражаются в виде предусловий и постусловий. Невыполнение предусловия влечёт непредсказуемость соответствующей операции и может привести к ошибкам.
- Гарантии сложности (англ. complexity guarantees) — максимальное время выполнения допустимого выражения или максимальные требования к различным ресурсам в ходе выполнения этого выражения.
В C++ ООП реализуется посредством виртуальных функций и наследования, а ОП — с помощью шаблонов классов и функций. Тем не менее, суть обеих методологий связана с конкретными технологиями реализации лишь косвенно. Говоря более формально, ООП основано на полиморфизме подтипов, а ОП — на параметрическом полиморфизме. В других языках то и другое может быть реализовано иначе. Например, мультиметоды в CLOS имеют сходную с параметрическим полиморфизмом семантику.
Массер и Степанов выделяют следующие этапы в решении задачи по методологии ОП:
- Найти полезный и эффективный алгоритм.
- Определить обобщённое представление (параметризовать алгоритм, минимизировав требования к обрабатываемым данным).
- Описать набор (минимальных) требований, удовлетворяя которые всё ещё можно получить эффективные алгоритмы.
- Создание каркаса на основе классифицированных требований.
Минимизация и создание каркаса ставят целью создание такой структуры, при которой алгоритмы не зависят от конкретных типов данных. Этот подход отражён в структуре библиотеки STL.[4]
Альтернативный подход к определению обобщённого программирования, который можно назвать обобщённым программированием типов данных (англ. datatype generic programming), был предложен Ричардом Бёрдом и Ламбертом Меертенсом. В нём структуры типов данных являются параметрами обобщённых программ. Для этого в язык программирования вводится новый уровень абстракции, а именно параметризация по отношению к классам алгебр с переменной сигнатурой. Хотя теории обоих подходов не зависят от языка программирования, подход Массера-Степанова, делающий упор на анализ концепций, сделал C++ своей основной платформой, тогда как обобщённое программирование типов данных используют почти исключительно Haskell и его варианты.[5]
Общий механизм
Средства обобщённого программирования реализуются в языках программирования в виде тех или иных синтаксических средств, дающих возможность описывать данные (типы данных) и алгоритмы (процедуры, функции, методы), параметризуемые типами данных. У функции или типа данных явно описываются формальные параметры-типы. Это описание является обобщённым и в исходном виде непосредственно использовано быть не может.
В тех местах программы, где обобщённый тип или функция используется, программист должен явно указать фактический параметр-тип, конкретизирующий описание. Например, обобщённая процедура перестановки местами двух значений может иметь параметр-тип, определяющий тип значений, которые она меняет местами. Когда программисту нужно поменять местами два целых значения, он вызывает процедуру с параметром-типом «целое число» и двумя параметрами — целыми числами, когда две строки — с параметром-типом «строка» и двумя параметрами — строками. В случае, с данными программист может, например, описать обобщённый тип «список» с параметром-типом, определяющим тип хранимых в списке значений. Тогда при описании реальных списков программист должен указать обобщённый тип и параметр-тип, получая, таким образом, любой желаемый список с помощью одного и того же описания.
Компилятор, встречая обращение к обобщённому типу или функции, выполняет необходимые процедуры статического контроля типов, оценивает возможность заданной конкретизации и при положительной оценке генерирует код, подставляя фактический параметр-тип на место формального параметра-типа в обобщённом описании. Естественно, что для успешного использования обобщённых описаний фактические типы-параметры должны удовлетворять определённым условиям. Если обобщённая функция сравнивает значения типа-параметра, любой конкретный тип, использованный в ней, должен поддерживать операции сравнения, если присваивает значения типа-параметра переменным — конкретный тип должен обеспечивать корректное присваивание.
Обобщённое программирование в языках
C++
В языке C++ обобщённое программирование основывается на понятии «шаблон», обозначаемом ключевым словом template. Широко применяется в стандартной библиотеке C++ (см. STL), а также в сторонних библиотеках boost, Loki. Большой вклад в появление развитых средств обобщённого программирования в C++ внёс Александр Степанов.
В качестве примера приведём обобщённую функцию, возвращающую большее значение из двух.
// Описание шаблонной функции template <typename T> T max(T x, T y) { if (x < y) return y; else return x; } ... // Применение шаблонной функции int a = max(10,15); ... double f = max(123.11, 123.12); ...
Java
Java предоставляет средства обобщённого программирования, синтаксически основанные на C++, начиная с версии J2SE 5.0. В этом языке имеются generics или «контейнеры типа T» — подмножество обобщённого программирования.
.NET
На платформе .NET средства обобщённого программирования появились в версии 2.0.
Пример на C#
interface IPerson { string GetFirstName(); string GetLastName(); } class Speaker { public void SpeakTo<T>(T person) where T : IPerson { string name = person.GetFirstName(); this.say("Hello, " + name); } }
D
Пример рекурсивной генерации на основе шаблонов D:
// http://digitalmars.com/d/2.0/template.html template Foo(T, R...) // T - тип, R - набор типов { void Foo(T t, R r) { writefln(t); static if (r.length) // if more arguments Foo(r); // do the rest of the arguments } } void main() { Foo(1, 'a', 6.8); } /+++++++++++++++ prints: 1 a 6.8 +++++++++++++++/
Object Pascal
Поддержка обобщённого программирования компилятором Free Pascal появилась начиная с версии 2.2 в 2007 году[6]. В Delphi — с октября 2008 года. Основы поддержки обобщённых классов сначала появилась в Delphi 2007 .NET в 2006 году, но она затрагивала только .NET Framework. Более полная поддержка обобщённого программирования была добавлена в Delphi 2009. Обобщённые классы также поддерживаются в Object Pascal в системе PascalABC.NET.
Примечания
- ↑ В Delphi и PascalABC.NET
- ↑ Сик, Ли, Ламсдэйн, 2006, p. 39
- ↑ Сик, Ли, Ламсдэйн, 2006, p. 47-48
- ↑ Сик, Ли, Ламсдэйн, 2006, p. 40-45
- ↑ Gabriel Dos Reis, Jaakko Järvi. What is Generic Programming?
- ↑ Freepascal.Generics
Ссылки
Литература
- Джереми Сик, Лай-Кван Ли, Эндрю Ламсдэйн. C++ Boost Graph Library. — Питер, 2006. — 304 с. — ISBN 5-469-00352-3
dic.academic.ru
Обобщенная программа – Большая Энциклопедия Нефти и Газа, статья, страница 2
Обобщенная программа
Cтраница 2
Метаданные также могут использоваться для генерации спецификаций соответствующих критериев. Расширяя рассмотренный подход, можно на основе хранимых в СССД метаданных генерировать простые обобщенные программы редактирования и проверки достоверности. [16]
Многие комплекты входных данных в этих программах взаимозаменяемы. Поэтому в настоящей главе при описании обобщенной программы решения нестационарных задач учитывается уже изложенный в гл. [17]
Нестационарные задачи теплообмена развитых поверхностей являются математически более сложными, нежели исследованные ранее стационарные задачи. Все рассматриваемые в настоящей главе случаи, начиная с задачи теплопроводности для радиального ребра прямоугольного профиля, у которого мгновенно повышается температура в основании ( а температура окружающей среды постоянна и однородна), не могут быть решены аналитически. Поэтому значительная часть представленного в этой главе материала отведена методу конечных разностей и описанию обобщенной программы решения нестационарных задач. [18]
Описанная программа является простой и весьма ограниченной. По этой программе можно обучить машину только тому, что заранее предусмотрено для нее составителем программы. В этой программе точно расписаны все действия машин; можно усложнять вид рефлексов, но подобные программы, точно описывающие поведение машины для каждого случая, не могут имитировать обучение машины любым рефлексам, которые будут предложены уже после составления и введения в машину программы. Для получения такой возможности необходима обобщенная программа обучения, которая позволяла бы обучать машину всему, что будет задано, независимо от планов составителя программы. [19]
Цифровая вычислительная машина является отличным инструментом для быстрого решения конечно-разностных задач. При расчетах и конструировании развитых поверхностей редко используется конечно-разностная сетка с числом узлов менее десяти. В этих условиях методы ручного счета требуют чрезмерно больших затрат времени. Поэтому в настоящей главе описывается и иллюстрируется на нескольких примерах обобщенная программа решения рассматриваемой конечноразностной задачи. [20]
Полная программа для контроля и управления технологическим процессом должна создаваться с ясным пониманием требований пульта управления. Вероятно, наиболее важным вопросом является группирование данных. С пульта осуществляется доступ к большому объему данных, связанных с каждой технологической переменной. В связи с этим представляется логичным группировать данные по технологическим переменным; такое группирование будет также естественным при обработке переменных. Так, например, в одной обобщенной программе управления процессом 84 слова приведены в соответствие с данными каждой технологической переменной. Однако для повышения эффективности вычислений эти данные распределены по нескольким массивам. [21]
Указание является эффективным средством введения данных. Оно предусматривает отображение словаря, располагая которым пользователь указывает на предмет ( или позиции), которые он хочет ввести в систему. Для указания пользователь может применять специальный резец, световое перо, яркостный маркер и другие способы. Используя опорные диапозитивы или электронно-лучевую трубку, можно отобразить много разнообразных предметов, которые удобно выбирать методом указания. Это дает возможность обеспечить пользователя различными типами клавиатуры с изменяемым назначением функциональных клавиш. Такой метод позволяет создавать много дополнительных клавиш, отображать большой объем описательной информации на каждую клавишу, размещать клавиши в виде функциональной блок-схемы, индицировать с помощью электронно-лучевой трубки клавиши, выбранные ЭВМ, применять кодирование цветом, чтобы добиться более эффективного восприятия информации в случае применения специальных форматов, а также воспользоваться многими другими возможностями. Были составлены обобщенные программы такого характера, которые преобразуют координаты точки, выбранной методом указания в машинный код. [22]
Страницы: 1 2
www.ngpedia.ru
Программно-изобразительная музыка | Музыкальная Фантазия
Программно-изобразительная музыка
В жизни человека музыка бывает и другом, и утешительницей, и мечтой. Но некоторые люди (часто по незнанию) отводят ей роль простой служанки, даже не подозревая о том, что она – богиня, способная возвысить человеческую душу, затронуть в ней добрые, благородные струны.
Наш великий соотечественник писатель Михаил Афанасьевич Булгаков высказал о музыке важную мысль: «Музыку нельзя не любить. Где музыка, там нет злого».
Даже слушая незнакомую музыку, вы вдруг понимаете, что в ней выражены именно ваши чувства, настроения: то грусть, то бурная радость, то такой оттенок настроения, какой и словами не определить…
Оказывается, что все эти эмоции также пережил другой человек – композитор, а затем сумел выразить в звуках музыки огромное разнообразие взволновавших его чувств и настроений. И неважно, в каком веке жил композитор – в XVIII или ХХ, для музыки не существует границ: она переходит от сердца к сердцу. Вот в этом свойстве музыки – выразительности – кроется её главная сила. Даже короткая песня или небольшая инструментальная пьеса по силе выразительности могут соперничать со сложной сонатой или симфонией. Причина такого необычного явления в том, что музыка, «говорящая» простым музыкальным языком, понятна и доступна всем, а музыкальный язык «сонаты» или «симфонии» требует от слушателя подготовки, музыкальной культуры. Эту подготовку – знания о музыке, её языке, её выразительных и изобразительных возможностях – призваны дать наши занятия по музыке.
Вы познакомились уже с большим количеством музыкальных произведений. Многие из них имеют названия. «Удачно выбранное название усиливает воздействие музыки и самого прозаического человека заставит что-то вообразить, на чём-то сосредоточиться» (Р. Шуман).
Если, к примеру, вы откроете «Детский альбом» Чайковского и прочитаете название первой пьесы: «Утренняя молитва», то сразу настроитесь на определённый тон, строгий, светлый и сосредоточенный. Заголовок помогает исполнителю раскрыть характер музыки наиболее близко к авторскому замыслу, а слушателю – лучше воспринять этот замысел.
Все произведения, имеющие названия, заголовки отдельных частей, эпиграфы или развёрнутую литературную программу, называются программными.
В вокальных произведениях – песнях, романсах, вокальных циклах, а также в музыкально-театральных жанрах – всегда есть текст и программа ясна.
А если музыка инструментальная, в ней нет текста, то, как лучше понять её и исполнить? Об этом позаботились композиторы, давшие названия своим инструментальным сочинениям, особенно тем, в которых музыка что-то или кого-то изображает. Итак, речь сейчас пойдёт о программно-изобразительной музыке.
…Какой океан звуков окружает нас! Пение птиц и шелест деревьев, шум ветра и шорох дождя, раскаты грома, рокот волн… Все эти звуковые явления природы музыка может изобразить, а мы, слушатели, представить. Каким образом музыка «изображает» звуки природы?
Одна из самых ярких и величественных музыкальных картин создана Бетховеном. В четвёртой части своей Шестой («Пасторальной») симфонии композитор звуками «нарисовал» картину летней грозы (эта часть так и называется – «Гроза»). Слушая могучее crescendo усиливающегося ливня, частые раскаты грома, вой ветра, изображённые в музыке, мы представляем себе летнюю грозу.
В симфонической картине Римского-Корсакова «Три чуда» изображена морская буря (второе «чудо» – о тридцати трёх богатырях). Обратите внимание на авторское определение – «картинка». Оно заимствовано из изобразительного искусства – живописи. В музыке слышны грозный рокот волн, завывание и свист ветра.
Один из самых излюбленных приёмов изобразительности в музыке – подражание голосам птиц. Остроумное «трио» соловья, кукушки и перепела вы услышите в «Сцене у ручья» – второй части «Пасторальной симфонии» Бетховена.
Птичьи голоса звучат в пьесах для клавесина «Перекликание птиц» и «Курица» Жана-Филиппа Рамо, «Кукушка» Луи-Клода Дакена, в фортепианной пьесе «Песня жаворонка» из цикла «Времена года» Чайковского, в прологе оперы «Снегурочка» Римского-Корсакова и во многих других произведениях. Итак, подражание звукам и голосам природы – самый распространённый приём изобразительности в музыке.
Другой приём существует для изображения не звуков природы, а движений людей, зверей, птиц. Обратимся снова к сказке Прокофьева «Петя и Волк». Рисуя в музыке Птичку, Кошку, Утку и других персонажей, композитор изобразил их характерные движения, повадки, да так искусно, что можно воочию представить себе каждого из них в движении: летящую Птичку, крадущуюся Кошку, прыгающего Волка и т. п.
Птичка
Птичка весело чирикает: «Все вокруг спокойно». Звучит лёгкая, как бы порхающая мелодия на высоких звуках, остроумно изображая птичий щебет, порханье Птички. Её исполняет деревянный духовой инструмент – флейта.
Утка
В мелодии Утки отражены её неповоротливость, переваливающаяся с боку на бок походка и даже как будто слышно её кряканье. Мелодия становится особенно выразительной в исполнении мягко звучащего, немного «гнусавого» гобоя.
Кошка
Отрывистые звуки мелодии в низком регистре передают мягкую, вкрадчивую поступь хитрой Кошки. Мелодию исполняет деревянный духовой инструмент – кларнет.
Здесь основными изобразительными средствами стали ритм и темп. Ведь движения любого живого существа происходят в определённом ритме и темпе, и они очень точно могут быть переданы музыкой.
Характер движений бывает различен: плавный, летящий, скользящий или, наоборот, резкий, неуклюжий … Музыка чутко откликается на это. Плавные движения отражаются в гибком мелодическом рисунке, штрихе legato, а резкие – в «колючем», угловатом рисунке мелодии, остром штрихе staccato.
Дедушка
Музыкальная тема Дедушки выразила его настроение и характер, особенности речи и даже походки. Дедушка говорит басом, неторопливо и как будто немного ворчливо – так звучит его мелодия в исполнении самого низкого деревянного духового инструмента – фагота.
Изображая движения, походку своих героев, композитор раскрывает и их характер. Так, музыкальные портреты мальчика Пети и Дедушки «нарисованы» Прокофьевым яркими, контрастными красками: оба героя сказки изображены в движении, поэтому их музыка связана с жанром марша. Но как не похожи эти два марша.
Петя
Бодро и задорно шагает Петя под музыку марша, как бы напевая лёгкую, озорную мелодию. Светлая, жизнерадостная тема воплощает неунывающий характер мальчика. Петю С. Прокофьев изобразил при помощи всех струнных инструментов – скрипок, альтов, виолончелей и контрабасов.
Тема Пети, лёгкая, упругая по ритму и подвижная, похожа на задорную песню, а в теме Дедушки резче проступают черты марша: она «жёсткая», резкая по ритму, динамике, более сдержанная по темпу.
Яркие примеры изобразительности такого рода вы найдёте в пьесах Мусоргского «Гном», «Балет Невылупившихся птенцов», «Избушка на курьих ножках» из фортепианного цикла «Картинки с выставки».
«Рисовать» музыкальные портреты первыми научились французские композиторы XVIII века. Франсуа Куперен многим своим пьесам для клавесина давал названия. Автор писал: «Пьесы с названием являются своего рода портретами, которые в моем исполнении находили довольно похожими». Слушая пьесу «Сестра Моник», нетрудно представить её весёлый нрав.
В пьесе «Флорентинка» звучит стремительный итальянский танец тарантелла, который становится главной чертой её музыкального портрета. «Подсказками» для слушателя стали программные заголовки «Кумушка», «Таинственная» и другие.
Традицию писать музыкальные портреты продолжили в XIX веке: Шуман, Берлиоз, Мусоргский, Римский-Корсаков, Чайковский, Лядов…
Ярко и афористично «написаны» женские портреты-характеры в фортепианном цикле Роберта Шумана «Карнавал». Сравним два из них: «Киарина» и «Эстрелла». Что в них общего? Прежде всего, романтический жанр вальса – танца века. Его «полётность», изящество как нельзя более точно подходят к женским образам, но при этом характер двух вальсов резко различен. Под карнавальной маской «Киарины» проступает портрет Клары Вик, жены композитора, выдающейся пианистки. Сдержанно-страстная тема вальса выражает возвышенную одухотворённость, поэтичность музыкального образа. А вот другой вальс – «Эстрелла», и перед нами «участница» карнавала, совершенно непохожая на «Киарину», – темпераментная, пылкая девушка. Музыка исполнена внешнего блеска, яркой эмоциональности.
А может ли музыка изобразить пространство? Можно ли, слушая её, мысленно видеть бескрайние равнины, просторы полей, безбрежные моря? Оказывается, можно. Например, первые части Первой симфонии П. Чайковского «Грёзы зимнею дорогой». Она начинается еле слышно – будто зашелестел сухой снег от ветра, зазвенел морозный воздух. Мгновение… и появилась печальная мелодия. Она создаёт впечатление широко раскинувшегося простора, пустыни, одиночества.
Такое же впечатление простора, объёмности звучания помогают создать широкие интервалы, звучащие «прозрачно», «пусто». Это – квинты, октавы. Назовём первую часть Одиннадцатой симфонии Шостаковича. Композитор изобразил огромное пространство Дворцовой площади, замкнутое громадами дворцов. Для этого он избрал простые и точные изобразительные приёмы: разреженную оркестровую фактуру с незаполненным средним регистром и прозрачную звучность «пустых» квинт в крайних регистрах, особенный тембровый колорит засурдиненных струнных и арфы.
Большую изобразительную роль в музыке играют гармония и тембры инструментов. Мы только что упомянули об особенности звучания оркестра в симфонии Шостаковича.
Назовём и другие произведения. Среди них – эпизод волшебного превращения лебёдушек в девушек во второй картине оперы Римского-Корсакова «Садко», пьеса «Утро» из сюиты Грига «Пер Гюнт».
Программных произведений в музыке существует огромное множество. Мы ещё не раз будем встречаться с ними на наших уроках.
Вопросы и задания:
- Что такое программная музыка?
- С какой целью композиторы дают названия инструментальным произведениям?
- В какой форме может быть выражена обобщённая программа?
- Перечислите все знакомые вам программные произведения.
Презентация
В комплекте:
1. Презентация – 34 слайда, ppsx;
2. Звуки музыки:
Бетховен. Симфония № 6 «Пасторальная». II часть. «Сцена у ручья» (фрагмент), mp3;
Бетховен. Симфония № 6 «Пасторальная». IV часть. «Гроза» (фрагмент), mp3;
Дакен. «Кукушка» (2 варианта исполнения: фортепиано и ансамбль), mp3;
Куперен. «Сестра Моник» (клавесин), mp3;
Куперен. «Флорентийка» (клавесин), mp3;
Мусоргский. «Балет невылупившихся птенцов» из цикла «Картинки с выставки» (2 варианта исполнения: симфонический оркестр и фортепиано), mp3;
Прокофьев. Фрагменты симфонической сказки «Петя и Волк»:
Тема Дедушки, mp3;
Тема Кошки, mp3;
Тема Пети, mp3;
Тема Птички, mp3;
Тема Утки, mp3;
Римский-Корсаков. «33 богатыря» из оперы «Сказка о царе Салтане», mp3;
Римский-Корсаков. «Превращение лебёдушек в девушек» из оперы «Садко», mp3;
Чайковский. «Утренняя молитва» из «Детского альбома» (2 варианта исполнения: симфонический оркестр и фортепиано), mp3;
Чайковский. Симфония № 1. I часть. (фрагмент), mp3;
Шостакович. Симфония № 11. I часть. (фрагмент), mp3;
Шуман. «Киарина» из цикла Карнавал (фортепиано), mp3;
Шуман. «Эстрелла» из цикла «Карнавал» (фортепиано), mp3;
3. Сопровождающая статья, docx.
music-fantasy.ru