[{"data":1,"prerenderedAt":414},["ShallowReactive",2],{"project-37274882":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":9,"maker":10,"posted_at":11,"year":12,"points":13,"comments":14,"rank_in_year":15,"shown_in_year":16,"top":17,"tier":18,"category":19,"subcategory":20,"format":21,"keywords":22,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":41,"post_text":43,"what":44,"said":67,"maker_in_thread":147,"shape":157,"grid":162,"attempts":377,"same_week":378,"maker_shows":42,"maker_hidden":405,"reader_version":406,"card":407},"37274882","Crumb","Going into freshman year, figured I should build an interpreter","title","Show HN: Going into freshman year, figured I should build an interpreter",null,"liamilan",1693070890,2023,138,79,462,3109,15,"notable","languages","programming language interpreter","cli",[23,24,25,26],"interpreter","functional programming language","garbage collection","c interpreter","loved",0.322,{"positive":30,"neutral":31,"mixed":32,"critical":33},12,22,0,1,35,{"docs":36,"design":37,"execution":38,"idea":40},{"positive":32,"critical":32},{"positive":33,"critical":32},{"positive":39,"critical":33},3,{"positive":33,"critical":32},[39,32,32,32,32,32,39,39,39,39,32,42,39,42,42,39,42,42,39,39,42,32,42,42,42,32,32,32,33,42,32,32,32,32,42,42,32,32,32,39],5,"Hi all!\n\nI'm going into my freshman year, and figured that the best way to prepare for the intro to programming Racket course would be to implement my own garbage-collected, dynamically typed, functional programming language in C ;)\n\nAnyways... here's the repo:\nhttps:\u002F\u002Fgithub.com\u002Fliam-ilan\u002Fcrumb\n\nI started learning C over the summer, so I still have a whole lot to learn... Any feedback would be greatly appreciated! :D",{"problem":45,"audience":9,"pricing":9,"motivation":51,"time_to_build":55,"stack":59,"openness":64,"stage":65,"team_size":66},{"value":46,"source":47,"evidence":48},"Prepares the maker for an intro programming course by building their own language.","maker",[49],{"id":50},"post",{"value":52,"source":47,"evidence":53},"Prepare for freshman intro programming course (Racket) by implementing a language.",[54],{"id":50},{"value":56,"source":47,"evidence":57},"Maker started learning C over the summer.",[58],{"id":50},[60],{"value":61,"source":47,"evidence":62},"C",[63],{"id":50},"open_source","unknown","solo",{"praise":68,"objections":100,"requests":112,"questions":128,"alternatives":136},[69,89],{"value":70,"source":71,"evidence":72},"Impressive achievement for a incoming freshman","commenter",[73,77,81,85],{"id":74,"by":75,"text":76},"37285842","delta_p_delta_x","Nicely done. You're a freshman, picked up C over the summer, and have already built an interpreter for a language that you haven't officially been taught yet, and have a blog…",{"id":78,"by":79,"text":80},"37289171","acheong08","This is seriously impressive. I’m also just about to enter college for software engineering and projects like this make me concerned about how I’m even gonna compete with such…",{"id":82,"by":83,"text":84},"37298214","wxce","This is so good for your age! I don't think I made anything beyond a calculator or a website before entering college.",{"id":86,"by":87,"text":88},"37292504","cod1r","I wish I was this talented when I was going into college. Nice job though. :)",{"value":90,"source":71,"evidence":91},"Well-designed blog and logo",[92,96],{"id":93,"by":94,"text":95},"37282601","xrd","Man, your blog (https:\u002F\u002Fwww.liamilan.com\u002F) is wonderful. I wish you had an RSS feed, hint, hint.",{"id":97,"by":98,"text":99},"37282517","mindvirus","Love it! I learned so much from building projects like this! None of mine had cool logos like yours - this looks really pro. Have you tried teaching Crumb to GPT4? I bet it could…",[101],{"value":102,"source":71,"evidence":103},"C is risky due to undefined behavior and memory bugs; prefer other languages",[104,108],{"id":105,"by":106,"text":107},"37282912","38","this is great that you're getting into programming, but please, do yourself a favor and move away from C. its 2023. C still has its place, but unless you really need the benefits…",{"id":109,"by":110,"text":111},"37291553","yeputons","My main advice: never trust C, C++, or their compilers. Undefined behavior bites. Even if you just care about the latest 64-bit Ubuntu Linux LTS, compiler updates or flag changes…",[113,124],{"value":114,"source":71,"evidence":115},"Write up the learning process and resources",[116,120],{"id":117,"by":118,"text":119},"37282796","s_Hogg","Congratulations, this is great. Have you thought about spending some time writing down what you had to learn and how you went about figuring out what to learn in order to do…",{"id":121,"by":122,"text":123},"37287536","brailsafe","Ambitious! What were some of the educational resources you used or that inspired you before and throughout the project? Textbooks, tutorials etc..?",{"value":125,"source":71,"evidence":126},"Add an RSS feed to the blog",[127],{"id":93,"by":94,"text":95},[129],{"value":130,"source":71,"evidence":131},"How does the garbage collector work, moving or non-moving?",[132],{"id":133,"by":134,"text":135},"37278372","gus_massa","Did you wrote your own garbage colector? Is it a moving one or a not moving one?",[137,143],{"value":138,"source":47,"evidence":139},"Crafting Interpreters by Robert Nystrom",[140],{"id":141,"by":10,"text":142},"37287702","Robert Nystrom's Crafting Interpreters (https:\u002F\u002Fcraftinginterpreters.com\u002F) is an awesome resource :D Though I didn't implement his language exactly, a lot of what he talks about…",{"value":144,"source":47,"evidence":145},"DrawGrammar by Vincent Jacques",[146],{"id":141,"by":10,"text":142},{"comments":148,"answered":39,"key":149},4,[150,153,154],{"id":151,"text":152},"37287291","Yeah actually, stay tuned! :D",{"id":141,"text":142},{"id":155,"text":156},"37279358","Crumb is garbage collected (there is no need to manually allocated\u002Fdeallocate memory)... though there is no background \"garbage collector\" process running... The interpreter for…",{"commenters":158,"max_depth":159,"maker_replies":148,"first_comment_mins":160,"lifespan_hours":161},53,9,193,136,[163,167,170,174,177,179,182,185,188,191,193,195,197,200,203,206,209,212,215,218,219,222,224,227,229,231,232,235,237,242,246,250,251,252,254,256,258,259,261,263,265,268,271,273,276,279,284,286,289,291,293,296,298,301,303,306,309,313,316,319,322,325,328,331,334,336,339,341,344,347,351,354,357,359,361,363,365,367,369,371,374],[164,32,39,165,166,32],"37290675","maker\u002Fneutral\u002Fnone","poulsbohemian",[168,32,39,165,169,32],"37290879","katella",[171,32,32,172,173,32],"37290914","commenter\u002Fneutral\u002Fnone","sam0x17",[175,32,32,172,176,32],"37305003","Serenacula",[178,32,32,172,173,32],"37309752",[180,32,32,172,181,32],"37292198","dustingetz",[183,32,32,172,184,32],"37299342","stevedh",[186,32,32,172,187,32],"37302341","icsa",[189,32,32,190,181,32],"37307040","other\u002Fneutral\u002Fnone",[192,32,32,190,187,32],"37303179",[194,32,32,172,181,32],"37306964",[196,32,32,172,181,32],"37306849",[198,32,39,165,199,32],"37292235","cardanome",[201,32,32,172,202,32],"37292705","blensor",[204,32,39,165,205,32],"37292676","brushfoot",[207,32,39,165,208,32],"37294258","mindcrime",[210,32,39,165,211,32],"37297696","talldatethrow",[213,32,32,172,214,32],"37298597","josefdlange",[216,32,39,165,217,32],"37348695","eru",[109,33,39,165,110,32],[220,33,32,172,221,32],"37291694","fisherjeff",[223,33,32,172,110,32],"37291763",[93,225,42,226,94,32],2,"maker\u002Fpositive\u002Fnone",[228,225,39,165,134,32],"37293363",[117,39,39,230,118,32],"maker\u002Fneutral\u002Fdocs",[151,39,32,165,10,33],[233,148,39,165,234,32],"37291171","svilen_dobrev",[97,42,42,236,98,32],"project\u002Fpositive\u002Fdesign",[238,239,39,240,241,32],"37276705",6,"project\u002Fneutral\u002Fnone","withtheprogram",[243,244,42,226,245,32],"37289309",7,"tonfreed",[247,248,39,165,249,32],"37293027",8,"dazhbog",[121,159,39,165,122,32],[141,159,32,165,10,33],[82,253,42,226,83,32],10,[86,255,42,226,87,32],11,[133,30,39,257,134,32],"project\u002Fneutral\u002Fexecution",[155,30,32,257,10,33],[260,30,39,257,134,32],"37281710",[262,30,39,257,118,32],"37282782",[264,30,39,257,110,32],"37291650",[266,30,39,257,267,32],"37291720","_a_a_a_",[269,30,42,270,134,32],"37293336","project\u002Fpositive\u002Fexecution",[78,272,32,190,79,32],13,[274,272,32,190,275,32],"37290382","actionfromafar",[277,272,32,190,278,32],"37290426","zarroboogs",[280,281,42,282,283,32],"37283006",14,"project\u002Fpositive\u002Fnone","zerojames",[285,281,32,165,10,33],"37287295",[287,17,42,282,288,32],"37290241","victorsup",[74,290,42,226,75,32],16,[292,290,32,172,122,32],"37287479",[294,290,32,190,295,32],"37288172","soligern",[297,290,32,190,122,32],"37288776",[299,290,32,190,300,32],"37291255","adithyassekhar",[302,290,32,190,122,32],"37314549",[304,290,32,172,305,32],"37290433","dang",[307,290,32,172,308,32],"37291700","adroniser",[310,311,39,165,312,32],"37289423",17,"Cheetah26",[105,314,33,315,106,32],18,"project\u002Fcritical\u002Fexecution",[317,314,32,172,318,32],"37283033","ta-sfghjkk",[320,314,42,270,321,32],"37283353","Snarwin",[323,314,32,190,324,32],"37283398","convolvatron",[326,314,32,190,327,32],"37289622","kristofferg",[329,314,32,190,330,32],"37284056","slashdev",[332,314,32,190,333,32],"37284769","the_biot",[335,314,32,190,330,32],"37286211",[337,314,32,190,338,32],"37290759","grumblingdev",[340,314,32,190,267,32],"37291880",[342,314,32,190,343,32],"37290498","kagevf",[345,314,32,190,346,32],"37292766","discreteevent",[348,314,42,349,350,32],"37287304","maker\u002Fpositive\u002Fidea","flippinburgers",[352,314,42,353,278,32],"37290461","maker\u002Fpositive\u002Fexecution",[355,314,32,356,338,32],"37290732","commenter\u002Fcritical\u002Fnone",[358,314,32,356,267,32],"37291876",[360,314,32,356,338,32],"37293100",[362,314,32,356,267,32],"37293279",[364,314,32,356,338,32],"37296767",[366,314,32,356,267,32],"37296919",[368,314,32,172,338,32],"37304208",[370,314,32,356,267,32],"37314901",[372,314,39,165,373,32],"37291158","ookdatnog",[375,314,39,165,376,32],"37291397","TrackerFF",[],[379,384,389,394,398,402],{"id":380,"name":381,"points":382,"category":383},"37326870","compress",815,"dev_tools",{"id":385,"name":386,"points":387,"category":388},"37247767","obsidian-sync",416,"infrastructure",{"id":390,"name":391,"points":392,"category":393},"37252231","Shimmer",229,"consumer_social",{"id":395,"name":396,"points":397,"category":383},"37251969","Continue",187,{"id":399,"name":400,"points":401,"category":388},"37263473","Release AI",143,{"id":403,"name":404,"points":401,"category":383},"37310070","Langfuse",false,"v2",{"id":408,"name":5,"line":6,"ai":405,"cat":19,"year":12,"points":13,"comments":14,"rec":27,"s":409,"top":17,"kw":410,"maker":10,"domain":411,"tier":18,"attempts":32,"strip":412,"url":-1,"mix":413,"praise":70,"objection":102,"sub":20},37274882,0.32,[23,24,25,26],"","3000003333053553553350555000150000550003",[30,31,32,33],1794036640788]