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

编程语言发展历史:赋值与相等运算符的变迁历程

本文摘取自笔者书稿《编程语言发展历史》

赋值运算符是编程语言最基础的运算符,其发展历史也非常有趣。最早的赋值语句就是使用等号“=”来表示,一些语言为了让赋值运算在数学形式上更加严谨(形如“x = x + 1”的表达式在数学上不成立),将赋值运算符改为“:=”表示,这类语言以ALGOL、Simula、Pascal、Ada、Smalltalk为代表。

很多语言的赋值和比较两个运算符的形式是不同的,但也有例外。在MySQL中,“:=”和“=”都能用于赋值,“=”也是比较运算符,其语义取决于运算符的上下文。PL/I 语言的比较和赋值都是“=”,其具体的含义也取决于运算符的上下文。很多编程语言的赋值表达式都会返回表达式的值,这种做法在一些场景下能简化代码,但如果在if语句中将“==”笔误写为“=”时则很难排查发现问题,于是一些语言(如Python、Swift)规定赋值表达式不返回表达式的值来避免这个问题。

ALGOL 58首先让“:=”具有声明变量的语义,Python 3.8引入赋值表达式运算符(又被形象地称为海象运算符)“:=”,支持将表达式的值赋值给尚不存在的变量,并返回变量值(Python的“=”运算符不返回表达式的值),Go语言也将声明并赋值运算符定为“:=”。这些设计让“=”和“:=”在同一个语言中同时具有赋值的语义,而“:=”更进一步还具有声明变量的额外语义,简化了支持类型推导语言声明变量的代码形式,提高了语言的表现力。在硬件描述语言如Verilog中,赋值甚至被分成两种场景:阻塞赋值采用“=”运算符,而非阻塞赋值采用“<=”。

图1-1展示了主流编程语言中赋值与相等运算符的发展历史。

在这里插入图片描述

赋值与相等运算符的变迁经历了从简单到复杂,再到简单的过程;从编写不便到便于编写,再到不容易出错的过程。这个过程是编程语言许多语法特性的发展的缩影,揭示了编程语言内在的发展规律。

截取片段进行分享,不知道大家是否喜欢这类历史性的内容~

相关文章:

编程语言发展历史:赋值与相等运算符的变迁历程

本文摘取自笔者书稿《编程语言发展历史》 赋值运算符是编程语言最基础的运算符&#xff0c;其发展历史也非常有趣。最早的赋值语句就是使用等号“”来表示&#xff0c;一些语言为了让赋值运算在数学形式上更加严谨&#xff08;形如“x x 1”的表达式在数学上不成立&#xff0…...

求职Leetcode题目(2)

1.柱状图中最大的矩形 据说这是2024年字节二面的题目&#xff0c;我感觉这道题跟接雨水有点类似&#xff0c;最重要的思路还是要找到什么时候能形成矩形的这么个情况&#xff0c;某个范围的矩形的高度&#xff0c;是由最短的柱形来决定的。 我们先整理一下&#xff0c;解决这道…...

深入探索 Postman:使用 API 性能测试优化你的 Web 服务

引言 在当今快速发展的互联网时代&#xff0c;Web 服务的性能至关重要。API 作为服务之间的桥梁&#xff0c;其性能直接影响到整个应用的响应速度和用户体验。Postman&#xff0c;作为一个多功能的 API 开发工具&#xff0c;提供了强大的性能测试功能&#xff0c;帮助开发者评…...

校车购票小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;我的乘车信息管理&#xff0c;车辆信息管理&#xff0c;座位管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;车辆信息&#xff0c;我的 开发系统…...

拯救数据危机!2024年最受欢迎的数据恢复软件评测

现在大家快速传输资料的方式都变成了电子档&#xff0c;有些数据是存储在电脑上&#xff0c;有些存储在手机&#xff0c;有的存储在U盘甚至其他一些电子设备上。电子设备存储数据方便&#xff0c;丢失数据也总在意料之外。很多时候我们多学会一个工具&#xff0c;比如转转大师数…...

记一次因为在html两个地方引入vue.js导致组件注入失败的问题

这个问题我遇到两次了&#xff0c;是在恼火&#xff0c;不对&#xff0c;三次了&#xff0c;我如果不做这个笔记&#xff0c;我确定我还会遇到第三次。 尾部这个去掉就行 因为头部有了 遇到这种bu g好恼火&#xff0c;解决了又怎么样呢&#xff1f;重蹈覆辙的滋味不好受...

Postman中的智慧重试:API测试用例的错误处理与重试逻辑设置

Postman中的智慧重试&#xff1a;API测试用例的错误处理与重试逻辑设置 在API测试过程中&#xff0c;错误处理和重试逻辑是确保测试准确性和可靠性的重要环节。Postman提供了多种功能来处理测试中可能出现的错误&#xff0c;并允许自定义重试逻辑以适应不同的测试场景。本文将…...

docker部署本地词向量模型

开源项目&#xff1a;GitHub - huggingface/text-embeddings-inference: A blazing fast inference solution for text embeddings models 1. 下载词向量模型 参考我的另一篇博客&#xff1a;langchain 加载本地词向量模型 2. 部署词向量模型 就三行命令 model/data/BAAI/…...

接口自动化中对于文件上传的处理方法

正常的接口自动化基本都是json的格式&#xff0c;对于文件上传是一种特殊的格式是表单格式针对这种表单格式在接口自动化中怎么处理&#xff0c;主要通过工作中使用的一个实际的例子进行分享 举例&#xff1a;web上需要导入一个文件实现相关的功能&#xff0c;主要通过两个接口…...

Java高频面试题分享

文章目录 1. 策略模式怎么控制策略的选取1.1 追问&#xff1a;如果有100种策略呢&#xff1f;1.2 追问&#xff1a;什么情况下初始化Map 2. 什么是索引&#xff1f;什么时候用索引&#xff1f;2.1 追问&#xff1a;怎么判断系统什么时候用量比较少2.2 追问&#xff1a;如何实时…...

kvm虚拟化平台部署

kvm虚拟化平台部署 kvm概念简介 kvm自linux2.6版本以后就整合到内核中&#xff0c;因此可以看做是一个原生架构. kvm虚拟化架构 硬件底层提供物理层面的硬件支持 linux&#xff08;host&#xff09;&#xff0c;就相当于这个架构中的宿主机&#xff0c;上面运行了多个虚拟机。…...

利用arthas热更新class文件

利用arthas热更新class文件 背景&#xff1a;发现一个bug&#xff0c;家里难以复现&#xff0c;需要在现场环境更新几行代码验证。 arthas-boot version: 3.7.1 java -jar arthas-boot.jar启动arthas 1、利用arthas的sc命令查找确定类名称 sc com.**2、反编译为java文件 …...

天机学堂 第四天 高并发优化总结

前端每隔15秒就发起一次请求&#xff0c;将播放记录写入数据库。 但问题是&#xff0c;提交播放记录的业务太复杂了&#xff0c;其中涉及到大量的数据库操作&#xff1a; 如何进行优化 单机并发能力 变同步为异步 合并写请求 提高单机并发&#xff1a;优化SQL&#xff0c;尽…...

Canva收购Leonardo.ai,增强生成式AI技术能力

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…...

前端练习<HtmlCSS>——照片墙(附完整代码及实现效果)

这个小练习也来源于b站up小K师兄&#xff0c;大家可以通过下面的链接学习哦~up讲的非常详细。 纯CSS写一个简单酷炫的照片墙效果&#xff5e; 先看一下这个照片墙的效果&#xff1a; 1.鼠标没有放到图片上时&#xff0c;照片同比例&#xff0c;每张照片都有倒影的效果。 2.然…...

PHP基于微信小程序的打车平台-计算机毕业设计源码78689

摘 要 本文介绍的是基于PHP开发的打车平台小程序。该系统旨在为用户提供一个便捷、高效的平台&#xff0c;以实现网约车的打车功能。随着社交媒体和互联网的普及&#xff0c;网约车已成为日常交通中常见的形式。然而&#xff0c;传统的打车方式存在不方便、不及时等问题。 微信…...

Vue element ui分页组件示例

https://andi.cn/page/621615.html...

redis存储结构

一、整体结构图 二、redisDb结构体 Redis是一个高性能的键值存储系统&#xff0c;它支持多种类型的数据结构&#xff0c;如字符串、列表、集合、散列等。Redis数据库由多个数据库组成&#xff0c;每个数据库用一个redisDb结构体来表示。 dict *dict; dict指向一个字典结构的指…...

SQL Server 数据误删的恢复

在日常的数据库管理中&#xff0c;数据的误删操作是难以避免的。为了确保数据的安全性和完整性&#xff0c;我们必须采取一些措施来进行数据的备份和恢复。本文将详细介绍如何在 SQL Server 中进行数据的备份和恢复操作&#xff0c;特别是在发生数据误删的情况下。假设我们已经…...

墨烯的C语言技术栈-C语言基础-018

char c; //1byte字节 8bit比特位 int main() { int a 10; //向内存申请四个字节,存储10 &a; //取地址操作符 return 0; } 每个字节都有地址 而a的地址就是它第一个字节的地址 要先开始调试才可以查看监控和查看内存 左边是地址 中间是内存中的数据 最后面的是…...

安卓加固反调试核心机制:D-Bus监听与/proc/self/maps检测绕过实战

1. 这不是“绕过检测”&#xff0c;而是理解检测者如何思考你打开一个加固过的金融类App&#xff0c;Frida一挂上去&#xff0c;进程秒退&#xff1b;换上repack后的so&#xff0c;刚调用Java.perform就抛出SecurityException&#xff1b;甚至只是加载了frida-gadget.so&#x…...

神经形态光子计算与单通道压缩感知:重塑超高速机器视觉新范式

1. 项目概述&#xff1a;为什么我们需要“扔掉”图像传感器&#xff1f;在机器视觉领域&#xff0c;我们似乎陷入了一个“速度陷阱”。无论是工业质检、自动驾驶&#xff0c;还是科学观测&#xff0c;对“更快”的追求永无止境。传统机器视觉的流程非常清晰&#xff1a;图像传感…...

《论三生原理》对《周易》《道德经》的一次根本性重写?

AI辅助创作&#xff1a;一、关于《周易》来历根源的推断属于文化创新实验&#xff0c;是对《周易》来历、性质、底层逻辑的一次根本性重写&#xff1f;《论三生原理》关于《周易》来历根源的推断&#xff0c;确实属于一次大胆的文化创新实验&#xff0c;并且是对《周易》的来历…...

2026 收藏版|程序员转行 AI 大模型应用开发,5 步零基础上岸学习路线

身为程序员&#xff0c;或是打算跨界进军AI应用开发赛道的朋友&#xff0c;真心建议大胆投递岗位&#xff0c;别被招聘简章里严苛的任职要求劝退。诸如精通大模型底层原理、具备多年AI从业经验这类条件&#xff0c;大多只是企业理想招聘标准。 身边不少同行都是秉持先入职深耕、…...

6款靠谱降AIGC软件 创作效率拉满

写论文时总是担心AI生成痕迹太重影响成绩&#xff1f;别慌&#xff0c;这里整理了6款超实用的免费论文降AIGC工具&#xff0c;堪称解决AI痕迹问题的"高效帮手"。它们能有效识别并去除AI生成特征&#xff0c;降痕效果显著&#xff0c;让你的论文更自然流畅&#xff0c…...

零基础构建智能语音助手:小智ESP32后端服务完全指南

零基础构建智能语音助手&#xff1a;小智ESP32后端服务完全指南 【免费下载链接】xiaozhi-esp32-server 本项目为xiaozhi-esp32提供后端服务&#xff0c;帮助您快速搭建ESP32设备控制服务器。Backend service for xiaozhi-esp32, helps you quickly build an ESP32 device cont…...

影刀RPA跨境店群自动化:分布式环境调度与高并发资源隔离架构实战

定了。在这场旷日持久的跨境电商反爬风控拉锯战中&#xff0c;我们终于用一套基于 Python 深度协同的分布式微服务调度架构&#xff0c;重塑了跨境千店矩阵的自动化底座。 这几天&#xff0c;科技圈被“DeepSeek V4 首发华为昇腾芯片&#xff0c;国产 AI 开始打破英伟达 CUDA …...

嘎嘎降AI和率零深度对比:2026年同为低价工具效果差距完整评测报告

嘎嘎降AI和率零深度对比&#xff1a;2026年同为低价工具效果差距完整评测报告 选工具之前做了一周功课&#xff0c;试用了三款&#xff0c;最后定了嘎嘎降AI&#xff08;www.aigcleaner.com&#xff09;。 4.8元&#xff0c;知网AI率从61%降到了5.3%&#xff0c;达标率99.26%…...

终极FileBrowser上手指南:10分钟掌握Web文件管理神器

终极FileBrowser上手指南&#xff1a;10分钟掌握Web文件管理神器 【免费下载链接】filebrowser &#x1f4c2; Web File Browser 项目地址: https://gitcode.com/gh_mirrors/fi/filebrowser FileBrowser是一个功能强大的Web文件管理器&#xff0c;让你能够通过浏览器界面…...

Topit:终极免费macOS窗口置顶工具,让工作效率飙升300%

Topit&#xff1a;终极免费macOS窗口置顶工具&#xff0c;让工作效率飙升300% 【免费下载链接】Topit Pin any window to the top of your screen / 在Mac上将你的任何窗口强制置顶 项目地址: https://gitcode.com/gh_mirrors/to/Topit 你是否经常在macOS上同时处理多个…...