np

Languages and libraries

programming language

SHOW HN2013

np

a lexer, parser, interpreter and web runtime (np, a 5-weekend project)

np-lang.org

#interpreter#programming language#lexer parser#language design#lisp-like syntax

122points
44comments
#177of 1,739 in 2013
Top 11%of 2013 by points

How HN took it

DebatedReal support and real criticism

8 positive, 3 neutral or asking, 1 mixed, 5 critical, out of 17 comments about the project. Thread score +0.24.

Execution: 2 for, 4 againstIdea: 3 for, 0 againstDocs: 1 for, 1 againstDesign: 1 for, 0 against

The thread, comment by comment

Each row is a top-level comment and its replies, in HN's order. Select a cell to open that comment on HN.

positive neutral or mixed critical about another commenter or something else the maker

What HN said

What people liked

  • Docs are excellent for a short project.

    From 1 comment
    • I've only skimmed it so far, but the docs seem excellent for a mere 5-weekend project. That is perhaps the thing that impresses me most.
      andrewflnr on HN
  • Impressive that it was built in five weekends.

    From 2 comments
    • I also am super impressed that it took the OP only 5 week ends to do this. For me it would probably take 1 year if I don't give up on the way...
      S4M on HN
    • If you did this in your spare time or even other wise. 5 weeks is amazingly short time for a project of this size. Good work done!
      kamaal on HN
  • Syntax experiment is refreshing compared with C-style languages.

    From 1 comment
    • I have been coding CoffeeScript for a while and slowly got rid of it's parentheses down to doing `do someFunction`. When I learned about Clojure and got excited to learn it (but…
      goldfeld on HN

Objections

  • Bugs in semicolon handling and function invocation behaviour.

    From 2 comments
    • This is an inspiring project. It would have taken me far more than five weekends to create this, so you can feel smug knowing you're about ten times as efficient as a random HN…
      mkdir on HN
    • Actually—I think you did explain properly. I must confess that I jumped into the sandbox before reading the documentation, and then I only checked the documentation when ran into…
      mkdir on HN
  • Sandboxed interpreter throws exceptions in Chrome.

    From 3 comments
    • Failing in chrome: ``` java.lang.ArrayIndexOutOfBoundsException: 1 at np.LibRequest.parseCookies(LibRequest.java:37) at np.LibRequest.<init>(LibRequest.java:26) at…
      niggler on HN
    • Looks cool but the sandboxed interpreter fails to run in my instance of Chrome (v25 on Mac OS X): >Error: java.lang.NullPointerException…
      iskander on HN
    • ``` oki-doki = 42; ``` will cause an exception too.
      huhtenberg on HN
  • Recursion does not work without a workaround.

    From 2 comments
    • This is an inspiring project. It would have taken me far more than five weekends to create this, so you can feel smug knowing you're about ten times as efficient as a random HN…
      mkdir on HN
    • Ah, I'm so dense! Sure, there is also "math.pi" as a built-in for that. (And I fixed this grave rounding error) I also discovered a scope problem with the recursion example you…
      Udo on HN

Requests

  • Suggestions for learning resources such as the Dragon Book.

    From 2 comments
    • "I wanted to explore what it feels like to write a parser, a lexer, and an interpreter without using a framework or some other ready-made solution" This is an excellent exercise…
      peterkelly on HN
    • The single best resource on this topic is the "Dragon Book" Your advice is great in general, but I wish people would back up statements like this with some context, for example,…
      stiff on HN
  • Fix the bugs found in testing.

    From 2 comments
    • This is an inspiring project. It would have taken me far more than five weekends to create this, so you can feel smug knowing you're about ten times as efficient as a random HN…
      mkdir on HN
    • Ah, I'm so dense! Sure, there is also "math.pi" as a built-in for that. (And I fixed this grave rounding error) I also discovered a scope problem with the recursion example you…
      Udo on HN

Questions

  • Why use Lisp-style (f x) call syntax instead of f(x)?

    From 1 comment
    • I'm curious: why did you choose the lisp-like (f x) syntax for function calls?
      akkartik on HN
  • Will development continue?

    From 1 comment
    • This is an inspiring project. It would have taken me far more than five weekends to create this, so you can feel smug knowing you're about ten times as efficient as a random HN…
      mkdir on HN

Alternatives named

  • Dragon Book and SICP as compiler learning resources.

    From 2 comments
    • "I wanted to explore what it feels like to write a parser, a lexer, and an interpreter without using a framework or some other ready-made solution" This is an excellent exercise…
      peterkelly on HN
    • "To my surprise, making decisions about how scope should work was actually the hardest part." Perhaps a thorough reading of SICP would enlighten you as to how scope should be…
      gngeal on HN
  • LLVM tutorial.

    From 1 comment
    • > Could you post any helpful resources you used? Not a lot initially. I did have a look at the LLVM tutorial, which is absolutely great, but I eventually closed that tab because…
      Udo on HN

Category, keywords, summaries and labels on this page were made by AI (Thread Reader v2) and not checked by hand. Each point links to the comments it came from.

Add a badge to your READMEShown on HackerShow
[![Shown on HackerShow](https://hackershow.org/badge.svg)](https://hackershow.org/show/5390954)