Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Введение в теорию программирования. Объектно-ориентированный подход. Учебное пособие для СПО

.pdf
Скачиваний:
0
Добавлен:
06.09.2026
Размер:
1 Мб
Скачать
Проектирование и реализация гетерогенных приложений
Цель: знакомство с проектированием и реализацией гетерогенных приложений для платформы .NET на примере совместного проекта из компонент на языках SML и C#.
Теоретические сведения
Гетерогенные приложения
Платформа программирования .NET изначально разрабатывалась для построения приложений на компонентной основе и обеспечения независимости взаимодействия компонентов от языка программирования. Благодаря этому в рамках одного приложения могут быть использованы компоненты, реализующие различные подходы к программированию.
В качестве основной структурной единицы компонентного программирования выступает решение (solution), которое может состоять из сборок (assembly). Сборка представляет из себя управляемую динамическую библиотеку (DLL-файл) для .NET или приложение (EXE­файл). В каждом решении должна быть хотя бы одна сборка.
Для взаимодействия между сборками используется механизм ссылок. Ссылка ( reference ) - это пространство имен из одной сборки, доступное в другой. После добавления дополнительного проекта к решению и ссылки к основному проекту, в коде основного проекта можно пользоваться пространствами имен дополнительного.
Взаимодействие с SML.NET на компонентном уровне
Код SML.NET может создавать пространство имен, видимое в рамках других приложений. Для этого в файл script.smlnet добавляется
Введение в теорию программирования. Объектно-ориентированный подходЗыков С. В.
181
директива export. Данная директива экспортирует фрагмент программы на языке программирования (скажем, SML) в форме объекта или структуры в пространство имен .NET. Последнее, в свою очередь, может быть использовано в любой сборке решения при добавлении соответствующей ссылки.
Описание директивы export
Синтаксис:
export имя1[, имя2 ...]
При создании нового проекта SML.NET платформа автоматически заносит имя основной структуры SML-проекта в создаваемый файл. В случае добавления дополнительных файлов или создания дополнительных экспортируемых структур экспортом необходимо управлять вручную.
Для создания ссылки на другие проекты .NET в решении для SML.NET необходимо добавить директиву reference.
Директива reference
Синтаксис:
Reference файл_с_кодом_компонента_1 [...]
Порядок выполнения работы
1. Реализовать программу на C# в соответствии с вариантом исполнения.
2. Представить в графическом виде взаимодействие компонентов в среде .NET.
Варианты заданий
Введение в теорию программирования. Объектно-ориентированный подходЗыков С. В.
182
Оснастить графическим интерфейсом на языке C# следующие функции на языке SML.
Реализовать функцию на языке программирования SML, которая выполняет синтаксический разбор следующего аппликативного выражения по ассоциации влево с построением бинарного дерева:
1. a(bc)
2. ac(bc)
3. (ac)(bc)
4. (ab)(c(de))
5. a(b(cd)(ef))
6. a(b(cd)(ef)g)
7. a(b((cd)(ef))
8. (a(bc(de)f)gh)
9. abb(cdd(e)fg)
10. (ab(c(de))f(g(hi))j)
Реализовать функцию на языке программирования SML, которая выполняет синтаксический разбор следующего аппликативного выражения по ассоциации вправо с построением бинарного дерева:
1. a(bc)
2. ac(bc)
3. (ac)(bc)
4. (ab)(c(de))
5. a(b(cd)(ef))
6. a(b(cd)(ef)g)
7. a(b((cd)(ef))
8. (a(bc(de)f)gh)
9. abb(cdd(e)fg)
10. (ab(c(de))f(g(hi))j)
Введение в теорию программирования. Объектно-ориентированный подходЗыков С. В.
183

Список литературы

1. Атли К., VB.NET для програм мистов., ДМК Пресс, 2002. ISBN 5-94074-110-Х
2. Браунси К., Основные концепции структур данных и реализация в С++, М.: Издательский дом "Вильямс", 2002.- 320 с.
3. Вилле К., Представляем Си Шарп, ДМК Пресс, 2001. ISBN 5-94074-039-1
4. Вольфенгаген В.Э., Категориальная абстрактная машина, Изд. 2. М.: АО <ЮрИнфоР>, 2001 - 96 с. ISBN 5-89158-102-7
5. Вольфенгаген В.Э., Комбинаторная логика в программировании, 204 с. изд. 2-е, перераб., дополн. - М.: АО "Центр ЮрИнфоР", 2003 - 203 с. ISBN 5-89158-101-9, ББК
32.97
6. Вольфенгаген В.Э., Конструкции языков программирования. Приемы описания, М.: АО <ЮрИнфоР>, 2001, 276 с.
7. Вольфенгаген В.Э., Концептуализация в аппликативных вычислительных системах, М.: МИФИ, 1990
8. Вольфенгаген В.Э., Брызгалов С.В., Гаврилов А.В., Зыков С.В., Исмаилова Л.Ю., Кастанов С.А., Одрова А.Н., Погодаев Г.Г., Сницарь Р.В., Категориальная объектно­ориентированная абстрактная машина (КООАМ), Информационный бюллетень РФФИ, 4, 1996, c. 786
9. Гейтс Б., Бизнес со скоростью мысли., М.: Изд-во ЭКСМО-Пресс, 2000.- 480 с.
10. Зыков С.В., Современные языки программирования. Ч.I. Функциональный подход к программированию., М.:МИФИ - 2003, 230 с.
11. Зыков С.В., Современные языки программирования. Ч.II. Объектно­ориентированный подход к программированию., М.:МИФИ - 2004, 251 с.
12. Зыков С.В., Лабораторный практикум по курсу <Языки программирования>. Ч.1. Основы объектного программ ирования на С++., М.: МИФИ - 2001, 55 с. ISBN 5-7262­0454-9
13. Зыков С.В., Лабораторный практикум по курсу <Языки программирования>. Ч.2. Основы разработки приложений на С++ для Win32 API., М.: МИФИ - 2001, 45 с. ISBN 5­7262-0454-9
14. Керниган Б., Пайк Р., Практика программирования., СПб.: Невский диалект, 2001.-381 с.
15. Петцольд Ч., Програм мирование для Microsoft Windows на C#., <Русская редакция>, 2002. ISBN 5-7502-0210-0
16. Платт Д.С., Знакомство с Microsoft .NET., <Русская редакция>, 2001. ISBN 5-7502­0186-4
17. Рейли Д. Дж., Создание приложений Microsoft ASP.NET., <Русская редакция>, 2002. ISBN 5-7502-0218-6
18. Рекомендации по преподаванию информатики в университетах: Пер. с англ., СПб.,
2002.- 372 с. ISBN 5-288-03105-3
19. Рихтер Дж., Программирование на платформе Microsoft .NET Framework., <Русская редакция>, 2002
20. Робинсон У., C# без лишних слов., ДМК Пресс, 2002. ISBN 5-94074-177-0
21. Смит С., ASP.NET в примерах., ДМК Пресс, 2002. ISBN 5-94074-165-7
22. Шапошников И., Web-сервисы Microsoft .NET., <БХВ-Петербург>, 2002. ISBN 5­94157-199-2
Введение в теорию программирования. Объектно-ориентированный подходЗыков С. В.
184
23. Appleby D., VandeKopple J.J., Programming languages, paradigm and practice (2nd ed.)., McGraw-Hill, 1997
24. Barendregt H.P., The lambda calculus (revised edition),, Studies in Logic, 103, North Holland, Amsterdam, 1984
25. Box D., Essential .NET, Vol.1: The Common Language Runtime., Addison Wesley, 2002, 432
26. Cardelli L., A semantics of multiple inheritance., In: Information and Computation, vol.76, 1988, p.p. 138-164
27. Church A., The calculi of lambda-conversion., Princeton, 1941, ed. 2, 1951
28. Cook W., Hill W.L., Canning P.S., Inheritance is not subtyping., In: Proc. 17th ACM Symposium on Principles of Programming Langauges , Jan. 1990, p.p. 125-135
29. Cook W., Palsberg J., A denotational semantics of inheritance and its correctness., In: OOPSLA 1989 as SIGPLAN, vol.24, No.10, Oct. 1989, p.p. 433-444
30. Cousineau G., Curien P.-L., Mauny M., The categorical abs tract machine., Science of Computer Programming 8(2): 173-202, 1987
31. Curry H.B., Feys R., Combinatory logic, vol.I, North Holland, Amsterdam, 1958
32. Davis M. (ed.), Solvability, probability, definability: the collected works of Emil L. Pos t, Boston, Massachusetts, 1994
33. Date C.J., Encapsulation is a Red Herring., DataBase Programming and Design On­LineFrei, Sept. 1998
34. Floyd R.W., A note on mathematical induction on phrase structure grammars., Information and Control 4(4): 353-358, 1961
35. Fourman M., The logic of topoi., In: Handbook of Mathematical Logic, J.Barwise et al., eds . North-Holland, 1977
36. Frei G., Helmut Hasse (1898-1979), Expos itiones Mathematicae 3 (1) (1985), 55-69
37. Gilmore S., Programming in Standard ML '97: a tutorial introduction
38. Gordon M.J.C., Programming language theory and its implementation., Prentice-Hall, 1988
39. Gordon M.J.C., The denotational des cription of programming languages., Springer­Verlag, 1979
40. Grimes F., Microsoft .NET for Programmers., Manning Publications , 2002, 386 pp.
41. Gunter C.A., Scott D.S., Semantic Domains, Handbook on theoretical computer science, Vol.B: Formal models and semantics (B):633-674, 1990.
42. Hindley J.R., The principal type-scheme of an object in combinatory logic., Trans . Amer. Math. Soc., 146:29-60, 1969
43. Hindley J.R., Seldin J.P., Introduction to combinators and l-calculus., London Mathematical Society Student Texts , 1, Cambridge University Press , 1986
44. Hoare C.A.R., An axiomatic basis for computer programming., CACM 12(10):576-580, 1969
45. Hodges A. Alan, Turing and the Turing machine., The universal Turing machine: a half­century survey, pp. 3-15, New York, 1988
46. Hughes J., Why functional programming matters., The Computer Journal, 32 (2): 98-107, April 1989
47. Hughes R.J.M., Super combinators: a new implementation method for applicative languages., Proc. of the 1982 ACM Symposium on LISP and Functional Programming,
Введение в теорию программирования. Объектно-ориентированный подходЗыков С. В.
185
Pittsburgh, 1982
48. Kleene S.C., l-definability and recursiveness., Duke Math. J., p.p. 340-353, 1936
49. Knuth D.E., Backus normal form vs. Backus Naur form., Comm. ACM 7:12 p.p. 735-736
50. Landin P., The next 700 programming languages., Communications of ACM, 3, 1966
51. Landin. P.J., The mechanical evaluation of expressions., Computer Journal, 6:308-320, January 1964
52. Liberty J., Programming C#, 3d edition., O'Reilly & Ass ociates, 2003, 710 pp. ISBN: 0596004893
53. Lowy J., COM and .NET Component Services., O'Reilly, 2001, 384 pp.
54. Lowy J., Programming .NET Components ., O'Reilly, 2003, 480 pp.
55. Mauny M., Suarez A., Implementing functional languages in the categorical abstract machine., Proc. of the 1986 ACM conference on LISP and functional programming, pp. 266­278, Cambridge, Mas s achusetts, 1986
56. McCarthy J., Recursive functions of symbolic expressions and their computation by machine, Part I., Com. ACM, April 1960
57. Milner A.J.R.G., A proposal for Standard ML., Proceedings of the ACM Symposium on LISP and Functional Programming, Aus tin, 1984
58. Milner R., A theory of type polymorphism in programming languages., Journal of Computer and System Science, 17(3):348-375, 1978
59. Nathan A., NET and COM: The Complete Interoperability Guide., Sams , 2002, 1608 pp.
60. Peyton Jones S.L., The implementation of functional programming languages., Prentice Hall, 1987
61. Plotkin G.D., Call-by-name, call-by-value and the l-calculus., Theoretical computer science, 1, pp. 125-159, 1936
62. Pratt T.W., Zelkovitz M.V., Programming languages , design and implementation (4th ed.)., Prentice Hall, 2000 (В русском переводе: Пратт Т., Зелкович М., Языки программирования: разработка и реализация.- Спб.: Питер, 2002.-688 с.: ил.)
63. Richter J., Applied Microsoft .NET Framework Programming., Microsoft Press , 2002, 556 pp.
64. Rous s opulos N.D., A semantic network model of data bases, Toronto Univ., 1976
65. Scho. .nfinkel M., Uber die Bausteine der matematischen Logik, Math. Annalen 92, pp. 305-316, 1924. Translation printed as 'On the building blocks of mathematical logic', in van Heijenoort, J. (ed.), From Frege to Godel, Harvard University Press , 1967
66. Scott D.S., Domains for denotational semantics., ICALP 1982, 577-613
67. Scott D.S., Identity and existence in intuitionistic logic., In: Application of Sheaves.­Berlin: Springer, 1979, p.p. 600-696
68. Scott D.S., The lattice of flow diagrams., Lecture Notes in Mathematics, 188, Symposium on Mathematics of Algorithmic Languages.- Springer-Verlag, 1971, p.p. 311-372
69. Stoy J.E., Denotational semantics: the Scott-Strachey approach to programming language theory., MIT Press , 1977
70. Strachey C., Fundamental Concepts in Programming Languages ., Higher-Order and Symbolic Computation, Vol. 13, No 1/2, April 2000, p.p.11-49.
71. Turing A.M., On computable numbers, with an application to the Entscheidungsproblem., Proc. of London Mathematical Society, s er .2, vol. 42 p.p. 230-265, 1936-7
Введение в теорию программирования. Объектно-ориентированный подходЗыков С. В.
186
72. Thai T.L., Lam H., .NET Framework Essentials, 2nd ed., O'Reilly, 2002, 376 pp.
73. Thorup L., Tofte M., Object-oriented programming and Standard ML., Proc. ACM SIGPLAN 1994 Workshop on ML and its applications , Orlando, FL, June 1994, Tech. Report 2265 INRIA, p.p. 41-49
74. Troelsen A., C# and the .NET platform (2nd ed.)., APress, 2003, 1200 pp. (В русском переводе: Троелсен Э., C# и платформа .NET. Библиотека программиста.- Спб.: Питер,
2003.-800 с.: ил.)
75. Turner D.A., A new implementation technique for applicative languages ., Software ­Practice and Experience, 9:21-49, 1979
76. Visual C#. NET Step by Step, Microsoft Press , 2003. ISBN: 0-7356-1909-3
77. Wadsworth C.P., Semantics and pragmatics of the l-calculus., PhD Thes is, University of Oxford, 1981
78. Wolfengagen V.E., Building the access pointers to a computational environment., In: Electronic Workshops in Computing, Berlin Heidelberg New York: Springer-Verlag, 1998. p.p. 1-13
79. Wolfengagen V.E., Event-driven objects., In: Proc. CSIT'1999, Moscow, Russia, 1999, Vol.1, p.p. 88-96
80. Wolfengagen V.E., Functional notation for indexed concepts, In: Proc. WFLP'2000, Benicass im, Spain, Sept. 2000
81. Концепция Microsoft .NET, URL: http://msdn.microsoft.com/net
82. Концепция Microsoft .NET, URL: http://www.c-sharpcorner.com
83. Концепция Microsoft .NET, URL: http://www.microsoft.com/rus/net
84. Концепция Microsoft .NET, URL: http://www.gotdotnet.ru
85. Концепция Microsoft .NET, URL: http://www.dotsite.spb.ru
86. Концепция Microsoft .NET, URL: http://www.thedotnetmag.com
87. Концепция Microsoft .NET, URL: http://www.mindcracker.com
88. Концепция Microsoft .NET, URL: http://www.aspdotnetheaven.com
89. Концепция Microsoft .NET, URL: http://www.dotnetjunkies.com
90. Концепция Microsoft .NET, URL: http://www.dotnetnut.com
91. Объектно-ориентированное программирование, URL: http://www.dsic.upv.es/~wflp2000/
92. Диалект New Jersey языка програм мирования SML, URL: http://www.cm.bell­labs.com/cm/cs /what/smlnj
93. Категориальная абстрактная машина и язык программирования CAML, URL: http://www.cam.inria.fr
94. Язык програм мирования C#, URL: http://www.c-sharpcorner.com
95. Язык програм мирования ML, URL: http://www.harlequin.com/products/ads /ml
96. Язык програм мирования ML, URL: http://www.dcs.ed.ac.uk/home/s tg
97. Язык програм мирования Clean, URL: http://www.cs.kun.nl/~clean
98. язык программирования Haskell, URL: http://www.haskell.org
Введение в теорию программирования. Объектно-ориентированный подходЗыков С. В.
187
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]