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 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.
Session Type: 90min (60min presentation + 30min Q&A)
Audience: Intermediate
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.