发现编程范型二:基础语法

见解基于已熟悉的三种语言:C/C++,Python和Java。

语言信息

  • 版本信息:语言版本变迁历史
  • 源代码文件:文件后缀,中间文件形式,源文件常用格式--如文件头、入口函数定义等
  • 编译与运行:开发工具(编译器、解释器、调试器及IDE等)、发布方式(原生文件还是打包程序)、调试工具

基础语法

注释

  • 好的代码应该是自解释的,但有时也需要注释的帮助。
  • 传统型注释方式:单行注释,多行注释
  • 功能性注释:
    • 作为对象的一部分,如Python中对象的__doc__属性
    • Java中的注解

类型系统

  • 类型的作用:
    • 对象或数据对应空间大小,存储时占用的空间、读取时解析的空间
    • 对象或数据自身的操作及适用于该类型的操作集合
  • 标识符、变量、文字常量及常量
    • 文字常量:源代码中直接书写的数值、字符串、布尔值等,常用语赋值语句的右侧
    • 标识符,命名规则,是否大小写敏感,关键字集合
    • 变量,命名规则,与内存区、对象的绑定关系
    • 常量,定义方式,明明常用法--如全大写等
  • 类型分类:
    • 基本类型
      • 主要包括数值类型(整型、浮点型及复数等)、字符及字符串类型、布尔类型等
      • 字符串类型:存储方式、支持的操作符、编码问题
    • 扩展类型
      • 枚举类型
      • 空类型:void/None/null
      • 指针类型
      • 类类型
    • 内置容器
      • 数组类型:数组定义、多维数组、数组索引及越界访问问题等
      • 其他语言级支持容器,如Python的tuple/list/dict
  • 类型转换规则
    • 自动类型转换
    • 强制类型转换

操作符

  • 操作符,是对计算机指令系统的抽象封装
  • 基本操作符--一般语言都支持的操作符:
    • 赋值操作
    • 算术运算符
    • 比较运算符
    • 逻辑运算符
    • 位操作运算符
  • 特殊操作符:
    • 判断:三元操作符(?😃,sizeof,类型判断(instance of)
  • 操作符优先级

语句

  • 源代码的组织形式,好的源代码是便于阅读的源代码
  • 单行语句
    • 单行语句,是否需要分号做结尾符
    • 空语句块--如{}及关键字pass都可表示空语句
  • 语句块
    • 语句块定义方式:中括号表示{},及Python的缩进表示法
    • 语句块,对变量及对象的生命周期及可见性的影响

流程控制

  • 代码执行顺序,常用包括条件、循环及跳转
    • 条件,if/else,switch
    • 循环,while,do/while,for,foreach
    • 跳转,return,break,continue,goto

函数及方法

  • 函数是对功能的抽象,封装实现功能的细节
  • 函数签名,由函数名及参数列表决定,不包括函数返回值
  • 函数定义
    • 函数参数:
      • 传参方式:传值、传引用、传指针
      • 默认值参数、不定长参数(可变参数)
      • 不安参数顺序,采用参数赋值方式调用函数
    • 函数返回值:
      • 函数返回值数量
      • 尾调用
  • 特殊函数:
    • 递归函数
    • 嵌套函数
    • 匿名函数,如lambda函数
  • 函数特殊应用:
    • 函数指针,函数对象
    • 重载函数

异常处理

  • 异常处理是错误处理的一种方式,其他方式比如C的返回值判断
  • 异常作用:可以将正常流程代码与异常处理代码分开
  • 异常系统:
    • 抛出异常:throw或raise关键字抛出异常
    • 捕获异常:try/catch捕获异常
      • 系统定义异常、自定义异常
      • 异常捕获顺序
      • 捕获所有异常
      • finally在异常中的应用
    • 异常声明:函数中声明可能抛出的异常

代码组织方式

  • 代码组织的目标:
    • 避免名字冲突问题
    • 组织源代码文件,便于项目管理
  • 代码组织方式:
    • 命名空间、包
    • 源文件管理

posted on 2014-08-02 18:30  格物志  阅读(629)  评论(0编辑  收藏  举报

导航