DCT use cases - draft

Jacob Carlborg doob at me.com
Tue May 22 11:10:58 PDT 2012


On 2012-05-22 19:14, Roman D. Boiko wrote:

> This is a draft of use cases for all DCT libraries combined.

This seems to be mostly focused on lexing? See below for some ideas.

> Scope for DCT is to provide semantic analysis, but not code generation
> (that may become another project some time). Information about projects,
> etc., is useful for e.g., analysing dependencies.

That's a good point.

> I'll improve overall structure and add some explanations + examples
> tomorrow. Could you elaborate on specific points which are vague?

I would probably have specified some high level use cases first, like:

* IDE integration
* Refactoring tool
* Static analysis
* Compiler
* Doc generating
* Build tool

In general, use cases that can span several compile phases, i.e. lexing, 
parsing, semantic analysis and so on. Some of these use cases can be 
broken in to several new use cases at a lower level. Some examples:

IDE integration:

* Syntax highlighting
* Code completion
* Showing lex, syntax and semantic errors

Refactoring:

* Cross-referencing symbols

Build tool:

* Tracking module dependencies

Doc generating:

* Associate a declaration and its documentation

Some of these "sub" use cases are needed by several tools, then you can 
either repeat them or pick unique sub use cases for each high level use 
case.

Then you can get into more detail over lower level use cases for the 
different compile phases. If you have enough to write you could probably 
have a post about the use cases for each phase.

It seems some of your use cases are implementation details or design 
goals, like "Store text efficiently".

It would not be necessary to start with the high level goals, but it 
would be nice. The next best thing would probably be to start with the 
use cases compiler phase you already have started on, that is lexing, if 
I have understood everything correctly.

-- 
/Jacob Carlborg


More information about the Digitalmars-d mailing list