DocumentCode
2645846
Title
Language subsetting via reflection and overloading
Author
Lusth, John C. ; Kraft, Nicholas A. ; Tacey, James
Author_Institution
Univ. of Alabama, AL, USA
fYear
2009
fDate
18-21 Oct. 2009
Firstpage
1
Lastpage
6
Abstract
Guy L. Steele Jr., in the paper ¿Growing a Language,¿ makes a strong argument for languages that can be easily extended. Just as importantly, one should be able to shrink a language as well. Two important areas wherein one might wish to restrict language features are education and coding under style guidelines. There are a number of ways to implement restrictions, many of which depend upon reparsing the source code. An alternative approach exists if the language in question has a rich enough set of features for reflection and overloading. If so, these features can be used to detect violations, both dynamically and statically. The latter methodology has the advantage that restrictions are implemented in the very language that is being restricted and do not depend upon parsing source code. This paper explores using overloading and reflection to enforce restrictions in such a way that enforcement is turned on simply by including a library. An example library is developed that is suitable for students taking an introductory programming course.
Keywords
computer science education; programming languages; education; introductory programming course; language subsetting; library; overloading; reflection; Application software; Code standards; Computer languages; Guidelines; Investments; Libraries; Programming profession; Reflection; Software maintenance; Standards organizations; About four; alphabetical order; key words or phrases; separated by commas (for suggestions: Cameraready, FIE format, Preparation of papers Two-column format);
fLanguage
English
Publisher
ieee
Conference_Titel
Frontiers in Education Conference, 2009. FIE '09. 39th IEEE
Conference_Location
San Antonio, TX
ISSN
0190-5848
Print_ISBN
978-1-4244-4715-2
Electronic_ISBN
0190-5848
Type
conf
DOI
10.1109/FIE.2009.5350866
Filename
5350866
Link To Document