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

计算机宏

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

所谓宏,就是一些命令组织在一起,作为一个单独命令完成一个特定任务。Microsoft Word中对宏定义为:“宏就是能组织到一起作为一独立的命令使用的一系列word命令,它能使日常工作变得更容易”。Word使用宏语言Visual Basic将宏作为一系列指令来编写。 计算机科学里的宏是一种抽象的,根据一系列预定义的规则替换一定的文本模式。Excel办公软件自动集成了“VBA”高级程序语言,用此语言编制出的程序就叫“宏”。使用“VBA”需要有一定的编程基础,并且还会耗费大量的时间,因此,绝大多数的使用者仅使用了Excel的一般制表功能,很少使用到“VBA”。 解释器或编译器在遇到宏时会自动进行这一模式替换。对于编译语言,宏展开在编译时发生,进行宏展的工具常被称为宏展开器。宏这一术语也常常被用于许多类似的环境中,它们是源自宏展开的概念,这包括键盘宏和宏语言。绝大多数情况下,“宏”这个词的使用暗示着将小命令或动作转化为一系列指令。 宏的用途在于自动化频繁使用的序列或者是获得一种更强大的抽象能力--但这常常是一回事。 计算机语言如C或汇编语言有简单的宏系统,由编译器或汇编器的预处理器实现。C的宏预处理器的工作只是简单的文本搜索和替换,使用附加的文本处理语言如M4,C 程序员可以获得更精巧的宏。 Lisp类语言如Common Lisp和Scheme有更精巧的宏系统: 宏的行为如同是函数对自身程序文本的变形,并且可以应用全部语言来表达这种变形。一个C宏可以定义一段语法的替换,然而一个Lisp的宏却可以控制一节代码的计算。获得了控制代码的执行顺序(见惰性计算和非限制函数)的能力,使得新创建的语法结构与语言内建的语法结构不可区分。例如,一种Lisp 方言有 cond 而没有if ,就可以使用宏由前者定义后者。Lisp 语法的去部主要扩展,比如面向对象的CLOS 系统,可以由宏来定义。

转载于:https://my.oschina.net/u/3457493/blog/1542769

相关文章:

  • ES内部分片处理机制——Segment
  • 30 天精通 RxJS(18): Observable Operators - switchMap, mergeMap, concatMap
  • python数据结构之 set
  • Gartner全球IAAS市场报告:阿里云进入全球前三
  • 问题-MethodAddress返回NIL?MethodAddress与published的关系?
  • 【批处理学习笔记】第二十五课:间接传递
  • 献身说法---修复bug时的一些小技巧
  • 老调重弹-access注入过主机卫
  • awk 截取某段时间的日志
  • 表单中readonly的input等标签,禁止光标进入(focus)的几种方式
  • vue从创建到完整的饿了么(18)购物车详细信息的展示与删除
  • windows下VisualStudio和QtCreator搭建Qt开发环境
  • mysql 基础学习1
  • Spring第一个helloWorld
  • 剑指offer十五之反转链表
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • 【node学习】协程
  • 230. Kth Smallest Element in a BST
  • 4. 路由到控制器 - Laravel从零开始教程
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • chrome扩展demo1-小时钟
  • ES10 特性的完整指南
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • Iterator 和 for...of 循环
  • Java-详解HashMap
  • Java知识点总结(JavaIO-打印流)
  • js递归,无限分级树形折叠菜单
  • leetcode388. Longest Absolute File Path
  • RxJS 实现摩斯密码(Morse) 【内附脑图】
  • use Google search engine
  • windows下mongoDB的环境配置
  • 程序员该如何有效的找工作?
  • 基于MaxCompute打造轻盈的人人车移动端数据平台
  • 漫谈开发设计中的一些“原则”及“设计哲学”
  • 前端_面试
  • 思维导图—你不知道的JavaScript中卷
  • 微信公众号开发小记——5.python微信红包
  • 用 Swift 编写面向协议的视图
  • JavaScript 新语法详解:Class 的私有属性与私有方法 ...
  • 资深实践篇 | 基于Kubernetes 1.61的Kubernetes Scheduler 调度详解 ...
  • ​马来语翻译中文去哪比较好?
  • ​人工智能书单(数学基础篇)
  • #QT项目实战(天气预报)
  • #基础#使用Jupyter进行Notebook的转换 .ipynb文件导出为.md文件
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (Oracle)SQL优化技巧(一):分页查询
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (TipsTricks)用客户端模板精简JavaScript代码
  • (官网安装) 基于CentOS 7安装MangoDB和MangoDB Shell
  • (终章)[图像识别]13.OpenCV案例 自定义训练集分类器物体检测
  • * 论文笔记 【Wide Deep Learning for Recommender Systems】
  • .NET Compact Framework 多线程环境下的UI异步刷新
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .NET Core 中插件式开发实现
  • .NET 常见的偏门问题