|Table of Contents|

[1] Cao Jing, Xu Baowen, Zhou Yuming, et al. Shrek:a dynamic object-oriented programming language [J]. Journal of Southeast University (English Edition), 2009, 25 (1): 31-35. [doi:10.3969/j.issn.1003-7985.2009.01.008]
Copy

Shrek:a dynamic object-oriented programming language()
Share:

Journal of Southeast University (English Edition)[ISSN:1003-7985/CN:32-1325/N]

Volumn:
25
Issue:
2009 1
Page:
31-35
Research Field:
Computer Science and Engineering
Publishing date:
2009-03-30

Info

Title:
Shrek:a dynamic object-oriented programming language
Author(s):
Cao Jing1 3 Xu Baowen2 3 Zhou Yuming2 3
1School of Computer Science and Engineering, Southeast University, Nanjing 210096, China
2Department of Computer Science and Technology, Nanjing University, Nanjing 210093, China
3Software Quality Institute of Jiangsu Province, Nanjing 210096, China
Keywords:
dynamic typing metaclass programming computational reflection native method object-oriented programming language
PACS:
TP312
DOI:
10.3969/j.issn.1003-7985.2009.01.008
Abstract:
From a perspective of theoretical study, there are some faults in the models of the existing object-oriented programming languages.For example, C++ does not support metaclasses, the primitive types of Java and C# are not objects, etc.So, this paper designs a programming language, Shrek, which integrates many language features and constructions in a compact and consistent model.The Shrek language is a class-based purely object-oriented language.It has a dynamical strong type system, and adopts a single-inheritance mechanism with Mixin as its complement.It has a consistent class instantiation and inheritance structure and the ability of intercessive structural computational reflection, which enables it to support safe metaclass programming.It also supports multi-thread programming and automatic garbage collection, and enforces its expressive power by adopting a native method mechanism.The prototype system of the Shrek language is implemented and anticipated design goals are achieved.

References:

[1] Kay A C.The early history of smalltalk[J].ACM SIGPLAN Notices, 1993, 28(3):69-95.
[2] Goldberg A, Robson D.Smalltalk-80:the language and its implementation[M].Massachusetts:Addison Wesley, 1983.
[3] Scott M L.Programming language pragmatics[M].2nd ed.Morgan Kaufmann Press, 2005.
[4] Friedman D P, Haynes C T, Wand M. Essentials of programming languages [M].3rd ed.MIT Press, 2008.
[5] Meijer E, Drayton P.Static typing where possible, dynamic typing when needed:the end of the cold war between programming languages[C]//OOPSLA Workshop on Revival of Dynamic Languages.New York:ACM Press, 2004.
[6] Bracha G, Cook W.Mixin-based inheritance[C]//Proc Joint ACM Conference on Object-Oriented Programming, Systems, Languages and Applications and the European Conference on Object-Oriented Programming.New York:ACM Press, 1990:303-311.
[7] Ancona D, Lagorio G, Zucca E.Jam—designing a Java extension with mixins[J].ACM Transactions on Programming Languages and Systems, 2003, 25(5):641-712.
[8] Bouraqadi N.Safe metaclass composition using mixin-based inheritance[J].Journal of Computer Languages, Systems and Structures, 2004, 30(1/2):49-61.
[9] Forman I R, Danforth S H.Putting metaclasses to work[M].New York:Addison Wesley, 1998.
[10] Graube N.Metaclass compatibility[C]//Proc of the 4th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications.New York:ACM Press, 1989:305-315.
[11] Bouraqadi N, Ledoux T, Rivard F.Safe metaclass programming[C]//Proc of the 13th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications.New York:ACM Press, 1998:84-96.
[12] Cao Jing, Xu Baowen.Safe metaclass programming based on non-strictly parallel single inheritance[C]//Proc of the 5th Conference on the Development and Education of Programming Languages.Beijing:Tsinghua University Press, 2006:19-26.(in Chinese)
[13] Smith B C.Reflection and semantics in Lisp[C]//Proc of the 11th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages.New York:ACM Press, 1984:23-35.
[14] Maes P.Concepts and experiments in computational reflection[C]//Proc of the 2nd ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications. New York:ACM Press, 1987:147-155.
[15] Ferber J.Computational reflection in class based object oriented languages[C]//Proc of the 4th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications.New York:ACM Press, 1989:317-326.
[16] Sullivan G.Aspect-oriented programming using reflection and metaobject protocols[J].Communications of the ACM, 2001, 44(10):95-97.
[17] Kojarski S, Lorenz D H.AOP as a first class reflective mechanism[C]//Proc of the 19th ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications.New York:ACM Press, 2004:216-217.
[18] Kiczales G, Rivieres J, Bobrow D G.The art of the metaobject protocol[M].MIT Press, 1991.
[19] Gosling J, Joy B, Steele G, et al.The Java language specification [M].3rd ed.New York:Addison Wesley, 2005.

Memo

Memo:
Biographies: Cao Jing(1980—), male, graduate;Xu Baowen(corresponding author), male, doctor, professor, bwxu@seu.edu.cn.
Foundation items: The National Science Fund for Distinguished Young Scholars(No.60425206), the National Natural Science Foundation of China(No.60633010), the Natural Science Foundation of Jiangsu Province(No.BK2006094).
Citation: Cao Jing, Xu Baowen, Zhou Yuming.Shrek:a dynamic object-oriented programming language[J].Journal of Southeast University(English Edition), 2009, 25(1):31-35.
Last Update: 2009-03-20