Supporting Swift 4 Generics in Tifig

Meili, Mario (2018) Supporting Swift 4 Generics in Tifig. Masters thesis, HSR Hochschule für Technik Rapperswil.

[thumbnail of MA-Tifig_Technical_Report_Eprints.pdf]
Preview
Text
MA-Tifig_Technical_Report_Eprints.pdf - Supplemental Material

Download (5MB) | Preview

Abstract

Tifig is a Swift IDE based on Eclipse. Since Swift has been open sourced, a compiler for Linux systems became part of the Swift project, allowing the development of Swift applications on platforms other than macOS. Because Xcode is only available on macOS, Tifig aims to be the preferred alternative. With its newest release, many language features and syntax changes were introduced to Swift. This resulted in inconsistencies between the behaviour of the Swift compiler and Tifig. The aim of this thesis was to improve the existing Tifig IDE by:

- Supporting the new enhancements in Swift's generics system.
- Consolidating the existing documentation in a form that promotes continual development.

To achieve this, Tifig's parser and indexer were extended to support the newly introduced syntax and to ensure correct indexing order and index correctness. Tifig's type checker was modified to enable correct type resolution. To improve the current documentation, a study of multiple large and successful open source projects was conducted.

The results of this thesis encompass:

- The newest alpha release of Tifig
- An extensive documentation for Tifig contributors
- Introductory tutorials for first-time Tifig users
- A short theoretical study on how to improve the performance and resolve current issues of the Swift type checker

Item Type: Thesis (Masters)
Subjects: Area of Application > Development Tools
Metatags > IFS (Institute for Software)
Divisions: Master of Advanced Studies in Software Engineering
Depositing User: Stud. I
Contributors:
Contribution
Name
Email
Thesis advisor
Mehta, Farhad
UNSPECIFIED
Date Deposited: 23 Feb 2018 08:44
Last Modified: 17 Oct 2023 07:43
URI: https://eprints.ost.ch/id/eprint/613

Actions (login required)

View Item
View Item