编译原理学习——终结符和非终结符含义(转)

由于书中没有对终结符和非终结符给出明确的定义,导致看的昏昏沉沉,因此专门搜索资料理清楚它们的含义。 1.终结符 终结符是一个形式语言的基本符号。就是说,它们能在一个形式语法的推导规则的输入或输出字符串存在,而且它们不能被分解成更小的单位。确切地说,一个语法的规则不能改变终结符。例如说,下面的语法有两个规则: x -> xa x -> ax 在这种语法之中,a是一个终结符,因为没有规则可以把a变成别的符号。不过,有两个规则可以把x变成别的符号,所以x是非终结符。一个形式语法所推导的形式语言必须完全由终结 ......

PHP函数与文件内容的追加

函数 array_walk ——使用户自定义函数在每个数组元素上做回调处理 bool array_walk ( array &$array , callable $callback [, mixed $userdata = NULL ] ) 典型情况下 callback 接受两个参数。array 参数的值作为第一个,键名作为第二个。 注意第一个参数内部是引用传递的数组,如果 callback 需要直接作用于数组中的值,则给 callback 的第一个参数指定为引用。这样任何对这些单元的改变也将会改变原始数组本身。 只有 array 的值才可以被改变,用户不应在回调函数中改变该数组本身的结构。例如增加/删除单元,unset 单元 ......

Exception ‘yii\base\InvalidConfigException’ with message ‘You should configure "log" component to use one or more database targets before executing this migration.’错误

要用数据库存储日志,首先的建表,再是写日志。 配置命令行中components创建log表 return [ 'id' => 'app-console', 'basePath' => dirname(__DIR__), 'bootstrap' => ['log'], 'controllerNamespace' => 'console\controllers', 'controllerMap' => [ 'fixture' => [ 'class' => 'yii\console\controllers\FixtureController', 'namespace' => 'common\fixtures', ], ], 'components' => [ 'log' => [ ......

#!/bin/bash作用

在shell脚本的第一行中,必须写#!/bin/bash吗?带着这个问题,我今天在百度上搜索了一下,发现在一个贴子中讨论了这个问题,觉得各个跟贴者在回答这个问题时,都解释的很有道理,现摘记如下,以便学习。———————————————————————————————本人初学linux不久,发现在编写脚本的时候开头都有一行#!/bin/sh我记得#是表示注释的,那么这 ......

yii2事件——event

事件理解 事件可以将自定义代码“注入”到现有代码中的特定执行点,附加自定义代码到某个事件,当这个事件被触发时,这段代码会自动执行。如果一个类需要触发事件就应该继承[[yii\base\Component]] 或其子或[yii\base\Event]。 事件类型 实例级别事件,即是继承[[yii\base\Component]] 的基类以支持事件,比较常用。 类级别事件,即是继承[yii\base\Event]实现。要注意是,因为类级别的处理器响应类和其子类的所有实例触发的事件,必须谨慎使用,尤其是底层的基类,如 [[yii\base\Object]]。 事件处理器 事件处理器是一个PHP处理函数 ......

斐波那契数列-PHP

斐波那斐波那契数列 function b($num) { static $array = []; for ($i = 0; $i < $num; $i++) { if ($i== 1 || $i == 0) { $array[] = 1; } else { $array[] = $array[$i - 1] + $array[$i - 2]; } } return $array; } 输出第x 斐波那契数——递归 function a($num) { if ($num == 0) { return 0; } if ($num == 1 || $num == 2) { return 1; } return a($num - 1) + a($num - 2); } 输出第x 斐波那契数——用引用解除递 ......

php -l、php -m、php -r的作用

-l: 对指定 PHP 代码进行语法检查的  php –l demo.php(注意是小写) -m:  PHP 将打印出内置以及已加载的 PHP 及 Zend 模块:  php -m -r:  可以在命令行运行 PHP 代码   php –r ‘代码’,不需要使用<?php  ?> 其他相关的命令 -q 安静模式。不输出HTTP头。-s 将php程序文件用转化为彩色格式的HTML(比如保留字用绿色,函数和变量为蓝色,注释为黄色而字串则是红色等等。-f 读入并解释指明的文件。-c在中读入php.ini文件-a 交互式运行-d foo[=bar] 定义ini中的输入项 foo 的值为 bar-e ......

linux考试资料

1.Linux特点有哪些    遵循GNU/GPL开放性多用户多任务良好的用户界面提供了丰富的网络功能可靠的系统安全良好的可移植性稳定性 2.谈一谈对开源系统的看法 UNIX基本原则:一切都是文件配置数据以文本形式保存由短小的单目的程序构成避免不必要的用户交互可使用多个程序合作完成复杂任务 GNU Project由Richard Stallman发起开始于1984年,由自由软件基金SF:FreeSoftwareFoundation)支持。GNU是GNU’s not UNIX的缩写。GNU的主旨在于发展一个类似Unix,并且为自由软件的完整操作系统:GNU系统。GNU通用公共许可证(GPL ......

socket、fsockopen、curl、stream 区别

socket 水泥、沙子,底层的东西 fsockopen 水泥预制件,可以用来搭房子 curl 毛坯房,自己装修一下就能住了 水泥、沙子不但可以修房子,还能修路、修桥、大型雕塑。socket也是,不但可以用于网页传输,还能传送其他东西,可以做聊天工具、下载器、ftp……几乎可以用网络传送的东西都能用它写出来,当然,需要掌握的知识也不少,例如建墙你就要知道怎么让墙笔直、不易倒、防冻、隔热等等都需要自己学预制件你就不用管它是否笔直、结构如何、怎样隔热了,这些造的人帮你想好了,你想的就是怎样搭成你想要的形状就行。fsockopen就是, ......

CENTOS 使用 MAILX 发送SMTP邮件

安装mailx,如果安装了会有提示 yum install -y mailx 配置smtp vi /etc/mail.rc # 添加 QQ 邮箱 SMTP set from=534x142@qq.com #发送邮箱 set smtp=smtp.qq.com #SMTP服务器 set smtp-auth-user=534x142 #发送帐号 set smtp-auth-password=mailBoxPassword #授权密码,需要开启pop3/smtp服务 set smtp-auth=login #授权方式 测试 cat /tmp/mail.log | mailx -v -s "test" 1343652445@qq.com 搞了好久还是出现下面的错误 Resolving host smtp.qq.com . . . done. Connecting to 14.18.245.164 . . .Connecting ......
百度统计