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

安全知识见闻-编程语言

编程语言

一、编程语言的作用

二、编程语言类型

1. 通用编程语言

2. 函数式编程语言

3. 数据科学和机器学习领域

4. Web全栈开发

5. 移动开发

6. 嵌入式系统开发

7. 其他

二、编程语言的局限性

三、总结


学习视频泷羽sec:安全见闻(1)_哔哩哔哩_bilibili

编程语言

        编程语言是计算机与人类之间的桥梁,允许开发者编写指令以实现各种功能。它们的类型多样,包括高阶语言和低阶语言,适用于不同的应用场景,如通用编程、数据库管理和网络开发。编程语言可分为编译型和解释型,分别在执行效率和调试便利性上有不同优势。此外,面向对象和函数式编程的概念丰富了编程范式,提升了代码的可维护性和复用性。随着技术的进步,新的语言和框架不断出现,推动了软件开发的创新和效率提升。总的来说,编程语言在现代技术中扮演着不可或缺的角色。

一、编程语言的作用

  • 自动化任务

    • 编程语言可以帮助用户自动化重复性任务,例如数据处理、系统管理和网络监控,提高效率。

  • 开发软件

    • 程序员使用编程语言创建各种软件应用,包括桌面应用、移动应用和网页应用。这些应用可以满足特定需求或提供娱乐。

  • 系统编程

    • 某些编程语言(如 C 和 C++)用于系统级编程,允许开发者与硬件直接交互,编写操作系统和驱动程序。

  • 数据分析

    • 编程语言(如 Python 和 R)在数据科学和分析中广泛应用,帮助处理、分析和可视化数据,从中提取有价值的信息。

  • 网络开发

    • 编程语言(如 JavaScript、PHP 和 Ruby)被广泛用于开发动态网站和网络应用,支持前端和后端开发。

  • 游戏开发

    • 编程语言(如 C#、C++ 和 Lua)在游戏开发中发挥重要作用,用于创建游戏逻辑、图形和交互。

  • 人工智能与机器学习

    • 特定的编程语言(如 Python)提供强大的库和框架,支持机器学习和人工智能的开发,帮助创建智能应用。

  • 嵌入式系统

    • 编程语言(如 C 和 Assembly)用于编写嵌入式系统的代码,控制各种设备和传感器。

  • 学术研究与教育

    • 编程语言在学术界用于模拟实验、分析数据和教学,帮助学生理解计算机科学和编程原理。

  • 促进创新

    • 编程语言提供了实现新想法和技术的工具,促进了各个领域的创新和进步。

    • 通过这些作用,编程语言成为现代技术和科学不可或缺的组成部分。


二、编程语言类型

1. 通用编程语言

后端语言通常用于处理服务器端的逻辑,如数据库操作、业务逻辑处理等。

例如,PHP可能会有反序列化漏洞、SQL注入漏洞、命令注入漏洞等问题。

强调了即使没有使用过所有后端语言,至少需要学习一种,以便理解和处理这些安全问题。

特别提到了请求走私可能涉及到协议问题,暗示了对网络协议的理解也是必要的。

前期最好学习:Python、PHP、Java

C语言: 一种通用的、面向过程的编程语言,广泛应用于系统软件和嵌入式开发,window逆向。
C++: 在C语言基础上发展而来,支持面向对象编程,常用于游戏开发、高性能计算等领域。
Java: 一种广泛使用的面向对象编程语言,具有跨平台性,应用于企业级应用开发等。
Python: 简洁易学,拥有丰富的库,适用于数据分析、人工智能、Web开发等。
JavaScript: 主要用于网页前端开发,也可用于服务器端开发(Node.js)。
C#: 由微软开发,主要用于Windows平台上的应用开发。
Ruby: 一种简洁而富有表现力的编程语言,常用于Web开发。
PHP: 主要用于Web开发,尤其适合服务器端脚本编程。
Go: 一种高效、简洁的编程语言,适用于网络编程和云计算等领域。
Swift: 苹果公司开发的编程语言,用于iOS和macOS应用开发。
Kotlin: 可与Java互操作,主要用于Android开发。

2. 函数式编程语言

Haskell: 纯函数式编程语言,以强大的类型系统和数学上的严谨性著称。
Lisp: 包括Common Lisp、Scheme等,历史悠久的编程语言家族,以其高度的灵活性和宏系统闻名。
Clojure: 运行在Java虚拟机上的Lisp方言,结合了函数式编程和Java平台的优势。

3. 数据科学和机器学习领域

R: 在统计分析和数据可视化方面应用广泛。
Julia: 设计用于高性能科学计算和数据分析。

4. Web全栈开发

TypeScript: 是JavaScript的超集,增加了静态类型检查等特性,提高了大型项目的开发效率。

5. 移动开发

Objective-C: 曾经是iOS开发的主要语言,现在逐渐被Swift取代。

6. 嵌入式系统开发

Assembly Language(汇编语言): 不同的处理器架构有不同的汇编语言,用于对硬件进行底层控制。

7. 其他

Pascal: 曾经在教学和早期软件开发中有广泛应用。
Delphi: 基于Object Pascal,用于快速应用开发。
Scala: 融合了面向对象编程和函数式编程,运行在Java虚拟机上。
Elixir: 基于Erlang虚拟机,具有高并发和容错性,适合构建分布式系统。

二、编程语言的局限性

  • 抽象级别

    • 高阶语言虽然易于理解,但可能无法充分利用硬件性能,导致效率低下。

    • 低阶语言(如汇编语言)能提供更高的性能,但编写和维护复杂度大。

  • 学习曲线

    • 某些语言(如 C++)因其复杂的语法和概念(如指针和内存管理)对新手友好度较低,学习曲线陡峭。

  • 日常使用

    • 解释型语言通常在性能上不如编译型语言,可能不适合高性能计算和实时应用。

    • 但是编译型语言会需要更复杂的代码才能完成操作。

    • 编译型语言如(如 C++、JAVA)在编写程序方面会更优于编译型语言。

  • 复杂度例子

    • Python编写一个Hello World 程序

      • print("Hello, World!")
    • JAVA编写一个Hello World 程序

      • public class HelloWorld {
            public static void main(String[] args) {
                System.out.println("Hello, World!");
            }
        }

编程语言各个都会存在一个方面的局限性,就以代码复杂度、难易程度显而易见,但是越复杂的代码编译成框架时它的性能和实时应用也会比解释型语言更高。


三、总结

编写web程序时,后端可以使用多种语言,如PHP、Go、Lua、Java等。

选择编程语言应根据个人需求和项目要求,考虑语言的适用性和开发效率。

例如,C/C++虽然功能强大,但开发复杂度高,而PHP、Python等语言则更简单快捷。


http://www.kler.cn/news/367216.html

相关文章:

  • S-Function
  • C#的自定义Tip窗体 - 开源研究系列文章
  • ubuntu22.04安装Python的uwsgi
  • 软件测试人员必问的十大面试题..
  • 【R + Python】iNaturalist 网站图片下载 inat api
  • Harmony 开发与H5进行交互
  • Java面试题十一
  • idea历史版本下载
  • Redis 过期策略 总结
  • 过采样与欠采样技术原理图解:基于二维数据的常见方法效果对比
  • git学习(1)(简单概述、代码版本控制方式(集中/分布))
  • JAVA基础:多线程 (学习笔记)
  • Tesseract OCR 安装
  • Llama 3.2-Vision 多模态大模型本地运行教程
  • 中国人寿财险青岛市分公司:科技赋能,车险服务再升级
  • QThread finished Qt::DirectionConnection可能导致start()不会返回的问题
  • ️ Vulnhuntr:利用大型语言模型(LLM)进行零样本漏洞发现的工具
  • 【微服务】Java 对接飞书多维表格使用详解
  • 数据分析人员需要掌握sql到什么程度?
  • PHP写一个二维数组排序算法函数可以调用PHP内置函数
  • 【Linux | 网络I/O模型】五种网络I/O模型详解
  • Docker下载途径
  • 【Windows】电脑端口明明没有进程占用但显示端口被占用(动态端口)
  • 正则表达式使用举例一(Python下)
  • 220V降12V1A恒流点灯WT5112
  • 论文笔记(五十一)Challenges for Monocular 6-D Object Pose Estimation in Robotics