Skip to content

Instantly share code, notes, and snippets.

@tonisuter
Created November 20, 2017 08:00
Show Gist options
  • Save tonisuter/f8bda3a6a149fd9aca029313bb62288a to your computer and use it in GitHub Desktop.
Save tonisuter/f8bda3a6a149fd9aca029313bb62288a to your computer and use it in GitHub Desktop.

Session Proposal - ACCU 2018

Toni Suter (Presenter Bio)

Toni is a software engineer at the Institute for Software at FHO/HSR in Rapperswil, Switzerland. In the past few years he has worked on refactoring tools for the C++ IDE Cevelop and since the beginning of his master thesis, he has been working on a new Swift IDE called Tifig.

Mario Meili (Presenter Bio)

Mario is a software engineer at the Institute for Software at FHO/HSR in Rapperswil, Switzerland. For his master thesis, he has been implementing the necessary changes in Tifig to support the enhanced generics that were introduced with Swift 4.

Lessons learned from developing a Swift IDE

Session Type: 90min (60min presentation + 30min Q&A)

Audience: Intermediate

Summary

In 2014 Apple introduced its new programming language Swift. Swift aims to be "safe by default" and friendly to beginners, but it also has some powerful features for advanced programmers. For example, Swift's enums work like algebraic data types in Haskell and its protocols enable new ways to write generic code.

Over the past 2 years, we have been working on a new Swift IDE called Tifig. This session takes a look at some of the challenges that we faced during its development. We will begin with a short introduction to Swift and will then go on to cover the following topics:

  • Parsing and indexing custom operators
  • Indexer passes / Indexing order
  • Type-checking & bi-directional type inference
  • Overload resolution
  • Inference of associated types

During this talk, the audience will get to know many aspects of Swift's standard library and type system. We will provide enough comparisons to other languages (e.g., Java and C++) so that it should be fairly easy to follow even for developers who are new to Swift.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment