{"action":"created","comment":{"url":"https://api.github.com/repos/nuprl/website/pulls/comments/122319651","pull_request_review_id":44424433,"id":122319651,"diff_hunk":"@@ -0,0 +1,162 @@\n+    Title: Spring 2017 PL Junior Retrospective\n+    Date: 2017-06-06T11:38:25\n+    Tags: DRAFT, PL Junior, by Ben Chung, by Milo Davis, by Ming-Ho Yee, by Matt Kolosick, by Dustin Jamner, by Artem Pelenitsyn, by Julia Belyakova, by Sam Caldwell\n+\n+The [PL Junior Seminar][pljunior] is for beginning PhD and interested\n+undergrad and masters students to understand the foundations of\n+programming languages research. It serves to fill in background\n+knowledge and get up to speed with different areas of PL research.\n+\n+For the spring 2017 instance of PL Junior we chose program synthesis,\n+the sequent calculus, and logic programming as topics we wanted to\n+learn more about. We also did two group paper readings for Luca\n+Cardelli's [Typeful Programming][typeful] and Alan Kay's\n+[Early History of Smalltalk][smalltalk]. At the same time, we changed\n+up the format from the previous semester.\n+\n+<!-- more -->\n+\n+\n+## Format\n+\n+As discussed in [last fall's retrospective][fall16retro], we wanted to\n+move from group reading and discussion towards weekly presentations.\n+Reading a paper or some other material in order to understand it well\n+enough to present is quite a different experience compared to the\n+effort that goes in when it is just for a group discussion (in our\n+experience). With any luck, the presentation will convey some of this\n+deeper knowledge to the rest of the group, with the result being that\n+the speaker has a better understanding and everyone else has about the\n+same understanding compared to when everyone just reads the paper.\n+\n+One idea from last semester that we decided to keep is to spend a\n+length of time (possibly an entire semester) on a topic rather than\n+having a new topic each week. Staying on the same theme helps with\n+retention as well as allowing for deeper investigation.\n+\n+In that spirit, we chose three themes for the semester: program\n+synthesis, the sequent calculus, and logic programming. Mostly by\n+chance, these topics have interesting connections to each other, and\n+we even had several PL Grown-Up Seminars this semester on program\n+synthesis!\n+\n+## Synthesis\n+\n+The first paper on program synthesis that we looked at was\n+[A Deductive Approach to Program Synthesis][deductive] by Zohar and\n+Manna. We chose this paper because it's old and has a lot of citations\n+so it's probably Important. It was interesting and provided an OK\n+introduction to proof search but the method presented seems far\n+removed from modern synthesis techniques.\n+\n+The next paper was\n+[Programmatic and Direct Manipulation, Together][progdirect] by Chugh\n+et al which presents the [Sketch-n-Sketch][sketchnsketch] system.\n+Sketch-n-Sketch is a cool system. It demonstrates that a narrow\n+application of synthesis - trying to fill in the constant values in a\n+program (sketching) - can be used for great effect. We were left\n+wondering, however, if it was too narrow an application of synthesis\n+to give much of an indication of what the entire field is like.\n+\n+We concluded our program synthesis segment with\n+[Type-and-Example-Directed Program Synthesis][typeandexample] by Osera\n+and Zdancewic, another relatively recent paper. This seems like a\n+relevant paper because we are under the impression that using examples\n+to do synthesis is a big thing right now. Using types to constrain the\n+search is another interesting perspective on techniques for synthesis.\n+\n+While each of theses papers had merits, none was so comprehensive as\n+to be a necessary inclusion in any future look at program synthesis\n+for pl junior\n+\n+## Sequent Calculus\n+\n+We followed up the program synthesis unit with a week on the sequent\n+calculus. The seminar presentation was based on a paper by\n+[Herbelin][Herbelin]. [Gabriel’s thesis][gab] (chapter 4) includes\n+maybe a more suitable modern introduction to the sequent calculus.\n+\n+It might have been better to do sequent calculus first because there\n+is a modern branch of proof search based on the sequent calculus.\n+Presenting this first would have allowed us to look into proof search\n+for program synthesis.\n+\n+An additional problem is that it was insufficiently motivated. Either\n+skipping the topic or spending more time on it would be preferable,\n+since one week was just enough to describe the sequent calculus but\n+not enough to apply it.\n+\n+## Logic Programming\n+\n+The topic was presented over two weeks. The first session\n+presented/demoed Prolog as a language, and we got a sense of what\n+logic programming could do. But it was a whirlwind tour, and we were\n+left wondering about specific details (how proof search runs, what\n+`cut` does).\n+\n+The second session presented the paper\n+[The Semantics of Predicate Logic as a Programming Language][predlogic].\n+It was interesting and insightful but left wondering how it relates to\n+the implementation of real logic programming languages.\n+\n+In hindsight this was about as far as we could have gotten in just two\n+weeks.\n+\n+## Bonus Rounds\n+\n+We also used a few weeks to read and discuss specific papers as a\n+group.\n+\n+The first paper we read was Cardelli's [Typeful Programming][typeful].\n+We picked typeful programming because Matthias has mentioned on\n+occasion how important he thinks it is.\n+\n+It was an interesting read; more of an essay than a paper. It really\n+stood out as different from the other academic publications that we\n+have looked at. It’s a walk through of a language design motivating\n+each design decision in practical terms, as in things that actually\n+help the programmer.\n+\n+Cardelli thinks polymorphism (subtyping in addition to parametric) is","path":"blog/_src/posts/2017-06-06-spring-2017-pl-junior-retrospective.md","position":120,"original_position":120,"commit_id":"5106c861df96be5518b25e46e1c7762f512d6aba","original_commit_id":"5106c861df96be5518b25e46e1c7762f512d6aba","user":{"login":"DIJamner","id":3944771,"avatar_url":"https://avatars3.githubusercontent.com/u/3944771?v=3","gravatar_id":"","url":"https://api.github.com/users/DIJamner","html_url":"https://github.com/DIJamner","followers_url":"https://api.github.com/users/DIJamner/followers","following_url":"https://api.github.com/users/DIJamner/following{/other_user}","gists_url":"https://api.github.com/users/DIJamner/gists{/gist_id}","starred_url":"https://api.github.com/users/DIJamner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/DIJamner/subscriptions","organizations_url":"https://api.github.com/users/DIJamner/orgs","repos_url":"https://api.github.com/users/DIJamner/repos","events_url":"https://api.github.com/users/DIJamner/events{/privacy}","received_events_url":"https://api.github.com/users/DIJamner/received_events","type":"User","site_admin":false},"body":"Maybe change to \"Cardelli places great importance on polymorphism (subtyping in addition to parametric), as well as...\" The current version sounds awkward to me.","created_at":"2017-06-15T21:41:16Z","updated_at":"2017-06-15T21:47:53Z","html_url":"https://github.com/nuprl/website/pull/88#discussion_r122319651","pull_request_url":"https://api.github.com/repos/nuprl/website/pulls/88","_links":{"self":{"href":"https://api.github.com/repos/nuprl/website/pulls/comments/122319651"},"html":{"href":"https://github.com/nuprl/website/pull/88#discussion_r122319651"},"pull_request":{"href":"https://api.github.com/repos/nuprl/website/pulls/88"}}},"pull_request":{"url":"https://api.github.com/repos/nuprl/website/pulls/88","id":125904234,"html_url":"https://github.com/nuprl/website/pull/88","diff_url":"https://github.com/nuprl/website/pull/88.diff","patch_url":"https://github.com/nuprl/website/pull/88.patch","issue_url":"https://api.github.com/repos/nuprl/website/issues/88","number":88,"state":"open","locked":false,"title":"spring 2017 pl junior retrospective","user":{"login":"howell","id":3951940,"avatar_url":"https://avatars3.githubusercontent.com/u/3951940?v=3","gravatar_id":"","url":"https://api.github.com/users/howell","html_url":"https://github.com/howell","followers_url":"https://api.github.com/users/howell/followers","following_url":"https://api.github.com/users/howell/following{/other_user}","gists_url":"https://api.github.com/users/howell/gists{/gist_id}","starred_url":"https://api.github.com/users/howell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/howell/subscriptions","organizations_url":"https://api.github.com/users/howell/orgs","repos_url":"https://api.github.com/users/howell/repos","events_url":"https://api.github.com/users/howell/events{/privacy}","received_events_url":"https://api.github.com/users/howell/received_events","type":"User","site_admin":false},"body":"","created_at":"2017-06-15T20:22:53Z","updated_at":"2017-06-15T21:47:53Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ef9f716dcc5b5d41a136f74757a08348e7f04bce","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/nuprl/website/pulls/88/commits","review_comments_url":"https://api.github.com/repos/nuprl/website/pulls/88/comments","review_comment_url":"https://api.github.com/repos/nuprl/website/pulls/comments{/number}","comments_url":"https://api.github.com/repos/nuprl/website/issues/88/comments","statuses_url":"https://api.github.com/repos/nuprl/website/statuses/5106c861df96be5518b25e46e1c7762f512d6aba","head":{"label":"howell:master","ref":"master","sha":"5106c861df96be5518b25e46e1c7762f512d6aba","user":{"login":"howell","id":3951940,"avatar_url":"https://avatars3.githubusercontent.com/u/3951940?v=3","gravatar_id":"","url":"https://api.github.com/users/howell","html_url":"https://github.com/howell","followers_url":"https://api.github.com/users/howell/followers","following_url":"https://api.github.com/users/howell/following{/other_user}","gists_url":"https://api.github.com/users/howell/gists{/gist_id}","starred_url":"https://api.github.com/users/howell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/howell/subscriptions","organizations_url":"https://api.github.com/users/howell/orgs","repos_url":"https://api.github.com/users/howell/repos","events_url":"https://api.github.com/users/howell/events{/privacy}","received_events_url":"https://api.github.com/users/howell/received_events","type":"User","site_admin":false},"repo":{"id":77862539,"name":"website","full_name":"howell/website","owner":{"login":"howell","id":3951940,"avatar_url":"https://avatars3.githubusercontent.com/u/3951940?v=3","gravatar_id":"","url":"https://api.github.com/users/howell","html_url":"https://github.com/howell","followers_url":"https://api.github.com/users/howell/followers","following_url":"https://api.github.com/users/howell/following{/other_user}","gists_url":"https://api.github.com/users/howell/gists{/gist_id}","starred_url":"https://api.github.com/users/howell/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/howell/subscriptions","organizations_url":"https://api.github.com/users/howell/orgs","repos_url":"https://api.github.com/users/howell/repos","events_url":"https://api.github.com/users/howell/events{/privacy}","received_events_url":"https://api.github.com/users/howell/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/howell/website","description":"Source for website at","fork":true,"url":"https://api.github.com/repos/howell/website","forks_url":"https://api.github.com/repos/howell/website/forks","keys_url":"https://api.github.com/repos/howell/website/keys{/key_id}","collaborators_url":"https://api.github.com/repos/howell/website/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/howell/website/teams","hooks_url":"https://api.github.com/repos/howell/website/hooks","issue_events_url":"https://api.github.com/repos/howell/website/issues/events{/number}","events_url":"https://api.github.com/repos/howell/website/events","assignees_url":"https://api.github.com/repos/howell/website/assignees{/user}","branches_url":"https://api.github.com/repos/howell/website/branches{/branch}","tags_url":"https://api.github.com/repos/howell/website/tags","blobs_url":"https://api.github.com/repos/howell/website/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/howell/website/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/howell/website/git/refs{/sha}","trees_url":"https://api.github.com/repos/howell/website/git/trees{/sha}","statuses_url":"https://api.github.com/repos/howell/website/statuses/{sha}","languages_url":"https://api.github.com/repos/howell/website/languages","stargazers_url":"https://api.github.com/repos/howell/website/stargazers","contributors_url":"https://api.github.com/repos/howell/website/contributors","subscribers_url":"https://api.github.com/repos/howell/website/subscribers","subscription_url":"https://api.github.com/repos/howell/website/subscription","commits_url":"https://api.github.com/repos/howell/website/commits{/sha}","git_commits_url":"https://api.github.com/repos/howell/website/git/commits{/sha}","comments_url":"https://api.github.com/repos/howell/website/comments{/number}","issue_comment_url":"https://api.github.com/repos/howell/website/issues/comments{/number}","contents_url":"https://api.github.com/repos/howell/website/contents/{+path}","compare_url":"https://api.github.com/repos/howell/website/compare/{base}...{head}","merges_url":"https://api.github.com/repos/howell/website/merges","archive_url":"https://api.github.com/repos/howell/website/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/howell/website/downloads","issues_url":"https://api.github.com/repos/howell/website/issues{/number}","pulls_url":"https://api.github.com/repos/howell/website/pulls{/number}","milestones_url":"https://api.github.com/repos/howell/website/milestones{/number}","notifications_url":"https://api.github.com/repos/howell/website/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/howell/website/labels{/name}","releases_url":"https://api.github.com/repos/howell/website/releases{/id}","deployments_url":"https://api.github.com/repos/howell/website/deployments","created_at":"2017-01-02T21:20:00Z","updated_at":"2017-01-02T21:20:02Z","pushed_at":"2017-06-15T21:05:26Z","git_url":"git://github.com/howell/website.git","ssh_url":"git@github.com:howell/website.git","clone_url":"https://github.com/howell/website.git","svn_url":"https://github.com/howell/website","homepage":"http://prl.ccs.neu.edu","size":45113,"stargazers_count":0,"watchers_count":0,"language":"Racket","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"nuprl:master","ref":"master","sha":"13becbdf33d4756916fb444372009487dba1d34a","user":{"login":"nuprl","id":4161665,"avatar_url":"https://avatars3.githubusercontent.com/u/4161665?v=3","gravatar_id":"","url":"https://api.github.com/users/nuprl","html_url":"https://github.com/nuprl","followers_url":"https://api.github.com/users/nuprl/followers","following_url":"https://api.github.com/users/nuprl/following{/other_user}","gists_url":"https://api.github.com/users/nuprl/gists{/gist_id}","starred_url":"https://api.github.com/users/nuprl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nuprl/subscriptions","organizations_url":"https://api.github.com/users/nuprl/orgs","repos_url":"https://api.github.com/users/nuprl/repos","events_url":"https://api.github.com/users/nuprl/events{/privacy}","received_events_url":"https://api.github.com/users/nuprl/received_events","type":"Organization","site_admin":false},"repo":{"id":69681509,"name":"website","full_name":"nuprl/website","owner":{"login":"nuprl","id":4161665,"avatar_url":"https://avatars3.githubusercontent.com/u/4161665?v=3","gravatar_id":"","url":"https://api.github.com/users/nuprl","html_url":"https://github.com/nuprl","followers_url":"https://api.github.com/users/nuprl/followers","following_url":"https://api.github.com/users/nuprl/following{/other_user}","gists_url":"https://api.github.com/users/nuprl/gists{/gist_id}","starred_url":"https://api.github.com/users/nuprl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nuprl/subscriptions","organizations_url":"https://api.github.com/users/nuprl/orgs","repos_url":"https://api.github.com/users/nuprl/repos","events_url":"https://api.github.com/users/nuprl/events{/privacy}","received_events_url":"https://api.github.com/users/nuprl/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/nuprl/website","description":"Source for website at","fork":false,"url":"https://api.github.com/repos/nuprl/website","forks_url":"https://api.github.com/repos/nuprl/website/forks","keys_url":"https://api.github.com/repos/nuprl/website/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nuprl/website/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nuprl/website/teams","hooks_url":"https://api.github.com/repos/nuprl/website/hooks","issue_events_url":"https://api.github.com/repos/nuprl/website/issues/events{/number}","events_url":"https://api.github.com/repos/nuprl/website/events","assignees_url":"https://api.github.com/repos/nuprl/website/assignees{/user}","branches_url":"https://api.github.com/repos/nuprl/website/branches{/branch}","tags_url":"https://api.github.com/repos/nuprl/website/tags","blobs_url":"https://api.github.com/repos/nuprl/website/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nuprl/website/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nuprl/website/git/refs{/sha}","trees_url":"https://api.github.com/repos/nuprl/website/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nuprl/website/statuses/{sha}","languages_url":"https://api.github.com/repos/nuprl/website/languages","stargazers_url":"https://api.github.com/repos/nuprl/website/stargazers","contributors_url":"https://api.github.com/repos/nuprl/website/contributors","subscribers_url":"https://api.github.com/repos/nuprl/website/subscribers","subscription_url":"https://api.github.com/repos/nuprl/website/subscription","commits_url":"https://api.github.com/repos/nuprl/website/commits{/sha}","git_commits_url":"https://api.github.com/repos/nuprl/website/git/commits{/sha}","comments_url":"https://api.github.com/repos/nuprl/website/comments{/number}","issue_comment_url":"https://api.github.com/repos/nuprl/website/issues/comments{/number}","contents_url":"https://api.github.com/repos/nuprl/website/contents/{+path}","compare_url":"https://api.github.com/repos/nuprl/website/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nuprl/website/merges","archive_url":"https://api.github.com/repos/nuprl/website/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nuprl/website/downloads","issues_url":"https://api.github.com/repos/nuprl/website/issues{/number}","pulls_url":"https://api.github.com/repos/nuprl/website/pulls{/number}","milestones_url":"https://api.github.com/repos/nuprl/website/milestones{/number}","notifications_url":"https://api.github.com/repos/nuprl/website/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nuprl/website/labels{/name}","releases_url":"https://api.github.com/repos/nuprl/website/releases{/id}","deployments_url":"https://api.github.com/repos/nuprl/website/deployments","created_at":"2016-09-30T16:07:22Z","updated_at":"2016-10-25T19:39:56Z","pushed_at":"2017-06-15T21:05:27Z","git_url":"git://github.com/nuprl/website.git","ssh_url":"git@github.com:nuprl/website.git","clone_url":"https://github.com/nuprl/website.git","svn_url":"https://github.com/nuprl/website","homepage":"http://prl.ccs.neu.edu","size":45138,"stargazers_count":0,"watchers_count":0,"language":"Racket","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":13,"mirror_url":null,"open_issues_count":10,"forks":13,"open_issues":10,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/nuprl/website/pulls/88"},"html":{"href":"https://github.com/nuprl/website/pull/88"},"issue":{"href":"https://api.github.com/repos/nuprl/website/issues/88"},"comments":{"href":"https://api.github.com/repos/nuprl/website/issues/88/comments"},"review_comments":{"href":"https://api.github.com/repos/nuprl/website/pulls/88/comments"},"review_comment":{"href":"https://api.github.com/repos/nuprl/website/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/nuprl/website/pulls/88/commits"},"statuses":{"href":"https://api.github.com/repos/nuprl/website/statuses/5106c861df96be5518b25e46e1c7762f512d6aba"}}}}
{"actor":{"display_login":"DIJamner"}}