首页 > 编程语言 >编程与大语言模型的冷知识,你知道几个?

编程与大语言模型的冷知识,你知道几个?

时间:2024-07-24 10:53:34浏览次数:11  
标签:知识 语言 编程语言 Python 模型 编程 JavaScript

目录

1.ASCII中的“Hello, World!”

2.Python的缩进规则

3.JavaScript的“undefined”与“null”

4.C++中的“this”指针

5.PHP的魔术方法

6.Go语言的并发模型

7.最早的编程“虫子”

8.Hello, World! 的起源

9.goto 语句争议

10.Python 的命名

11.隐藏的彩蛋

12.最古老的编程语言

13.空格 vs 制表符之争

14.JavaScript 的误解

15.神奇的Fibonacci

16.编译器与解释器

17.10进制不是唯一

18.注释的妙用:

19.条件语句的多样

20.Don't Repeat Yourself (DRY)

21.摩尔斯电码与二进制的联系

22.鸭子类型

23.第一个计算机程序

24.汇编语言的起源

25.大语言模型的运行成本

26.大语言模型知识的泛化

27.大语言模型的黑盒性质

结语


1.ASCII中的“Hello, World!”

在ASCII码中,“Hello, World!”的首字母"H"对应的十进制值是72,而整个字符串在内存中占用的空间比你想象的要多一点,因为它通常会以null字符('\0')结尾,这是C语言和其他许多语言中的字符串标准。

2.Python的缩进规则

 Python是唯一一种使用缩进来区分代码块的主流编程语言。这意味着在其他语言中常见的括号或关键字(如begin/end)在Python中是不需要的。

3.JavaScript的“undefined”与“null”

 在JavaScript中,“undefined”和“null”都表示某种形式的“无”,但它们是不同的。“undefined”通常意味着变量被声明了但没有赋值,而“null”则是一种可以被赋给变量的值,表示“没有任何对象”。

4.C++中的“this”指针

在C++中,类成员函数隐含地接收一个额外的参数,即“this”指针,它指向调用该方法的对象。这在底层实现上很有用,但在大多数情况下,程序员不需要直接使用它。
Java的自动装箱和拆箱: Java自JDK 5.0起引入了自动装箱和拆箱特性,使得基本数据类型和它们对应的包装类之间可以自动转换,简化了代码编写。

5.PHP的魔术方法

PHP中有许多“魔术方法”,如__construct(), __destruct(), __toString(), __call(), __get(), __set()等,这些方法可以在特定的情况下自动调用,为类提供了强大的动态功能。
Ruby的块(Block)和Proc: Ruby中的块和Proc是处理代码片段的强大工具,它们可以作为参数传递给方法,并在适当的时候执行,这在函数式编程中非常有用。

6.Go语言的并发模型

Go语言的并发模型基于CSP(Communicating Sequential Processes),使用goroutines和channels来实现轻量级的线程和通信,使得并发编程更加简单和高效。
这些冷知识展示了不同编程语言的独特特性和设计哲学,对于深入理解编程语言和提升编程技巧都有帮助。

7.最早的编程“虫子”

计算机中的“bug”一词起源于Grace Hopper在1947年发现的一只实际的飞蛾卡在哈佛大学的Mark II计算机继电器中,她幽默地将这称为第一个“计算机虫子”。

8.Hello, World! 的起源

这个编程入门传统可以追溯到1974年的贝尔实验室,Brian Kernighan在他的《Programming in C: A Tutorial》一书中首次使用了"hello, world"作为示例程序。

9.goto 语句争议

Edsger Dijkstra在1968年发表了一篇名为《Go To Statement Considered Harmful》的论文,引发了关于在现代编程中是否应该避免使用goto语句的广泛讨论。

10.Python 的命名

Guido van Rossum创造了Python语言,并以BBC的喜剧小品《Monty Python's Flying Circus》为灵感命名,而不是爬行动物。

11.隐藏的彩蛋

许多编程语言的编译器或解释器中都隐藏有复活节彩蛋,比如在某些版本的Python中输入import this,会显示The Zen of Python(Python之禅)。

import this
图1

12.最古老的编程语言

许多人认为FORTRAN(公式翻译器)是第一种高级编程语言,它于1957年由IBM的约翰·巴科斯开发。但实际上,更早的一种叫做Plankalkül的语言是由康拉德·楚泽在1940年代设计的,但由于二战的原因,直到1970年代才被正式发表。

13.空格 vs 制表符之争

在编程社区中,使用空格还是制表符进行代码缩进一直是一个备受争议的话题,甚至引发了著名的“大圣战”(Space vs Tab War),这体现了编程文化中对代码规范和可读性的重视。比尔盖茨说:“更喜欢用Tab,因为我想让column排成一行。对于某些Word文档,我用Tab,如此,当我想要修改部分内容,需要返回并编辑时,Tab显然更容易操作。”

14.JavaScript 的误解

尽管名称相似,但JavaScript与Java语言实际上并没有太大关联,它们的设计目的、语法结构和应用领域都有所不同。JavaScript最初被命名为Mocha,后来改为LiveScript,最终为了营销考虑改名为JavaScript。

15.神奇的Fibonacci

斐波那契数列是编程练习中的一个经典题目,除了递归实现外,还可以通过动态规划、矩阵快速幂等高级算法优化性能,展现了不同算法效率的对比。

16.编译器与解释器

 编译型语言(如C、C++)将源代码一次性转换为机器语言执行文件,而解释型语言(如Python、JavaScript)则是边解释边执行,每执行一次都要翻译一次。各有优缺点,比如编译型语言运行速度快,解释型语言更灵活,易于跨平台。不过,这种区分在现代语言中变得模糊,比如Java虚拟机(JVM)既包含编译也包含解释过程。

17.10进制不是唯一

 计算机内部处理数据时实际上是以二进制(0和1)进行的。此外,不同的应用场景还可能使用八进制、十六进制等基数系统,例如在表示颜色代码或内存地址时常用十六进制。

18.注释的妙用:

在一些编程语言中,如Python,你可以通过在注释中使用特定格式来生成文档,这被称为文档字符串(docstrings)。IDE和文档生成工具可以自动读取这些注释,生成帮助文档。

19.条件语句的多样

虽然大多数编程语言都有if-else结构,但有些语言提供了更有趣的条件表达方式。例如,Ruby中的ternary operator(条件运算符)可以写成condition ? true_expression : false_expression,而Swift支持更复杂的switch语句,它可以处理范围、元组等多种情况。

20.Don't Repeat Yourself (DRY)

这是软件工程中的一条重要原则,鼓励程序员避免编写重复的代码。通过使用函数、类、模块或模板等技术来提高代码的复用性,减少错误和维护成本。

21.摩尔斯电码与二进制的联系

萨缪尔·莫尔斯发明的摩尔斯电码使用两种状态(点和划)来表示字母,这与计算机中使用的二进制(0和1)有着概念上的相似之处,都是利用基本的符号组合来表达复杂的信息。

22.鸭子类型

这是一个来自动态类型语言的概念,指的是“如果它走起来像鸭子,叫起来也像鸭子,那么它就是鸭子”。在编程中,这意味着不关心对象的具体类型,而关注它能否响应特定的消息或方法调用。

23.第一个计算机程序

Ada Lovelace,通常被认为是世界上第一位程序员,她在19世纪为查尔斯·巴贝奇的分析机编写了算法,这被认为是史上第一个计算机程序,尽管当时的机器并未实际运行这些程序。

24.汇编语言的起源

最早的编程语言并非高级语言,而是与机器语言相近的汇编语言。汇编语言通过助记符代替机器语言中的二进制或十六进制指令,使得编写程序变得更加直观易读,但仍然保留了对硬件的直接控制。

25.大语言模型的运行成本

训练大语言模型的成本极高。除了需要大量的GPU或TPU计算资源外,还需要庞大的电费和冷却系统。据估计,训练一次GPT-3可能花费数百万美元。

26.大语言模型知识的泛化

尽管大模型在许多任务上表现出色,但它们并不真正理解知识,而是通过模式匹配和统计关联来生成文本。这意味着它们可能会产生看似合理但实际上错误的信息。

27.大语言模型的黑盒性质

大模型往往被视为黑盒,因为它们的内部工作原理复杂且难以解释,这限制了它们在需要高度透明度领域的应用。

结语

这些冷知识不仅增添了编程世界的趣味性,也反映了编程语言和技术发展的历史和文化。

标签:知识,语言,编程语言,Python,模型,编程,JavaScript
From: https://blog.csdn.net/a_pjx_z/article/details/140655668

相关文章

  • Python编程时输入操作数错误
    我正在用Python编写下面的代码来模拟控制系统。但是,当我调试代码时,我面临以下问题:matmul:输入操作数1没有足够的维度(有0,gufunc核心,签名为(n?,k),(k,m?)->(n?,m?)需要1)文件“D:\ÁreadeTrabalho\GitHub\TCC\CódigosMarcela\SistemaSISO_tres_estados_new.py”,......
  • day2 测试基础知识
    1.简述黑盒测试和白盒测试的优缺点?2.在没有产品说明书和需求文档的情况下能够进行黑盒测试的设计吗?能,可以通过其他工作内容去替代产品说明书和需求文档3.单元测试的策略有哪些,主要内容有哪些?逻辑覆盖,循环覆盖,同行评审,桌前检查,代码走查,代码评审,静态数据流分析......
  • Python入门知识点 7--散列类型与字符编码
    1、初识散列类型(无序序列)数据类型分为3种:   前面已经学过了两种类型   1.数值类型:int/float/bool只能存储单个数据      2.序列类型:str/list/tuple,有序的存储多个数据--有序类型,有下标,可以进行索引切片步长操作          3.散列类型......
  • Python入门知识点 6--序列类型的方法
    1、初识序列类型方法序列类型的概念:数据的集合,在序列类型里面可以存放任意的数据也可以对数据进行更方便的操作这个操作就是叫增删改查(crud)(增加(Creat),读取查询(Retrieve),更新(Update),删除(Delete)几个单词的首字母简写)增删改查是操作数据最底层的操作(从本质......
  • 数据库入门知识点 1--初识MySQL数据库
    1、数据库(1)json,wps,txt,md,···都是保存文本数据的(数据交互麻烦,数据安全问题)(2)列表,元组,字典,集合,···(保存临时的数据,对数据进行处理的时候保存。)银行卡----存入的钱(不允许随意修改的)游戏的数据-----数据不存档--没有安全保障----第二天就会回到解放前。(3)使用专门的数据库......
  • pytorch模型迁移介绍
    迁移的基本流程 第一步:算子满足度分析方法一 在pytorchprofiler在GPU上提取算子方法二使用CANN分析迁移工具 第二步:配置相关硬件环境,在pytorch的基础上安装pytorchadapt;模型迁移-手工迁移(单Device代码迁移)导入NPU相关库(pyTORCH1.8)将device类型修改为npu将训......
  • CMake使用知识点之三——测试 用例
    知识点积累1内部宏${PROJ_SOURCE_DIR}:2单元测试代码cmake_minimum_required(VERSION3.10)project(ExampleProject)#启用测试enable_testing()#添加可执行文件main(如果有主程序的话)add_executable(mainmain.cpp)#添加测试可执行文件test1和test2add_e......
  • 大语言模型对时间序列预测真的有用吗?
    我们已经看到了语言模型的巨大进步,但时间序列任务,如预测呢?今天我们推荐一篇论文,对现有的语言模型和时间序列做了深入的研究。将探讨了是否可以从大型语言模型(LLMs)中获益于时间序列(TS)预测。时间序列时间序列是机器学习中最具挑战性的工作领域之一,解决时间序列任务,如异常检测、时......
  • AJAX基础知识
    1.AJAX1.什么是AJAX​AsynchronousJavascriptAndXml​异步的JS和xml(EXtensibleMarkupLanguage)​通过JS异步的向服务器发送请求并接收响应数据​同步访问:​当客户端向服务器发送请求时,服务器在处理的过程中,浏览器只能等待,效率较低​异步访问:​当......
  • [2024JZYZ暑期集训]知识点总结
    前言第三次暑期集训了,与前两次不同,这次没有前两次的激动了,所以也能够更深入地学习算法。闲话宿舍挺好,有空床能住。捡了三块钱,史上最灵异事件。R班好热闹。认识了几个郑州那边的大佬知识点Day1讲了几个基础数据结构(树状数,线段树),作业里面的题目很多之前都做过,就当复习了。......