Скачать 354.13 Kb.
|
.2. Языки системного программированияТаким образом, несмотря на быстрое развитие методов прикладного программирования и большой к ним интерес, полностью уходить от системных языков рано. Известно, что ключевыми языками системного программирования является пара: Си и Си++. Си занял своё место как инструмент реализации Unix и как пример баланса между сложностью механизмов языка и их востребованностью: арифметика указателей, типы для символьных данных и плавающей точки появились именно тогда, когда они были нужны. Си++ создавался как расширение Си. Была добавлена поддержка объектно-ориентированного программирования, шаблоны. Возможности осмысленно выбирались «неортогональные». Такая разнородность, почти полная обратная совместимость с предшественником и, кончено, высокая эффективность компилятора сделали новый язык очень популярным. Остановимся на проблемах. Оба языка основываются на разработках 60-70-х годов и не учитывают наработок, связанных с виртуальными машинами. Отсутствие сопрограмм в Си, уникальность функций по имени в условиях современности осложняют программирование. Более мощный Си++ лучше адаптируется, но перегруженный разными техниками язык труднее освоить, а его компилятор – реализовать. Альтернативой является Objective-C, созданный примерно в то же время и реализующий объекты не процедурами, а пересылкой сообщений. Подход проще и однороднее, но, несмотря на все возможные оптимизации, такая абстракция медленнее Си++ в полтора раза по времени исполнения. В Приложении 1 приведены результаты тестов. Проблемы давно известны, но предложить что-то принципиально новое и, в то же время, не потерять сильные стороны сложно. Диалекты C/C++Обособленных от стандарта диалектов довольно много, но их легко разбить на группы, выделив примеры:
К сожалению, все эти интересные и во многом прогрессивные решения узко специализированы и ограничены общей посылкой, стремлением сохранить работоспособность существующих программ соответствующих стандарту. Улучшения затрагивают отдельные стороны языка и не касаются его основ. Особняком стоит разработка Clang [9], исправляющая недостатки прежних компиляторов, и новая версия стандарта C++0x [10]. Оба проекта развиваются с целью продлить срок широкого использования C/C++ еще как минимум на десять лет, но, как и диалекты, они не смогут в полной мере избавиться от концептуальных ограничений. Си будет только наращивать свои выразительные возможности, усложнять компилятор, при этом уровень абстракций языка будет оставаться примерно тем же. Новые языкиСоздатели языка D [11] в своём проекте сделали выводы из практики C++, часть механизмов переработали, что-то добавили из Java и Python. Но несмотря на большой объем проделанной работы с точки зрения системного программирования ничего не поменялось, просто всё что делается в C++ на уровне библиотек, здесь является механизмом языка. По-другому спроектирован экспериментальный Go [12], на основе Си-подобного языка выстроена более мощная система типов с обобщенными интерфейсами, добавлена встроенная поддержка многопоточности и всё это с упором на очень быструю компиляцию. Язык получился современным и легким, но уже сейчас видно, что структура получается жёсткая, а, значит, дальнейшее развитие будет напоминать расширение Си. Рассмотренные языки, так или иначе, исходили из сложившейся практики императивного системного программирования. Не так давно сочетание декларативной и императивной парадигм было эффективно реализовано в ATS [13, 5]. Мощнейшая система типов, позволяющая проводить огромное количество статических проверок, сборка мусора, сопоставление с образцом, шаблоны, исключения и отлаженный FFI3 с Си делают язык действительно перспективным. Но из-за отсутствия полной документации и нестандартной модели исполнения на основе автоматического доказательства теорем продвижение идёт медленно. На данный момент неакадемических примеров использования пока нет. Нестандартные модели вообще трудно усваиваются программистским сообществом, тому же Haskell’у потребовалось около 15 лет для этого. |
Реферат: Коваленко А. Е. Разработка системы научной визуализации.... Коваленко А. Е. Разработка системы научной визуализации. Квалификационная работа на степень магистра наук по направлению «Математика.... | Реферат: Шайдуров А. Г. Исследование и разработка некоторых графических... Шайдуров А. Г. Исследование и разработка некоторых графических алгоритмов. Квалификационная работа на степень магистра наук по направлению... | ||
Реферат Флягина Т. А. Проблемы разработки многооконных интерфейсов,... Флягина Т. А. Проблемы разработки многооконных интерфейсов, квалификационная работа на степень бакалавра наук | Рабочая программа составлена в соответствии с требованиями фгос впо... Математика и компьютерные науки по профилю подготовки: «Вычислительные, программные, информационные системы и компьютерные технологии»... | ||
Рабочая программа для студентов очной формы обучения, направление... Иванов Д. И. Криптография и криптоанализ. Учебно-методический комплекс. Рабочая программа для студентов очной формы обучения, направления... | Рабочая программа для студентов очной формы обучения, направление... Иванов Д. И. Дополнительные главы дискретной математики. Учебно-методический комплекс. Рабочая программа для студентов очной формы... | ||
Литература Погрешности вычислений Программа предназначена для подготовки к вступительным испытаниям в аспирантуру по направлению 02. 06. 01 «Компьютерные и информационные... | Учебно-методический комплекс Программа для студентов направления... Рассмотрено на заседании умк института математики и компьютерных наук, протокол №2013 г | ||
Рабочая программа дисциплины (модуля) опубликована на сайте ТюмГУ «Математика и компьютерные науки» по профилю подготовки «Вычислительные, программные, информационные системы и компьютерные технологии... | Г. Л. Воронин Н. В ларшина социология учебно-методическое пособие Программа предназначена для бакалавров очной формы обучения механико-математического факультета математика 010100, математика и компьютерные... | ||
Учебно-методический комплекс учебной дисциплины «Философские образы... Аспирантура – самостоятельный уровень высшего образования, нацеленный на подготовку специалистов высшей квалификации. К поступлению... | Рабочая программа для студентов направления 010200. 62 Математика... Девятков А. П. Банаховы алгебры и гармонический анализ. Учебно-методический комплекс. Рабочая программа для студентов направления... | ||
Учебно-методический комплекс для студентов не психологических специальностей... Гидрология 010100. 62 Математика 010101. 65 Математика 010101. 65 Математика 010101. 65 Математика 010300. 62 Математика. Компьютерные... | Рабочая программа и методические указания для студентов очной формы... Рабочая программа и методические указания для студентов очной формы обучения направлений 010300. 62 «Математика. Компьютерные науки»... | ||
Диссертация На соискание степени Магистра по направлению 030100 Философия... Едеральное государственное бюджетное образовательное учреждение высшего профессионального образования | Рабочая программа составлена в соответствии с требованиями фгос впо... Дёгтев А. Н. Теория алгоритмов. Учебно-методический комплекс. Рабочая программа для студентов направления 010200. 62 – математика... |