Communities, Competitions & Further Resources đ
Syntax-Guided Synthesis Competition (SyGuS-Comp): Annual competition where solvers compete on standardized synthesis benchmarks (SyGuS). It has categories for different logical theories (bit-vectors, strings, algebraic data types, etc.) and tracks progress in solver technology. The SyGuS-Comp website (sygus.org) provides the benchmark problems, past results (SyGuS-Comp 2017), and links to open-source solvers (many participants release their code). Following this competition is a great way to see state-of-the-art in constraint-based synthesis â for example, CVC5âs solver or EUSolver from UW.
Programming By Examples (PBE) Workshops: The PROSE team at Microsoft and academic collaborators have held workshops (often collocated with PL or AI conferences) focused on PBE. These bring together researchers working on end-user programming, spreadsheets, data wrangling, etc. Check out the workshop websites or MSR pages â they often have talk slides and sometimes videos. Itâs a niche community, but very relevant if you care about inductive synthesis applications.
ExCAPE (Expedition in Computer Augmented Program Engineering): This was a multi-year NSF project (2012â2017) uniting experts from several universities to advance program synthesis. The projectâs website (archived) listed their publications, which include many influential papers (sketching, SyGuS, education apps, etc.). While the project ended, the legacy continues: many of todayâs leading researchers (Alur, BodĂk, Jha, Seshia, Solar-Lezama, etc.) were co-PIs. Reading the ExCAPE final report or overview papers can give insight into the grand challenges identified and progress made during that period.
Online Q&A Forums: There is a tag for âprogram-synthesisâ on Computer Science Stack Exchange where enthusiasts ask and answer technical questions (though activity is sporadic) (Newest âprogram-synthesisâ Questions - Computer Science Stack Exchange) (Newest âprogram-synthesisâ Questions - Computer Science Stack Exchange). More active are channels on Slack/Zulip for programming languages research â for example, the Haskell community sometimes discusses synthesis (e.g. using Liquid Haskell for synthesis) and there are PL community Slack workspaces where one can find a synthesis channel. Engaging with these forums can be useful for troubleshooting tools (like Rosette or Sketch) or getting advice on research directions.
Reddit Communities: On Reddit, check out subreddits like r/ProgrammingLanguages and r/MachineLearning â searches for âprogram synthesisâ often yield discussion threads about new papers or tools (for instance, the announcement of OpenAI Codex or AlphaCode led to debates about how far neural program synthesis has come). There is also r/AutomatedProgramming, a smaller subreddit specifically for program synthesis and AI-assisted coding. Itâs not extremely active, but you might find curated links or project showcases there.
Competitive Programming + Synthesis: A fun intersection is using program synthesis in competitive programming or puzzle-solving. The annual ICFP Programming Contest sometimes has challenges that relate to program generation or superoptimization. For example, a past contest involved synthesizing circuit layouts. If you enjoy coding competitions, keep an eye out for those themes â they can serve as practical playgrounds for synthesis algorithms.
Academic Research Groups: Finally, exploring the web pages of top research groups can lead to a treasure trove of resources. Notable groups include the UT Austin UToPiA group (Isil Dillig â program analysis and synthesis), UCSDâs Programming Systems (Nadia Polikarpova), UW PLSE (Rastislav BodĂk, Emina Torlak), Stanford MSL (Alex Aikenâs group, known for superoptimization), Microsoft Research (PROSE and integrated teams), and MITâs CAP group (Armando Solar-Lezama). Their sites often list publications with PDFs, software releases, and sometimes lecture notes for mini-courses or tutorials theyâve given. These can be a more raw but in-depth way to learn from the people pushing the boundaries of program synthesis.
Each of these resources offers a different perspective â from practical tools and hands-on learning to theoretical foundations and the latest research breakthroughs. By exploring across these categories, you can build a well-rounded understanding of program synthesis, its challenges, and its exciting potential in shaping the future of software development ((PDF) Toward Automatic Program Synthesis) ([#84: Could Program Synthesis Unlock AGI?