[{"data":1,"prerenderedAt":274},["ShallowReactive",2],{"project-11275736":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":39,"post_text":42,"what":43,"said":53,"maker_in_thread":135,"shape":146,"grid":151,"attempts":237,"same_week":238,"maker_shows":31,"maker_hidden":266,"reader_version":267,"card":268},"11275736","hivemind","A multi-syntax programming language with bidirectional grammars","title","Show HN: A multi-syntax programming language with bidirectional grammars","https:\u002F\u002Fgithub.com\u002Falehander42\u002Fhivemind","github.com","alehander42",1457833666,2016,96,38,394,2264,18,"notable","languages","programming language","other",[24,25,26,27,21],"bidirectional grammar","multi-syntax","unparsing","pretty-printing","curious",0.162,{"positive":31,"neutral":32,"mixed":33,"critical":34},5,12,0,2,19,{"idea":37,"execution":38},{"positive":31,"critical":34},{"positive":33,"critical":33},[40,40,40,33,33,33,33,40,40,33,31,33,33,40,40,40,41,33,33,33,33,41,31,33,31,40,31,33,33,33,31,33,33,33,33,40,40,40],3,1,null,{"problem":42,"audience":42,"pricing":42,"motivation":44,"time_to_build":42,"stack":51,"openness":52,"stage":52,"team_size":52},{"value":45,"source":46,"evidence":47},"Illustrate an idea about one AST with multiple syntaxes","maker",[48],{"id":49,"by":11,"text":50},"11277039","That's correct, I made it because I wanted to illustrate an idea. However I think it can still be useful, and already there are precedents: semi-visual languages with underlying…",[],"unknown",{"praise":54,"objections":71,"requests":82,"questions":97,"alternatives":105},[55],{"value":56,"source":57,"evidence":58},"Interesting idea connecting to resugaring, unparsing and OMeta work","commenter",[59,63,67],{"id":60,"by":61,"text":62},"11276295","cyrus_","There has been some interesting work published recently on \"resugaring\" that you might be interested in: http:\u002F\u002Fcs.brown.edu\u002F~sk\u002FPublications\u002FPapers\u002FPublished\u002Fpk-resuarging\u002F and…",{"id":64,"by":65,"text":66},"11276371","earleybird","Related: https:\u002F\u002Fgithub.com\u002Fcdglabs\u002Fohm and Alessadro Warth et als work on OMeta. See parsing\u002Funparsing in http:\u002F\u002Ftinlizzie.org\u002Fometa\u002F",{"id":68,"by":69,"text":70},"11276548","drostie","Awesome! This has long been a dream of mine, but I never solved the problem of creating a better syntax than BNF grammars etc. I don't know if we have the same goals, but my…",[72],{"value":73,"source":57,"evidence":74},"Transliterated code between languages looks alien and idiomatic differences make it impractical",[75,79],{"id":76,"by":77,"text":78},"11276788","duncanawoods","I like these type of things but I don't believe they are practical because of the massive potential variation within a single syntax which is typically hidden by language…",{"id":80,"by":77,"text":81},"11277153",">> I think it can still be useful, and already there are precedents I have used some of these precedents so I guess I know their limitations. I have used and loathe visual…",[83,90],{"value":84,"source":57,"evidence":85},"Support for WebAssembly output",[86],{"id":87,"by":88,"text":89},"11276606","ilaksh","Will this compile to web assembly?",{"value":91,"source":57,"evidence":92},"Target LLVM as a backend",[93],{"id":94,"by":95,"text":96},"11282390","winter_blue","This is very cool. People who want to create new languages usually have to write a lot of code even though most of the heavy lifting is done by a lexer and a parser generator.…",[98],{"value":99,"source":57,"evidence":100},"How expression versus statement distinctions (such as Python if) would be handled",[101],{"id":102,"by":103,"text":104},"11277553","agentgt","Not entirely analogous but you can sort of do a lot of this today with the very programming platform that the HN implementation uses: Racket. And yes with Racket you can mix and…",[106,113,117,121,128],{"value":107,"source":57,"evidence":108},"Hy (Lisp compiling to Python AST)",[109],{"id":110,"by":111,"text":112},"11276236","shpx","Somewhat related, hy (aka hylang) is a lisp that compiles to the python abstract syntax tree which technically makes python a multi-syntax language already. Plus you get all the…",{"value":114,"source":57,"evidence":115},"Racket language-creation tools",[116],{"id":102,"by":103,"text":104},{"value":118,"source":57,"evidence":119},"Ohm and OMeta",[120],{"id":64,"by":65,"text":66},{"value":122,"source":57,"evidence":123},"Nim templates and multiple skin syntaxes",[124],{"id":125,"by":126,"text":127},"11277130","vbit","Funny, this was one of the goals of Nim, I believe.",{"value":129,"source":57,"evidence":130},"Cirru",[131],{"id":132,"by":133,"text":134},"11281731","jiyinyiyong","Also you can write Scheme like syntax in [Cirru](http:\u002Fcirru.org) and get a third syntax.",{"comments":31,"answered":41,"key":136},[137,140,143],{"id":138,"text":139},"11278714","Yes, I read a blog post about it, and it was in my take-a-deeper-look list, seems excellent",{"id":141,"text":142},"11277014","I love hy ! Actually I've done a prototype of a lisp compiling to python bytecode, so that's why when I found hy, I was pretty excited about it.…",{"id":144,"text":145},"11277374","Ha, I didn't expect that people remember Hermetic, I am glad it helped :] Actually I took in a different direction with Hermetic, and now I have a type-infered python with a more…",{"commenters":147,"max_depth":148,"maker_replies":31,"first_comment_mins":149,"lifespan_hours":150},20,6,161,42,[152,154,157,160,164,166,168,170,171,174,175,179,181,183,184,187,188,191,194,196,198,199,200,202,204,206,209,211,213,216,218,221,224,226,228,230,232,234],[60,33,40,153,61,33],"project\u002Fneutral\u002Fidea",[155,33,40,153,156,33],"11276726","mjn",[158,33,40,153,159,33],"11277642","j-pb",[161,33,33,162,163,33],"11278273","commenter\u002Fneutral\u002Fidea","sklogic",[165,33,33,162,159,33],"11278895",[167,33,33,162,163,33],"11284892",[138,33,33,169,11,41],"commenter\u002Fneutral\u002Fnone",[110,41,40,153,111,33],[172,41,40,153,173,33],"11276263","zeckalpha",[141,41,33,153,11,41],[176,41,31,177,178,33],"11277156","maker\u002Fpositive\u002Fidea","eric_bullington",[144,41,33,180,11,41],"maker\u002Fneutral\u002Fnone",[182,41,33,169,178,33],"11281932",[64,34,40,153,65,33],[185,34,40,153,186,33],"11276945","xKingfisher",[102,40,40,153,103,33],[76,189,41,190,77,33],4,"project\u002Fcritical\u002Fidea",[192,189,33,162,193,33],"11276942","logicrook",[195,189,33,162,77,33],"11277031",[197,189,33,162,193,33],"11277539",[49,189,33,153,11,41],[80,189,41,190,77,33],[68,31,31,201,69,33],"project\u002Fpositive\u002Fidea",[203,31,33,180,11,41],"11277025",[205,31,31,177,193,33],"11277541",[207,148,40,208,163,33],"11277190","project\u002Fneutral\u002Fexecution",[94,210,31,201,95,33],7,[125,212,33,162,126,33],8,[214,212,33,162,215,33],"11277809","nyan4",[217,212,33,162,126,33],"11278858",[219,220,31,201,173,33],"11276206",9,[222,220,33,162,223,33],"11276920","nv-vn",[225,220,33,162,173,33],"11280088",[227,220,33,162,223,33],"11280499",[229,220,33,162,173,33],"11282826",[231,220,40,208,163,33],"11277211",[132,233,40,153,133,33],10,[87,235,40,236,88,33],11,"project\u002Fneutral\u002Fnone",[],[239,244,249,253,257,261],{"id":240,"name":241,"points":242,"category":243},"11290720","Podcat",401,"productivity",{"id":245,"name":246,"points":247,"category":248},"11287540","amplify",279,"dev_tools",{"id":250,"name":251,"points":252,"category":248},"11283978","Zube 1.0",206,{"id":254,"name":255,"points":256,"category":248},"11261953","GitHub News (gitlogs)",184,{"id":258,"name":259,"points":260,"category":248},"11260956","Spotbot",179,{"id":262,"name":263,"points":264,"category":265},"11282344","CodeMill",169,"web_saas",false,"v2",{"id":269,"name":5,"line":6,"ai":266,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":270,"top":18,"kw":271,"maker":11,"domain":10,"tier":19,"attempts":33,"strip":272,"url":9,"mix":273,"praise":56,"objection":73,"sub":21},11275736,0.16,[24,25,26,27,21],"33300003305003331000015053500050000333",[31,32,33,34],1793990939957]