BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//pretalx//programme.europython.eu//europython-2026//speaker//TABXB
 G
BEGIN:VTIMEZONE
TZID:CET
BEGIN:STANDARD
DTSTART:20001029T040000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=10
TZNAME:CET
TZOFFSETFROM:+0200
TZOFFSETTO:+0100
END:STANDARD
BEGIN:DAYLIGHT
DTSTART:20000326T030000
RRULE:FREQ=YEARLY;BYDAY=-1SU;BYMONTH=3
TZNAME:CEST
TZOFFSETFROM:+0100
TZOFFSETTO:+0200
END:DAYLIGHT
END:VTIMEZONE
BEGIN:VEVENT
UID:pretalx-europython-2026-SCZ8ZK@programme.europython.eu
DTSTART;TZID=CET:20260717T114500
DTEND;TZID=CET:20260717T121500
DESCRIPTION:A multitude of Python libraries offer Just In Time (JIT) compil
 ation capabilities for general purpose computations\, such as JAX or Numba
 . But in certain cases these solutions might not be enough\, thus we seek 
 more specialized solutions that can include domain knowledge as well.\n\nC
 ompilers for Domain Specific Languages (DSL) allow us to incorporate addit
 ional information during compilation\, possibly tied to a specific domain\
 , such as sparse arrays computing.\n\nIn this talk I'm going to introduce 
 [Finch](https://finch-tensor.org/) - language and a compiler for sparse an
 d structured multidimensional arrays\, which specializes its kernels for c
 ontrol flow and data structures. It supports common control flow (loops\, 
 if conditions\, etc.) and a wide variety of data structures - dense\, spar
 se list\, triangles\, coordinate\, or symmetry. \n\nThe ongoing effort to 
 move Finch from the original Julia implementation to pure Python exposed u
 s to new ways of using Python - as a language for implementing compilers.\
 n\nIn this talk I will present some key aspects of Python language and eco
 system which played a central role in making us productive in the last mon
 ths during this undertaking:\n- Defining IRs with dataclasses and utilizin
 g Structural Pattern Matching for term rewriting\,\n- Using [Lark](https:/
 /lark-parser.readthedocs.io/en/stable/) for parsing custom languages into 
 large IR structures\,\n- Expressing complex rewrite schemes with [rewrite-
 tools](https://pypi.org/project/rewrite-tools/).\n\nThe audience will lear
 n our approach to designing the structure of a compiler\, together with a 
 few technical decisions made along the way.\nI hope these insights will be
  useful for engineers and scientists coming from closely related fields an
 d projects also involving compiling custom languages\, such as probabilist
 ic programming or hardware design.
DTSTAMP:20260524T122013Z
LOCATION:Chamber Hall B (S3B)
SUMMARY:Building your DSL compiler in Python - Mateusz Sokół
URL:https://programme.europython.eu/europython-2026/talk/SCZ8ZK/
END:VEVENT
END:VCALENDAR
