loading page

A Module System for a Genaral-Purpose Blocks Lanaguge
  • よしき
よしき

Corresponding Author:[email protected]

Author Profile

Abstract

Abstract

Our team, whose members have been interested in making end-user programming systems, is inventing a new blocks language that is not only beginner-friendly but also is capable of scaling to support larger applications. One of design issues we are concerned with is how to facilitate the world-wide community of users to be able to share their projects, sprites, libraries, etc., and create more in a mash-up style development.

Our approach for this problem is to create a language that has strong notion of modularity. Modularity enables components created by different users at different times to work together without worrying about conflicts. At the same time, such a language feature should not be a burden for beginners to learn. We are working on a new language called (tentatively) GP, and we are exploring a module system for it.

In this paper, we present the key ideas around the module system. A module in GP is a unit of encapsulated code and data. It provides a namespace for code inside, and may have some helper classes and functions that are hidden inside. A module can provide an extension to system classes without conflicting with other modules. A module can be serialized and loaded into another session. Yet, the authoring tool manages its creation and a beginner user does not have to deal with the concept of modules.