什么是编程?

2025 年 5 月 7 日 | 阅读 9 分钟

编程是一种能够提升我们的逻辑思维和解决问题能力的练习或实践。它教会我们如何通过计算机程序或软件来完成一项任务。因此,简单来说,编程就是以计算机语言的形式实现问题解决方案的任务。在本节中,我们将讨论编程编程语言其类型优点缺点及其用途。

What is programming

编程的定义

在计算机科学领域,程序一词描述了计算机实际做什么,这个过程称为编程

我们也可以将编程定义为这样一个过程,它构建或组织一系列指令,指示机器如何执行任务以及执行什么任务。这可以使用各种编程语言完成,例如 CC++C#PythonJava 等。

编程的优点

  • 它能增强解决问题的能力。
  • 通过编程,我们可以解决复杂的问题。
  • 这也是一种有趣的學習方式。
  • 它可以将多个任务打包成一个模块。
  • 它节省时间和精力。

编程的缺点

  • 必须具备计算机知识。
  • 逻辑思维能力必须强。

编程范式

通俗地说,编程范式是计算机编程的一种基本风格。

从技术上讲,编程范式是利用某种编程语言来处理问题的途径。此外,我们可以说它是一种遵循某种方法论,利用我们可用的工具和技术来解决问题的方法。

它在用于表示程序元素(如对象、变量、函数约束)的概念和方法方面有所不同。以及涉及计算的步骤(如赋值、求值、继续、数据流)。最底层的编程范式是机器码

有很多关于编程语言的已知知识。但是,它们在执行时都需要遵循某些过程,而这种方法/方法论就是一种范式。

编程范式类型

有两种编程范式

  • 命令式编程范式
  • 声明式编程范式
What is programming

命令式编程范式

命令式编程是一种使用改变程序状态的语句的编程范式。命令式程序包含计算机要执行的命令。它详细描述了如何获得结果。如何指描述输入以及如何产生输出。

命令式编程范式的例子有 C、Fortran、Basic、Java、C++、Python、Ruby、PHP 等。

优点

  • 易于实现。
  • 它包含循环、变量等。
  • 它很高效。

缺点

  • 我们不能选择它来解决复杂的问题。
  • 它效率较低,生产力较低。
  • 它不适用于并行编程。
  • 顺序很重要。

命令式编程范式类型

命令式编程范式有以下类型

  • 面向对象编程
  • 过程式编程
  • 并行处理方法

面向对象编程

面向对象编程范式基于对象的概念。对象包含以字段形式的数据,这些字段称为属性,过程称为方法

由于对象是独立工作的,它们被封装到模块中。我们可以通过消息传递与对象进行通信。

面向对象编程可以使用 Java、C++、C#、PHP 和 Python 等编程语言实现。

过程式编程

该范式处理称为例程或函数的过程调用。函数包含一系列计算命令,用于实现特定结果。

它就像一个过程,包含一系列计算机程序要遵循的循序渐进的指令。代码可以在程序的其他部分轻松重用。该范式的优点是对于简单程序来说,代码易于学习和阅读。然而,在处理复杂问题时,我们有可能会遇到大量代码。

过程式编程的例子是BASIC、CPascal

并行处理方法

并行编程范式将问题或任务分解成多个处理器可以分发的块。这些块同时处理同一个问题。它减少了解决问题所需的总时间。它将多个处理器连接到内存。它们要么在所有处理器之间共享,要么通过网络分发。

有几种编程语言支持并行处理。

并行编程范式的例子是 SISAL、Parallel Haskell、SequenceL、System C(用于 FPGA)、Mitrion-C、VHDL 和 Verilog、MPI。

声明式编程范式

声明式编程是一种构建计算机程序结构和元素的风格。它表达了计算的逻辑,而不描述其控制流。换句话说,非命令式的编程风格称为声明式编程范式。它强调程序应该做什么

声明式编程范式的例子有 Scala、Haskell、Erlang、Lisp、ML、Closure、SQL、XSQL 等。

优点

  • 高效且代码量少
  • 引用透明性
  • 幂等性
  • 错误恢复
  • 可读性
  • 交换性
  • 易于优化

缺点

  • 难以理解。
  • 它基于一个不熟悉的概念模型。
  • 在编程时难以考虑特定应用程序的特性。

声明式编程范式类型

  • 函数式编程
  • 逻辑编程
  • 数据库处理方法

函数式编程

它是声明式编程的一个子集。使用该范式编写的程序使用函数、代码块,旨在表现得像数学函数。它不鼓励通过赋值改变变量的值。而是大量使用递归。

函数式编程的例子是Haskell、SML、Clojure、Scala、Erlang、Clean、F# 等。

逻辑编程

逻辑范式采用一种确定性的方法来批判性地思考。建立关于情况的不同逻辑声明,确立完全已知的事实。该范式分为三个部分

  1. 定义/断言集,描述问题域
  2. 相关事实陈述
  3. 以查询形式的目标陈述

逻辑编程的例子是PROLOG、SQL等。

数据库处理方法

数据驱动的编程范式依赖于数据及其演变。在此范式中,程序语句由数据定义,而不是硬编码一系列步骤。数据集程序是业务数据系统的核心,提供文档创建、数据输入、更新、查询和报告功能。

有一些编程语言主要是为数据集应用程序开发的。例如,SQL。它用于结构化数据的流,用于过滤、转换、聚合或调用其他项目。因此,它有其广泛的应用。

数据库处理方法编程的例子是SQL(仅 DQL)、QML、RDQLSPARQL

除了命令式和声明式编程方法之外,还有一种称为多范式的范式。

多范式

支持一种以上编程范式的编程语言属于此类。这类语言的设计目标是允许程序员为给定任务使用最合适的编程风格以及与语言结构相关的编程风格。

多范式编程语言的例子是C++、Java、Python等。这些语言在一定程度上支持面向对象编程,通常与命令式和声明式编程范式结合使用。

通常,在一个程序中会使用不同的编程标准。因此,编程语言(在不同程度上)支持各种标准。

下表简要描述了编程范式。

范式关键概念程序程序执行结果
过程式命令命令序列命令执行计算机内存的最终状态
函数式函数函数集合函数执行主函数的值
逻辑谓词逻辑公式:公理和定理定理的逻辑证明证明的成功或失败
面向对象Object对象类集合对象之间的消息交换对象状态的最终状态

面向对象范式的状态是最抽象的,因为它的一些基本思想可以轻松地与其它风格的原则和编程技术相结合。

编程范式编程语言
过程式FORTRAN、COBOL、ALGOL、BASIC、C 和 Pascal。
函数式Haskell、SML、Clojure、Scala、Erlang、Clean、F# 等。
面向对象Java、Python、C++、C#、Kotlin、Scala、Swift、Ruby、Perl 等。
逻辑PROLOG、SQL 等。
并行处理SISAL、Parallel Haskell、SequenceL、System C(用于 FPGA)、Mitrion-C、VHDL 和 Verilog、MPI。
数据库处理方法SQL(仅 DQL)、QML、RDQL 和 SPARQL。

命令式与声明式编程范式

下表描述了命令式和声明式编程范式之间的主要区别。

What is programming
比较基础命令式范式声明式范式
编程风格它的风格是循序渐进的。定义问题是什么以及需要什么数据转换
方法它遵循传统方法。它遵循非传统方法。
程序员关注点它描述了如何解决问题它描述了问题是什么
决策能力用户做出决策并指示编译器。它允许编译器做出决策。
包含它是一系列命令它是一组语句
流程它表达了控制流。它表达了数据流。
状态变化它很重要。它不存在。
主要操作单元类的实例和结构。函数作为第一类对象和数据集合。
执行顺序执行顺序是重要的。执行顺序不重要
示例C、FORTRAN、Ada、Python 等。PROLOG、LISP、Haskell、ASP 等。

代码比较

命令式范式声明式范式
let array = [1, 2, 3, 4, 5, 6]
var sum = 0
var odd = []
for element in array
{
sum = sum + element
if element % 2 == 1
{
odds.append(element)
}
}
let numbers = [1, 2, 3, 4, 5, 6]
let sum = reduce(numbers, 0, +)
let odds = filter(numbers, {$0%2 == 1})

编程是用来做什么的?

如今,计算机编程非常重要,因为我们的世界有很大一部分是自动化的。

人类需要能够控制人与机器之间的交互。由于计算机和机器能够高效且准确地完成任务,因此我们使用计算机编程来利用这种计算能力。

因此,编程用于解决复杂问题。它使我们的任务变得容易,还节省了时间和精力。

编程过程

编程包括不同的阶段。它遵循编辑-编译-验证的方法。下图展示了这一点。

What is programming

编程与编码

在计算机科学领域,有两个流行词,即编码编程。听到这两个词时,它们听起来相似,但它们是不同的词。这两个词可以互换使用。

相反,根据软件开发术语,编程和编码之间存在一些差异。

What is programming

编程

它是开发一个功能齐全、无错误的软件程序的過程。它包括以下内容

  • 规划
  • 设计
  • 测试
  • 部署
  • 维护

我们可以说,编程不仅仅局限于编码。它还实现了算法、数据结构、缓解问题等等。

编码

编码是将代码从人类语言解释为机器语言的行为。我们也可以说它是编程的一个子集,为编程奠定基础。在编码中,程序员指示计算机执行什么操作。

编程编码之间的关键区别在于,编程是一个开发程序或应用程序的过程,该过程遵循某些标准并执行指定任务。

让我们看看编程和编码之间的主要区别。

比较基础编程编码
定义开发一个功能齐全的软件称为编程将自然语言(所需逻辑)转换为机器语言称为编码
所需技能一个人必须熟悉数据结构、算法分析技能一个人必须熟悉任何编程语言,如Java、C、C++等。
包含的任务它包括分析和概念化、调试、编译、测试、内存管理实现将逻辑翻译成机器代码。
所需工具编程中需要分析工具、代码生成器、数据库、数据结构、测试框架、链接器、编译器、代码编辑器、GUI 设计器、汇编器、调试器、性能分析工具。编码只需要文本编辑器,如WordPadNotepad,以及 Eclipse、Bootstrap 等IDE

视角一种有条理的方法,注重细节。反复试验的方法,没有事先准备。
结果我们得到一个设计良好的软件、应用程序或网站。我们得到一小块功能齐全的代码。
专业知识在处理编程时,一个人必须有创建算法、建模问题、处理数据方面的经验。在编码中,一个人必须了解编程语言、语言相关的语法、关键字等。

在对编码和编程进行多方面比较后,我们可以得出结论:编码是编程的第一步,它处理解释需求并编写一套替代代码以转换为机器可理解的语法,而编程则处理可执行项目的后续各种方面,以根据给定的用户输入生成适当的机器级输出。