RSS 2.0

Personal Info:

Joe Send mail to the author(s) leads the architecture of an experimental OS's developer platform, where he is also chief architect of its programming language. His current mission is to enable writing large-scale software that is reliable, secure, and scalable by-construction. Before this, Joe founded the Parallel Extensions to .NET project. He has been granted 19 patents, with 49 pending. When not working, Joe enjoys travelling with his wife, writing books, writing music, studying music theory & mathematics, and doing anything involving food & wine.

My books

My music

Disclaimer:
The content of this site are my own personal opinions and do not represent my employer's view in anyway.

© 2012, Joe Duffy

 
 Thursday, September 16, 2004

I've been happily hacking away at my managed Scheme implementation. Just a quick progress report. I'm ~50% done with my parser, a hand-crafted LR(1) top-down predictive kind of guy. I'm realizing now that this might have been a suboptimal choice as the Scheme grammar is fairly ambiguous at times and results in quite a bit of backtracking. E.g. take a look at how many freaking nonterminals start with '(' that can appear interchangably... Once I get this more baked, I might consider alternative algorithms as part of the optimization phase.

For those who are curious, I'm using this as my primary language reference.

My object model looks like this thus far:

Lexical tokens:

+ Token
  - EosToken
  - BooleanToken
  + IdentifierToken
    - VariableToken
    - KeywordToken
  - LiteralToken
  - NumberToken
  - CharacterToken
  - StringToken

Parse tree nodes:

+ TreeNode
  + ExpressionNode
    + LiteralExpressionNode
      - QuotationExpressionNode
      - SelfEvaluatingExpressionNode
    - ProcedureCallExpressionNode
    - LambdaExpressionNode
    - ConditionalExpressionNode
    - AssignmentExpressionNode
    - DerivedExpressionNode
    - MacroUseExpressionNode
    - MacroBlockExpressionNode
  - FormalsNode
  - BodyNode
  - SeuqneceNode
  + DatumNode
    - SimpleDatumNode
    + CompoundDatumNode
      - ListDatumNode
      - AbbreviationDatumNode
      - VectorDatumNode

The latter, as previously stated, is only ~50% complete. Still happy with progress thus far... Got a looooooooonng way to go.

9/16/2004 12:32:20 AM (Pacific Daylight Time, UTC-07:00)  #   

 

Recent Entries:

Search:

Browse by Date:
<September 2004>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
262728293012
3456789

Browse by Category:

Notables: