Skip to content

Latest commit

 

History

History
executable file
·
69 lines (42 loc) · 2 KB

free-2.md

File metadata and controls

executable file
·
69 lines (42 loc) · 2 KB

Free project 2

The user and a language

This section describes who the project would serve and why a language might be a good way to meet their needs.

What's the need?

What need is met by your idea? Who are you helping? What is that person's experience like now? What would their experience be like if you could help them?

Why a language?

Why is a DSL appropriate for your user(s)? How does it address the need?

Why you?

What excites you about this idea? How did you come up with it?

Domain

Describe the project's domain in five words.

Interface (syntax)

How might the user interact with the language? What does programming look like? Why is this the right way to interact with the problem domain?

Operation (semantics)

What might happen when a program runs? How does a program interact with the user? What kinds of errors might occur, and how might they be communicated to the user?

Expressiveness

What should be easy to do in this language? What should be possible, but difficult? What should be impossible or very difficult?

Related work

Are there any other DSLs in this domain? If not, describe how you know there aren't and conjecture why not. If so, describe them and provide links. How well do they address the need? Are there any particularly admirable qualities of the language? Are there parts of the language you think could be improved?

The Project

This section examines whether the idea makes for a good CS 111 project.

Suitability

If someone were to work on this project, what percentage of their time would be spent directly engaging in the language aspects of this project (e.g., making language design decisions), as opposed to "systems" aspects of the project (e.g., implementing a complicated semantics that doesn't require a lot of language design)?

Scope

How big an idea is this? How ambitious is this project?

Benefits and drawbacks

Why might this be a good idea for a project? Why might this not be a good idea project?