`
totoxian
  • 浏览: 1034736 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

程序是什么--过滤器和状态机

 
阅读更多

程序到底是什么?查阅现代汉语词典其实就是做事的步骤,这是它本源的含义,但是现在很多人都会将它认为是计算机程序,其实计算机程序只是它的一种情况而已,作为做事的步骤,它的含义是什么?前面好像说过,它是一个过滤器,给它一个输入,它会按照自己的逻辑给出一个输出,这个意义上它确实是一个过滤器,它的实体就是过滤逻辑,这种说法十分正确,但是计算机程序仅仅这一种理解方式吗?

其实将程序看做过滤器是按照以数据为中心的观念来理解的,如果按照以处理过程为中心来理解的话,那么程序实际上是一个状态机,因此可以将程序理解成过滤器或者状态机,其实也就这两种理解方式,因为和计算机处理过程相关联的只有数据和过程两个概念,本质上说,计算机程序就是处理数据的过程,从概念上讲,它就是由数据和过程组成的,按照过程为中心的观点,它确实是一个状态机,程序流程随着数据的改变而改变,老早以前我还没有一个系统的架构观念的时候我就说过,程序就是一个if-then-else的组合,包括我们的人脑也是这样,程序在特定的输入的情况下做出特定的反应,以过程为中心来理解就是进入不同的状态,也就是进入不同的处理流程。以解析windows平台的.ini文件为例,有[]括起来的组名,有[]之内的配置选项,有注释,因此有类似下面几种状态转换:读到[的时候将状态从等待转换为读组名,当读到]的时候将状态转换为等待,当读到任意非注释字符的时候,将状态从等待转换为读配置选项,当状态在读配置选项的时候读到换行的时候,将状态转换为等待...理解了程序实际上是一个状态机,解析再复杂的文件也会变得简单,只要你能理解文件的格式,也就不要担心你的程序在理解上会有困难,不光是解析特定格式的文件,实际上处理任何过程程序都是一个状态机,这么理解吧,从程序开始到结束,实际上就是一系列的状态转换,最后转换到退出。

我们的人脑怎么会是一个过滤器,国家下达的命令传到村长这里就变了味,这就是过滤器!总结一下,如果以数据为中心,那么程序就是一个过滤器,如果以处理过程为中心,那么程序就是一个状态机。

分享到:
评论

相关推荐

    StateMachine:squirrel-foundation实现的状态机demo

    MyCondtion:自定义条件过滤器 MyEvent:自定义事件枚举列表 MyState:自定义状态枚举列表 MyStateMachine:状态机,根据需求实现AbstractStateMachine|StateMachine|AbstractUntypedStateMachine StateListener:...

    VTK User's Guide(中文完整版)

    程序化源对象---------------------------------------------------------------------------------24 读取源对象------------------------------------------------------------------------------------26 4.2...

    电脑快捷方式

    telephon.cpl---电话和调制解调器选项 telnet---------远程连接程序 timedate.cpl---日期和时间 tourstart------xp简介(安装完成后出现的漫游xp程序) tsshutdn-------60秒倒计时关机命令 utilman-------...

    键盘上每个键作用!!! (史上最全的)­

    telephon.cpl---电话和调制解调器选项­ telnet---------远程连接程序­ timedate.cpl---日期和时间­ tourstart------xp简介(安装完成后出现的漫游xp程序)­ tsshutdn-------60秒倒计时关机命令­ utilman-------...

    StateGen:从高级语言生成可执行状态机。-开源

    该应用程序可用于使用高级描述语言生成功能齐全的软件... 该软件的用途包括创建扫描仪和过滤器以及用户界面。 每当基于复杂整数的状态机合适时,此生成器将帮助开发人员以清晰有序的方式创建状态,并提供大量支持文档。

    体系结构学习代码!特别详细丰富

     【例6.10】管道过滤器架构-被动过滤器  【例6.11】管道-过滤器架构-文件更新  【例6.12】管道-过滤器架构-图像处理程  【例6.14】事件体系结构-鼠标响应  【例6.17】事件体系结构-观察者模式-大草原1  ...

    elasticsearch-aerospike-filter:一个本机脚本过滤器示例,查询aerospike进行过滤

    该示例项目使用本机脚本功能来注入一个查询aerospike的过滤器,以确定是否接受结果。先决条件使用节点客户端连接到elasticsearch(这将合并应用程序和数据nodex,在大多数低延迟情况下,这可能是理想的)。 将...

    cmd操作命令和linux命令大全收集

    7. lusrmgr.msc----本机用户和组 8. services.msc---本地服务设置 9. oobe/msoobe /a----检查XP是否激活 10. notepad--------打开记事本 11. cleanmgr-------垃圾整理 12. net start messenger----开始信使服务...

    DirectX9 3D游戏设计入门 英文版+中文版+源代码

    6.3 纹理过滤器 6.4 多级渐进纹理 6.5 寻址模式 6.6 例程:纹理四边形 6.7 小结\t 第7章 融合技术\t 7.1 融合方程\t 7.2 融合因子 7.3 透明度 7.4 用DirectX Texture Tool创建Alpha通道\t 7.5 例程:透明效果\t 7.6 ...

    tonyCode抽奖系统(原HTML+JS抽奖系统)V4.0

    2) 连接投影机扩展屏幕后,再启动程序可以自动识别投放到扩展屏幕上全屏幕显示(建议投影分辨率1024*768) 3) 界面美观大方,背景图片及顶部公司logo自由替换为文字或图片,适合于投影仪投射晚会晚宴豪华场所抽奖系统...

    软件设计模式与体系结构(讲解+代码)

     【例6.9】管道过滤器架构-主动过滤器  【例6.10】管道过滤器架构-被动过滤器  【例6.11】管道-过滤器架构-文件更新  【例6.12】管道-过滤器架构-图像处理程  【例6.14】事件体系结构-鼠标响应  【例...

    新版Android开发教程.rar

    Android 是一个专门针对移动设备的软件集,它包括一个操作系统,中间件和一些重要的应用程序。 Beta 版 的 Android SDK 提供了在 Android 平台上使用 JaVa 语言进行 Android 应用开发必须的工具和 API 接口。 特性 ...

    SnSitesV1.0.1共享版本

     可自动从中时空网络SnSites自动更新虚拟服务器上下载最新的补丁和版本程序;需要正版软件用户序列号支持; II1-2,模块管理 II1-2-1,模块配置  最基本的平台配置,决定了栏目里可使用的模块数;一般安装后必须先...

    wince的GPS模拟器

    载入航迹时可选过滤掉点数少或距离小的段。 可选与PC版OziExplorer交互运行。通过Ozi API,在Ozi中双击地图上的某点, Virace就立即跳跃至该点(自由驾驶模式),或跳至离该点最近的航迹(航迹 重播模式);单击...

    带有过滤器的激光焊接路径编辑:编辑初步扫描的管道轨迹(带有内置过滤器)

    激光焊接路径编辑大直径管道激光焊接机路径的Y坐标编辑器。总览使用该程序,从Simatic S-300控制器读取扫描的管道轨迹的Y坐标。 可以通过拖动点在表或图表上更改值。 点状态(有效/无效)可以在表中更改。 校正后的...

    x-scan-v3.3-cn

    首先x-scanner包括了两个运行程序:xscann.exe和xscan_gui.exe,这两个程序分别是扫描器的控制台版本和窗口版本,作为初学者可能更容易接受窗口版本的扫描软件,因为毕竟初学者使用最多的还是“应用程序”,无论运行...

    streamdeck-hold-to-toggle-obs-filters:一个 Streamdeck 插件,用于在保持时切换过滤器启用状态并在释放时恢复

    添加图像、字体和文件 使用public文件夹 更改 HTML 在模块系统之外添加资产 何时使用public文件夹 使用全局变量 添加引导程序使用自定义主题 添加流程 添加自定义环境变量 在 HTML 中引用环境变量 在 Shell 中添加...

    LAN9514/LAN9514i中文数据手册.pdf

    – 通过所有传入帧(包括状态报告) - 支持唤醒数据包 - 集成以太网PHY – 自动协商, HP自动MDIX – 自动极性检测和校正 – 电能检测 • 电源和I/O - 三个PHY LED - 八个GPIO - 支持总线供电和自供电运行 - 内部1.8...

    邦仁电话订餐软件(快餐管理系统)

    5.业务流程设置 发展订餐客户的报价流程状态设置,掌握客户发展流程 6.服务类型设置 7.菜品设置 将配送的所有快餐名录在软件添加,可附带编号,快速配送时直接输入编号便可 8.系统提醒设置 可设是否提醒,多少时间...

    pfoe_web_debugger:情节中粒子过滤器的可视化

    描述可用功能实时可视化粒子过滤器的状态显示传感器和速度信息远程控制Raspeye鼠标的切换按钮* 1一个虚拟的游戏手柄控制器,可以操作锉刀派的鼠标* 2 它不仅可以在PC上使用,还可以在智能手机上使用* 3 * 1:要使用...

Global site tag (gtag.js) - Google Analytics