美文网首页
Swift 进阶(一)基础语法

Swift 进阶(一)基础语法

作者: sampson666888 | 来源:发表于2022-04-06 15:00 被阅读0次

Swift简介

在学习Swift之前,我们先来了解下什么是Swift

Swift是Apple在2014年6月WWDC发布的全新编程语言,中文名和LOGO是”雨燕“

Swift之父是Chris Lattner,也是Clang编译器的作者,LLVM项目的主要发起人

Swift版本

Swift历时七年,从Swift 1.*更新到Swift 5.*,经历了多次重大改变,ABI终于稳定

API(Application Programming Interface):应用程序编程接口

  • 源代码和库之间的接口

ABI(Application Binary Interface):应用程序二进制接口

  • 应用程序和操作系统之间的底层接口
  • 涉及的内容有:目标文件格式、数据类型的大小/布局/对齐,函数调用约定等

Swift是完全开源的,下载地址:https://github.com/apple/swift

Swift编译原理
LLVM编译器
LLVM编译器一般分为前端和后端

前端:主要进行词法分析,生成语法树
后端:生成对应平台的二进制代码
编译流程
我们知道OC的前端是通过Clang进行编译的,Swift的前端是通过swiftc来编译的

不同语言的前端可能不同,但最终都会通过编译器的后端生成对应平台的二进制代码


下载.jpeg

整个编译流程如下图所示


下载 (1).jpeg
  • Swift Code:我们编写的Swift代码
  • Swift AST:Swift语法树
  • Raw Swift IL:Swift特有的中间代码
  • Canonical Swift IL:更简洁的Swift特有的中间代码
  • LLVM IR:LLVM的中间代码
  • Assembly:汇编代码
  • Executable:二进制代码

关于Swift编译流程的详细讲解可以参考以下网址:https://swift.org/swift-compiler/#compiler-architecture

swiftc

我们打开终端,输入swiftc -help,会打印出相关指令,这也说明了swiftc已经存在于Xcode中

截屏2022-04-06 下午1.59.28.png

我们可以在应用程序中找到Xcode,然后右键显示包内容,通过该路径找到swiftc

路径:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin


下载 (2).jpeg 下载 (3).jpeg

swiftc的基本操作演练
下面我们可以通过一些swiftc的一些基本操作来了解

1.我们先新建一个Swift的命令行项目


下载 (4).jpeg
下载 (5).jpeg

2.然后打开终端,cd到main.swift路径
3.然后我们输入swiftc -dump-ast main.swift,来查看下生成的语法树
4.我们还可以输入swiftc -emit-sil main.swift生成最简洁的SIL代码
5.我们还可以输入swiftc -emit-ir main.swift生成LLVM IR中间代码
6.我们还可以输入swiftc -emit-assembly main.swift生成汇编代码

相关文章

  • Swift 进阶(一)基础语法

    Swift简介 在学习Swift之前,我们先来了解下什么是Swift Swift是Apple在2014年6月WWD...

  • swift学习笔记

    一. swift语法基础 The Swift Programming Language中文版_The Swift ...

  • swift 基础语法

    swift 基础语法

  • Swift5 基础教程与进阶合集

    Swift5 基础 Swift5 基础(一)Swift编译流程、基础语法、流程控制、函数、枚举[https://w...

  • Swift基础语法(二)

    swift基础语法(一)swift基础语法二主要讲数据类型 1.字符串 1.在swift中String是一个结构体...

  • 技术栈

    一、HTML、CSS基础、JavaScript语法基础。 二、JavaScript语法进阶。包括:作用域和闭包、t...

  • 2020前端技术栈

    一、HTML、CSS基础、JavaScript语法基础。二、JavaScript语法进阶。包括:作用域和闭包、th...

  • 干货!Swift/OC简单的MVVM模式

    MVVM模式,废话不多上代码: Swift——基础简易版本 Swift——RxSwift进阶 OC——基础简易版本...

  • Kotlin 进阶之路 目录

    Kotlin 进阶之路 目录 Kotlin 进阶之路1 基础语法Kotlin 进阶之路2 集合类型Kotlin 进...

  • Swift系统视频学习

    1、swift5.1基础语法:https://docs.swift.org/swift-book/Language...

网友评论

      本文标题:Swift 进阶(一)基础语法

      本文链接:https://www.haomeiwen.com/subject/pqvrsrtx.html