当前位置: 首页 > news >正文

语言基础再谈

语言基础再谈

  • 一、编程语言的演变
    • 1.1 机器语言(machine language)
    • 1.2 符号语言(symbolic language)
    • 1.3 高级语言(high-level language)
    • 1.4 第四代语言(fourth generation language)
      • 1.4.1 查询语言(Query language)
      • 1.4.2 报告生成器(Report generator)
      • 1.4.3 图形语言(Graphical language)
      • 1.4.4 应用程序构建器(Application Builder)
      • 1.4.5 形式化规范说明语言(Formal specification language)
    • 1.5 自然语言(natural language)
  • 二、搭建并运行程序
    • 2.1 源程序(source prgram)
    • 2.2 编译程序(compiler)
    • 2.3 解释程序(interpreter)
    • 2.4 链接程序(linker)
    • 2.5 翻译器(translator)
  • 三、编程语言种类
    • 3.1 过程化语言(procedural language)
    • 3.2 面向对象语言(object-oriented language)
    • 3.3 函数型语言(functional language)
    • 3.4 专用语言(special language)
    • 3.5 说明性语言(declarative language)

一、编程语言的演变

1.1 机器语言(machine language)

  • 由0、1二进制组成(binary)
  • 是机器可以唯一识别的语言,别的语言最终都要转成机器语言
  • 缺点
    • 难以阅读
    • 工作量大且容易犯错
    • 对编程者要求极大,因为需要了解电脑硬件和指令程序
    • 可移植性差(poor portability)

1.2 符号语言(symbolic language)

  • 用一些符号和助记符(symbols and mnemonics)来代替机器语言中的某些指令
  • 符号语言也叫汇编语言(assembly language)
  • 用符号语言写的程序需要被翻译为汇编语言才能被机器识别,翻译的过程由符号语言完成
  • 缺点
    • 与机器语言仍然很想,与解决人类问题的方法大相径庭
    • 每一台机器有一套符号语言,代码工作量仍然很大
    • 仍然需要了解机器底层原理,同时还需要记住符号
    • 可移植性差

1.3 高级语言(high-level language)

  • 与自然语言十分相似(如,英语),容易学习、理解、解决问题
  • 不需要掌握机器底层原理
  • 具有普遍性,可移植性好

1.4 第四代语言(fourth generation language)

  • 是问题指向的编程语言
  • 用户可以只告诉系统去做什么,系统自己知道怎么去做
  • 第四代语言分支

1.4.1 查询语言(Query language)

  • 用于数据库管理的主要工具
  • 提供了查询数据库的方法
  • 主要有SQL(Structured Query Language)

1.4.2 报告生成器(Report generator)

  • 帮助用户自动生成报告的重要工具
  • 可以基于数据库内容自动生成格式化的报告
  • 通常包含数据提取、格式设置和输出功能
  • 主要有ADF(Application Development Framework)中的报告功能

1.4.3 图形语言(Graphical language)

  • 用画图的方式来编程
  • 核心思想:通过拖放组件、配置属性、连接逻辑块来构建应用程序
  • 好比:用乐高积木搭建房子,而不是从烧制砖块开始

1.4.4 应用程序构建器(Application Builder)

  • 将所有的功能集成在一个工具里
  • 过去:
    • 一个IDE来写代码
    • 一个数据库管理工具来设计表
    • 一个UI设计器来画界面
    • 另一个工具来设计报表
  • 现在:在一个工具中

1.4.5 形式化规范说明语言(Formal specification language)

  • 是严格数学定义的、基于数学逻辑的语言,用于精确陈述软件必须具备的功能、性能及其他关键属性
  • 可以避免自然语言的歧义性

1.5 自然语言(natural language)

  • 在理想情况下,机器可以识别自然语言,但现在还不行

二、搭建并运行程序

  • 源程序----> 编译----->链接

2.1 源程序(source prgram)

  • 比如,用C语言完成的程序,并保存为文本编辑器
  • 计算机并不能直接阅读源程序,需要将程序编程目标程序(object program)或者可执行程序(executable program)

2.2 编译程序(compiler)

  • 编译运行分开

2.3 解释程序(interpreter)

-边编译边运行

2.4 链接程序(linker)

  • 将目标文件及程序中使用到的库文件组装成一个单一可执行文件

2.5 翻译器(translator)

  • 将C语言编写的源文件,转换为目标文件(通常是机器代码或中间代码)
  • 分为两种
    • 编译器compiler
    • 解释器interpreter
  • 主要任务
    • 语法和语义检查:检查代码是否有拼写错误、语法错误、类型不匹配等
    • 代码优化:对代码进行局部优化,提高效率
    • 生成符号表:记录文件中定义的函数名、变量名(称为符号)以及它们需要从外部调用的函数名

三、编程语言种类

3.1 过程化语言(procedural language)

  • 解决一个问题可以分为若干活动
  • 一个活动可以是一个语句,或者是子程序
  • 子程序(subroutines)
    • 可继续被分解,知道被分解为基本操作——语句
  • 面向过程的设计旨在实现特定计算任务的操作流程与步骤,然后使用过程式语言来描述这些操作流程和步骤
  • 主要是C

3.2 面向对象语言(object-oriented language)

  • 认为对象是中心,对象是系统的基本单元
  • 对象包含属性与操作,每个对象都具有明确的职责,用于完成特定功能
  • 对象并非孤立存在,它们之间具有多种关联
  • 对象通过消息相互通信,彼此协作
  • 同类对象可以进一步抽象出共性,形成类
  • 主要是Java和C++

3.3 函数型语言(functional language)

  • 依据函数模型来解决问题
  • 程序的基本单元是函数
  • 一个函数可以被理解为一个从一系列输入(X)到输出(Y)映射的黑箱

3.4 专用语言(special language)

  • 领域特定语言,需要程序员对这一领域很熟悉,利用函数创造出新的东西

3.5 说明性语言(declarative language)

  • 也可以叫声明式语言
  • 程序员只需要描述“想要什么”或“问题的定义”,而不需要详细指定“如何做”的具体步骤
  • 就像你用C语言,你要写怎么找到一个数组中的偶数;但是使用声明式语言,你只用告诉它你要找一个数组中的偶数,至于怎么找是它的问题
  • 常见的语言
    • SQL:最经典的声明式语言,用于数据库查询
    • HTML:描述了网页应该有什么内容(标题、段落、图片),而不是如何绘制这些内容
    • CSS:描述了HTML内容应该如何被样式化(颜色、布局),浏览器引擎负责具体渲染
http://www.dtcms.com/a/524478.html

相关文章:

  • 网站后台用什么开发网页制作怎么做多个网站
  • 每周读书与学习->JMeter主要元件详细介绍(二)函数助手
  • asp网站开发技术免费建网站模板平台
  • 前端竞态问题是什么?怎么解决?
  • 问题记录--elementui中el-form初始化表单resetFields()方法使用时出现的问题
  • 运用jieba库解决词频分析问题
  • 【Linux】自动化构建工具--make/Makefile
  • 乡镇网站建设工作计划商城网站支付端怎么做
  • 咸阳网站开发公司电话seo网站关键词排名优化公司
  • 八股文面试题(全栈所有)
  • Mac Studio 和 DGX Spark 可用性分析
  • 【小白笔记】「while」在程序语言中的角色
  • 网站推广员怎么做怎么投诉网站制作公司
  • Flexbox 与定位结合-实现更复杂布局
  • 基于随机森林算法的Boss直聘数据分析及可视化-hadoop+django+spider
  • 最适合seo的网站源码专门做网页的网站
  • 企业微信机器人配置webhook自动推送错误订单信息
  • Web3 前端与合约交互
  • 基于window/ubuntu安装rknn-toolkit2【docker】
  • Mac安装配置MySQL
  • JumpServer堡垒机的安装部署
  • Harmony鸿蒙开发0基础入门到精通Day05--JavaScript篇
  • 福州医疗网站建设电商平台管理系统
  • 【乐鑫】乐鑫平台库文件生成方法
  • 文件IO操作
  • GStreamer视频编码
  • 【Go】--闭包
  • 正规网店代运营公司seo难不难
  • 【Dataset】如何高效处理海量数据并从中智能筛选出有代表性的样本?
  • 攻防世界-Web-Confusion1