Модели и реализация транслирующих компонентов системы функционального программирования
Диссертация
Однако и в функциональных языках существуют ограничивающие параллелизм факторы. Одной из таких причин является набор языковых операций, специально ориентированный на последовательные вычисления или ограниченный параллелизм. В частности, в функциональном языке Лисп (Lisp) операторы для работы с данными обеспечивают выборку только одного компонента, а функциональный язык FP не предусматривает… Читать ещё >
Список литературы
- Moore G. Е. Cramming more components onto integrated circuits // Electronics Magazine. — NY: McGraw-Hill, 1965. — Vol. 38, No. 8. — P. 114−117.
- McCarthy J. Lisp 1.5 programmer’s manual / McCarthy J., Abrahams P. W., Edwards D. J., Hart T. P. and Levin M. I. т- 2nd ed. — Cambridge, MA: M.I.T. Press, 1962. — 106 p.
- Backus J. Can programming be liberated from the von Neumann style?: a functional style and its algebra of programs // Communications of the ACM.—NY: ACM Press, 1978. — Vol. 21, No. 8. —P. 613−641.
- Dennis J. B. Data flow schemas / Dennis J. В., Fosseen J. B. and Linderman J. P. // Proc. of the Internat. Symp. on Theoretical Programming. — London, UK: Springer-Verlag, 1972. — Lect. Notes Comput. Sci. —Vol. 5,—P. 187−216.
- Ackerman W. B. Data flow languages // IEEE Computer Magazine. —¦ Los Alamitos, CA: IEEE Computer Society Press, 1982. — Vol. 15, No. 2.1. P. 15−25.
- Veen A. H. Dataflow machine architecture // ACM Computing Surveys.
- NY: ACM Press, 1986. —Vol. 18, No. 4.— P. 365−396.
- Cann D. C. Retire Fortran?: a debate rekindled // Communications of the ACM.—NY: ACM Press, 1992. — Vol. 35, No. 8. —P. 81−89.
- ISO/IEC 1539−1:2004(E). Information technology: Programming languages: Fortran: Part 1: Base language. — Geneva: Internat. Organization for Standardization (ISO), Central Secretariat, 2004.
- ISO 7185:1990(E). Information technology, Programming languages: Pascal. — Geneva: Internat. Organization for Standardization (ISO), Central Secretariat, 1990.
- Bohm A., P. W. The Sisal 2.0 reference manual / Bohm A. P. W., Cann D. C., Feo J. T. and Oldehoeft R. R. — Livermore, CA, 1991. — 128 p. — (Tech. Rep. / Lawrence Livermore National Laboratory- UCRL-MA-109 098).
- Cann D. C. The optimizing Sisal compiler. — Livermore, CA, 1992. — 74 p. — (Tech. Rep. / Lawrence Livermore National Laboratory- UCRL1. MA-110 080).
- Feo J. T. Sisal 90 user’s guide / Feo J. Т., Miller P. J., Skedzielewski S. K. and Denton S. M. — Livermore, CA: Lawrence Livermore National Laboratory, Draft 0.96, 1995. — 80 p.
- Kasyanov V. N., Evstigneev V. A. et al. The system PROGRESS as a tool for parallelizing compiler prototyping // Proc. of Eighth SIAM Conf. on Parallel Processing for Scientific Computing (PPSC-97). — Minneapolis, 1997. — P. 301−306.
- Church A. The calculi of lambda-conversion // Annals of Mathematics Studies. —New Jersey: Princeton University Press, 1941. — 77 p.
- Ashcroft E. A. and Wadge W. W. Lucid: A formal system for writing and proving programs // SIAM J. on Computing. — 1976. — Vol. 5, No. 3. —P. 336−354.
- Nikhil R. S. Id language reference manual (version 90.1). — Cambridge, MA, 1991. — 54 p. — (Tech. Rep. / Massachusetts Institute of Technology, Laboratory for Computer Science, Computation Structures Group- Memo-284−2).
- McGraw J. R. Val language, description and analysis. — Livermore, CA, 1980. — 51. p. — (Tech. Rep. / Lawrence Livermore National Laboratory- UCRL-83 251, Rev. 1).
- Ravishankar С. V. Post: a language for dataflow programming // Ph.D. thesis. — Madison: University of Wisconsin, Computer Sciences Department, 1987. — 213 p.
- McGraw J. R. Parallel functional programming in Sisal: fictions, facts, and future. — Livermore, CA, 1993. — 40 p. — (Tech. Rep. / Lawrence Livermore National Laboratory- UCRL-JC-114 360).
- Hemmendinger D. Lazy evaluation and cancellation of computations // Proc. of the IEEE Internat. Conf. on, Parallel Processing (ICPP'85). — University Park, PA: IEEE Computer Society Press, 1985. — P. 840−842.
- Finkel R. A. Advanced programming language design. — Мёп1о Park, CA: Addison-Wesley, 1995. — 480 p.
- Cann D. C. Compilation techniques for high-performance applicative computation. — Fort Collins, CO, 1989. — 145 p. — (Tech. Rep. / Colorado State University, Computer Science Department- CS-89−108).
- Cann D. C. Sisal multiprocessing support / Cann D. C., Lee C.-C., Oldehoeft R. R. and Skedzielewski. S. K. — Livermore, CA, 1987. — (Tech. Rep. / Lawrence Livermore National Laboratory- UCID-21 115).
- Beard P. C. An implementation of Sisal for distributed-memory architectures. — Livermore, CA, 1995. — 45 p. — (Tech. Rep. / Lawrence Livermore National Laboratory- UCRL-LR-122 353).
- Gurd J. P., Kirkham С. C. and Watson I. The Manchester prototype data flow computer // Communications of the ACM. — NY: ACM Press, 1985. — Vol. 28, No. 1. — P. 34−52.
- Ranelletti J. E. Graph transformation algorithms for array memory optimization in applicative languages // Ph.D. thesis. — Davis, CA: University of California, Computer Science Department, 1987. — 222 p.
- Cann D. C., Wolski R. M. and Feo J. T. Sisal: Toward, resolving the parallel programming crisis. — Livermore, CA, 1992. — 8 p. -— (Tech. Rep. / Lawrence Livermore National Laboratory- UCRL-JC-109 774).
- Hendrickson C. PI Programming a real code in a functional language (part 1) // Proc. of the Cray User Group (CUG) conf., Santa Fe, New Mexico, September 23−27, 1991. — 1991. — P. 333−344.
- Stapleton L. Livermore labs offers Cray time free // Supercomputing Review. — San Diego, CA: London Manhattan Group of Companies, 1991. —Vol. 4, No. 5. —P. 14−15.
- Watson I. and Gurd J. R. A prototype data flow computer with token labeling // Proc. of the AFIPS National Computer Conf., June 1979. — 1979. — Vol. 48, No. 6. — P. 623−628.
- Adams J. C. Fortran 90 handbook: complete ANSI/ISO reference / Adams J. C., Brainerd W. S., Martin J. Т., Smith В. T. and Wagener J. L. — NY: Intertext Publications, Inc. / McGraw-Hill, Inc., 1993. — 740 p.
- Бирюкова Ю. В. Sisal 90 Руководство пользователя. — Новосибирск, 2000. — 84 с. — (Препр. / РАН. Сиб. Отд-е. ИСИ- № 72).
- Skedzielewski S. К. and Yates R. K. Fibre: An external format for Sisal and IF1 data objects, version 1.1. — Livermore, CA, 1988. — lip. — (Tech. Rep. / Lawrence Livermore National Laboratory- M-154, Rev. 1).
- Касьянов В. H., Бирюкова Ю. В. и Евстигнеев В. А. Функциональный язык Sisal // Поддержка супервычислений и интернет-ориентированные технологии. — Новосибирск, 2001. — С. 54−67.
- Касьянов В. Н. Оптимизирующие преобразования программ. — М.: Наука, 1988, —336 с.
- Котов В. E. Сети Петри. — M.: Наука, 1984. — 160 с.
- Бсрс А. А. Операторные структуры // Тр. симпозиума теоретическому программированию, 7−11 августа, 1972. —Новосибирск: ВЦ СО АН СССР, 1972. — Ч. 2. — С. 44−82.
- Касьянов В. Н. Иерархические графы и графовые модели: вопросы визуальной обработки // Проблемы систем информатики и программирования. — Новосибирск, 1999. — С. 7−32.
- Легалов А. И., Казаков Ф. А. и Кузьмин Д. А. Потоковая модель параллельных вычислений // Вестник КГТУ. Сб. научных трудов. — Красноярск: КГТУ, 1996. — Вып. 6. — С. 60−67.
- Дейкстра Э. Дисциплина программирования / Пер. с англ., под ред. Любимского Э. 3. — М.: Мир, 1978. — 275 с.
- Cormen Т. Н. Introduction to algorithms / Cormen Т. H., Leiserson С. Е., Rivest R. L. and Stein C. — 2nd ed. — NY: McGraw-Hill, 2001. — 1180 P
- Ахо А. и Ульман Дж. Теория синтаксического анализа, перевода и компиляции. Т.1. Синтаксический анализ. — М.: Мир, 1978. — 612 с.
- Ершов А. П. и Грушецкий В. В. Метод описания алгоритмических языков, ориентированных на реализацию. — Новосибирск, 1977. — 40 с. — (Препр. / АН СССР. Сиб. отд-ние. ВЦ.- № 74).
- Lesk М. Е. and Schmidt Е. Lex a lexical analyzer generator. — NY: Murray Hill, 1975. — 13 p. — (Tech. Rep. / AT&T Bell Labs- No. 39).i
- Евстигнеев В. А. и Касьянов В. Н. Теория графов: алгоритмы обработки деревьев. — Новосибирск: Наука, 1994. — 360 е.: ил.
- Moll R. N., Arbib М. A. and Kfoury A. J. An introduction to formal language theory. —NY: Springer-Verlag, 1988. —203 p.
- Appel A. W. and Palsberg J. Modern compiler implementation in Java. — 2nd ed. — UK: Cambridge University Press, 2002. — 501 p.
- Johnson S. C. YACC yet another compiler compiler. — NY: Murray Hill, 1975. — 33 p. — (Tech. Rep. / AT&T Bell Labs- No. 32).
- Gagnon E. M. SableCC, an object oriented compiler framework // M. S. thesis. — Montreal, Canada: McGill University, 1998. — 97 p.
- Кузнецов Б. П. Психология автоматного программирования // Журнал BYTE. — 2000. — № 11. — С. 22−29.
- Легалов А. И. Разработка трансляторов в учебном курсе // Тез. t междунар. научно-методической конф. «Новые информационныетехнологии в университетском образовании», Новосибирск, 19−22 марта, 1996. — 1996.
- Gurevich Y. Evolving algebras 1993: Lipari guide // Specification and validation methods. —NY: Oxford University Press, 1995. —P. 9−36.
- Шалыто A. A. Switch-технология // Алгоритмизация и программирование задач логического управления. — СПб.: Наука, 1998. —628 с.
- Штучкин А. А. и Шалыто А. А. Совместное использование теории построения компиляторов и SWITCH-технологии // Тр. X Всеросс. научно-методической конф. «Телематика-2003″. — СПб.: СПбГИТМО (ТУ), 2003.
- Любченко В. С. Конечно-автоматная технология программирования // Тр. междунар. научно-методической конф. „Телематика '2001″. — СПб.: СПбГИТМО (ТУ), 2001. — С. 127−128.
- Вирт Н. и Иенсен К. Паскаль. Руководство для пользователя и описание языка. — М.: Финансы и статистика, 1989. — 255 с.
- Kutter P. W. and Pierantonio A. Montages specifications of realistic programming languages // J. of Universal Computer Science. — 1997. — Vol. 3, No. 5. —P. 416−442.
- ITU-T Recommendation Z.100. Specification and Description Language (SDL). — Geneva: ITU-T, 1994.
- Вельбицкий И. В. Технология программирования. — Киев: Техника, 1984. —274 с.
- Касьянов В. И. и Поттосин И. В. Методы построения трансляторов / Отв. ред. Ершов. А. П. — Новосибирск: Наука, 1986. — 344 с.
- Sarkar V. and Cann D. С. POSC: A partitioning and optimizing Sisal compiler. — Livermore, С A, 1990. — 14 p. — (Tech. Rep. / Lawrence Livermore National Laboratory- UCRL-102 737).
- Bohm A. P. W. and Sargeant J. Efficient dataflow code generation for Sisal. — Manchester, UK, 1985. — 29 p. — (Tech. Rep. / University of Manchester, Department of Computer Science- UMCS-85−10−2).
- Freeh V. W. and Andrews G. R. fsc: A Sisal compiler for both distributed and shared-memory machines // Conf. on High-Performance Functional Computing, Denver, CO, April 9−11, 1995. — 1995. — 11 p.
- Garza-Salazar D. A., Bohm A. P. W. D-OSC: A Sisal compiler for distributed memory machines // Proc. of the 2nd Parallel Computation and Scheduling Workshop (PCSW'97). — Ensenada, Mexico, 1997. — 13 p.
- The Unicode Standard / The Unicode Consortium. — Version 4.0. — Boston, MA: Addison-Wesley, 2003.
- ISO/IEC 10 646:2003(E). Information technology: Universal Multiple-Octet Coded Character Set (UCS). — Geneva: Internat. Organization for Standardization (ISO), Central Secretariat, 2003.
- ANSI X3.4:1986. Information systems: coded character sets: 7-Bit American national Standard Code for Information Interchange (7-Bit ASCII). — NY: American National Standards Institute (ANSI), 1986.
- Робинсон У. C# без лишних слов / Пер. с англ. — М.: ДМК Пресс, 2002. — 352 е.: ил. (Серия „Для программистов“).
- ISO/IEC 9899:1999(Е). Programming languages: С. — Geneva: Internat. Organization for Standardization (ISO), Central Secretariat, 1999.“
- ISO/IEG 14 882:2003(E). Programming languages: С++.— Geneva: Internat. Organization for Standardization (ISO), Central Secretariat, 2003.
- ISO/IEC 14 977:1996(E). Information technology: Syntactic metalanguage: Extended BNF. — Geneva: Internat. Organization for Standardization (ISO), Central Secretariat, 1996.
- ANSI/IEEE 754−1985. IEEE standard for binary floating-point arithmetic. — NY: Institute of Electrical and Electronics Engineers, 1985 (Reprinted in SIGPLAN Notices, 22(2):9−25, 1987).
- Стасенко А. П., Пыжов К. А., Идрисов P. И. Компилятор в системе функционального программирования SFP // Вестник НГУ. Сер. Информационные технологии. — Новосибирск: Изд-во НГУ, 2008. — 11 с.
- Kasyanov V. N., Stasenko А. P., Gluhankov М. P., Dortman Р. А., Pyjov К. A., Sinyakov A. I. SFP An interactive visual environment for supporting of functional programming and supercomputing // WSEAS
- Transactions on Computers. — Athens: WSEAS Press, 2006. — Vol. 5, N 9. — P. 2063−2070.
- Стасенко А. П. Система функционального программирования языка Sisal // XII Международная научно-методическая конференция „Новые информационные технологии в университетском образовании“. — Новосибирск: НГУ, 2007. — С. 162−165.
- Стасенко А. П. Внутреннее представление системы функционального программирования Sisal 3.0. — Новосибирск, 2004.54 с. — (Препр. / РАН. Сиб. отд-е. ИСИ- № 110).
- Стасенко А. П., Синяков А. И. Базовые средства языка Sisal 3.1.
- Новосибирск, 2006. — 60 с. — (Препр. / РАН. Сиб. отд-е. ИСИ- № 132).
- Глуханков М. П., ДоргманП. А., Павлов А. А., Стасенко А. П.
- Транслирующие компоненты системы функционального программирования SFP // Современные проблемы конструирования программ. — Новосибирск: Институт систем информатики имени А. П. Ершова СО РАН, 2002. — С. 69−87.
- Стасенко А. П. Система интерфейсов транслятора во внутреннее представление IR1 // Методы и инструменты конструирования и оптимизации программ. — Новосибирск: Институт систем информатики имени А. П. Ершова СО РАН, 2005. — С. 229−238.
- Стасенко А. П. Графический метаязык для описания транслятора // Сборник трудов аспирантов и молодых ученых „Молодая информатика“. — Новосибирск: Институт систем информатики имени А. П. Ершова СО РАН, 2005. — С. 105−113.
- Стасенко А. П. Обзор потоковых языков программирования // Проблемы интеллектуализации и качества систем программирования.
- Новосибирск: Институт систем информатики имени А. П. Ершова СО РАН, 2006. — 12 с.
- Stasenko A. P. Sisal 3.1 language structures decomposition // Bull. Novosibirsk Сотр. Center. Ser. Computer Science. — Novosibirsk, 2006. — Iss. 24. — 8 p.
- Стасенко А. П. Автоматная модель визуального описания синтаксического разбора // Методы и инструменты конструирования программ. — Новосибирск: ИСИ СО РАН, 2007. — С. 186−209.
- Стасенко А. П. Автоматная модель визуального описания синтаксического разбора // Вычислительные технологии. — Новосибирск: ИВТ СО РАН, 2008. — Т. 13, N. 5. — С. 70−87.
- Kasyanov V. N., Stasenko A. P. Sisal 3.1 language structures decomposition // Parallel Computing Technologies. — Lecture Notes in Computer Science, 2007. — Vol. 4671/2007. — P. 62−73.
- Kasyanov V. N., Stasenko A. P. Sisal 3.2 language structures decomposition // Lecture Notes in Electrical Engineering. — Berlin: Springer-Verlag, 2009. — Vol. 28. — P. 582−594.
- Стасенко А. П. Графический метаязык для описания транслятора // Тез. докл. V Всеросс. конф. молодых ученых по математическому моделированию и информационным технологиям. — Новосибирск: ИВТ СО РАН, 2004. — С. 53.
- Стасенко А. П. Совмещение достоинств Microsoft Dynamic HTML и W3C-coBMecTHMbix HTML в системе HTML-справки // Конф.-конкурс „Технологии Microsoft в информатике и программировании“: Тез. докл. — Новосибирск, 2005. — С. 45−47.
- Стасенко А. П. Использование автоматного подхода для построения компилятора переднего плана // Конф.-конкурс
- Технологии Microsoft в теории и практике программирования»: Тез. докл. — Новосибирск, 2006. — С. 37−39.
- Рис. 1. Иерархия основных интерфейсов внутреннего представления.421. Рис. 2. Вход—>вход.461. Рис. 3. Выход—>вход.461. Рис. 4. Вход—>выход.461. Рис. 5. Выход—>выход.46
- Рис. 6. Иерархия интерфейсов коллекций внутреннего представления.47
- Рис. 7. Иерархия интерфейсов итераторов коллекций ВП.48
- Рис. 8. Иерархия интерфейсов пар внутреннего представления.49
- Рис. 9. Иерархия интерфейсов библиотеки irlxml.dll.49
- Рис. 10. Иерархия интерфейсов библиотеки irlview.dll.51
- Рис. 11. Иерархия эффективно разбираемых грамматик.56
- Рис. 12. Иерархия языков эффективно разбираемых грамматик.57 '
- Рис. 13. Переход 1-го типа.71
- Рис. 14. Переход 2-го типа.71
- Рис. 15. Переход 3-го типа.71
- Рис. 16. Расширенная схема задающая контекстно-зависимые языки.75
- Рис. 17. Аналог входа в блок try.76
- Рис. 18. Аналог выхода из блока try.76
- Рис. 19. Применение схем VF для разбора лексики и синтаксиса.77
- Рис. 20. Схема транслятора модуля программы на языке Sisal 3.1 в ВП IR1 .86
- Рис. 21. Иерархия основных интерфейсов транслятора (txt2irl.dll).89
- Рис. 22. Иерархия интерфейсов потоков символов и лексем транслятора.91
- Рис. 23. Иерархия интерфейсов событий трансляции.92
- Рис. 24. Иерархия интерфейсов поддержки межмодульных связей.92
- Рис. 25. Граф функции phi.180
- Рис. 26. Граф составной вершины Select.180
- Рис. 27. Первый граф составной вершины Select.181
- Рис. 28. Второй граф составной вершины Select.181
- Рис. 29. Третий граф составной вершины Select.181
- Рис. 30. Четвертый граф составной вершины Select.181
- Рис. 31. Граф функции nri.184
- Рис. 32. Граф составной вершины LoopA.184
- Рис. 33. Первый граф составной вершины LoopA.184
- Рис. 34. Второй граф составной вершины LoopA.184
- Рис. 35. Третий граф составной вершины LoopA.184
- Рис. 36. Четвертый граф составной вершины LoopA.184
- Рис. 37. Граф функции sum.193
- Рис. 38. Пример схемы задающей регулярный язык.-.197
- Рис. 39. Пример схемы задающей детерминированный КС язык.197
- Рис. 40. Пример схемы задающей контекстно-зависимый язык.-.198
- Рис. 41. Лексический анализ. Часть 1.199
- Рис. 42. Лексический анализ. Часть 2.:.2001. Рис. 43. Комментарий.200
- Рис. 44. Идентификатор или ключевое слово. Часть 1.201
- Рис. 45. Идентификатор или ключевое слово. Часть 2.202
- Рис. 46. Двойственные лексемы. Часть 1.203
- Рис. 47. Двойственные лексемы. Часть 2.203
- Рис. 48. Символьный литерал.204
- Рис. 49. Символьный литерал, десятичный код.205
- Рис. 50. Символьный литерал, шестнадцатеричный код.205
- Рис. 51. Символьный литерал, восьмеричный код.206
- Рис. 52. Числовой литерал.207
- Рис. 53. Целочисленный литерал.208
- Рис. 54. Вещественный литерал.208
- Рис. 55. Вещественный литерал одинарной точности.209
- Рис. 56. Вещественный литерал двойной точности.210
- Рис. 57. Строковой литерал.211
- Рис. 58. Буквальный строковой литерал.212
- Рис. 59. Окончание строкового литерала.213
- Рис. 60. Обычный строковой литерал.214
- Рис. 61. Обычный строковой литерал, десятичный код.215
- Рис. 62. Обычный строковой литерал, восьмеричиый код.216
- Рис. 63. Обычный строковой литерал, шестнадцатеричный код.217
- Рис. 64. Синтаксический анализ.218
- Рис. 65. Трансляция типа.•.2191. Рис. 66. Тип массива.2201. Рис. 67. Тип потока.:.220
- Рис. 68. Тип выражения.220
- Рис. 69. Трансляция множества типов.220
- Рис. 70. Трансляция типа записи.221
- Рис. 71. Трансляция типа функции.222
- Рис. 72. Трансляция имени типа.223
- Рис. 73. Трансляция типа союза.224
- Рис. 74. Трансляция операнда алгебраического выражения. Часть 1.225
- Рис. 75. Трансляция операнда алгебраического выражения. Часть 2.225
- Рис. 76. Трансляция выражения if.226
- Рис. 77. Пропуск содержимого выражения if.227
- Рис. 78. Разбор части else выражения if.228