精华内容
下载资源
问答
  • 解释器模式

    千次阅读 2019-09-25 20:28:33
    解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。 介绍 意图:...

    解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式。这种模式实现了一个表达式接口,该接口解释一个特定的上下文。这种模式被用在 SQL 解析、符号处理引擎等。

    介绍

    意图:给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。

    主要解决:对于一些固定文法构建一个解释句子的解释器。

    何时使用:如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。

    如何解决:构建语法树,定义终结符与非终结符。

    关键代码:构建环境类,包含解释器之外的一些全局信息,一般是 HashMap。

    应用实例:编译器、运算表达式计算。

    优点 :1、可扩展性比较好,灵活。 2、增加了新的解释表达式的方式。 3、易于实现简单文法。

    缺点: 1、可利用场景比较少。 2、对于复杂的文法比较难维护。 3、解释器模式会引起类膨胀。 4、解释器模式采用递归调用方法。

    使用场景 :1、可以将一个需要解释执行的语言中的句子表示为一个抽象语法树。 2、一些重复出现的问题可以用一种简单的语言来进行表达。 3、一个简单语法需要解释的场景。

    注意事项:可利用场景比较少,JAVA 中如果碰到可以用 expression4J 代替。

    实现

    我们将创建一个接口 Expression 和实现了 Expression 接口的实体类。定义作为上下文中主要解释器的 TerminalExpression 类。其他的类 OrExpressionAndExpression 用于创建组合式表达式。

    InterpreterPatternDemo,我们的演示类使用 Expression 类创建规则和演示表达式的解析。

    解释器模式

    步骤 1

    创建一个表达式接口。

    Expression.java

    public interface Expression {
    
        boolean interpret(String context);
    
    }
    

    步骤 2

    创建实现了上述接口的实体类。

    TerminalExpression.java

    public class TerminalExpression implements Expression {
    
        private String data;
    
        public TerminalExpression(String data) {
            this.data = data;
        }
    
        @Override
        public boolean interpret(String context) {
            if (context.contains(data)) {
                return true;
            }
    
            return false;
        }
    
    }
    

    OrExpression.java

    public class OrExpression implements Expression {
    
        private Expression expr1 = null;
        private Expression expr2 = null;
    
        public OrExpression(Expression expr1, Expression expr2) {
            this.expr1 = expr1;
            this.expr2 = expr2;
        }
    
        @Override
        public boolean interpret(String context) {
            return expr1.interpret(context) || expr2.interpret(context);
        }
    
    }
    

    AndExpression.java

    public class AndExpression implements Expression {
    
        private Expression expr1 = null;
        private Expression expr2 = null;
    
        public AndExpression(Expression expr1, Expression expr2) {
            this.expr1 = expr1;
            this.expr2 = expr2;
        }
    
        @Override
        public boolean interpret(String context) {
            return expr1.interpret(context) && expr2.interpret(context);
        }
    
    }
    

    步骤 3

    InterpreterPatternDemo 使用 Expression 类来创建规则,并解析它们。

    InterpreterPatternDemo.java

    public class InterpreterPatternDemo {
    
        //规则:Robert 和 John 是男性
        public static Expression getMaleExpression(){
            Expression robert = new TerminalExpression("Robert");
            Expression john = new TerminalExpression("John");
            return new OrExpression(robert, john);
        }
    
        //规则:Julie 是一个已婚的女性
        public static Expression getMarriedWomanExpression(){
            Expression julie = new TerminalExpression("Julie");
            Expression married = new TerminalExpression("Married");
            return new AndExpression(julie, married);
        }
    
        public static void main(String[] args) {
            Expression isMale = getMaleExpression();
            Expression isMarriedWoman = getMarriedWomanExpression();
    
            System.out.println("John is male? " + isMale.interpret("John"));
            System.out.println("Julie is a married women? "
                    + isMarriedWoman.interpret("Married Julie"));
        }
    
    }
    

    步骤 4

    验证输出。

    John is male? true
    Julie is a married women? true
    
    展开全文
  • Scala解释器

    千次阅读 2020-03-26 21:16:12
    Scala解释器 后续我们会使用scala解释器来学习scala基本语法,scala解释器像Linux命令一样,执行一条代码,马上就可以让我们看到执行结果,用来测试比较方便。 启动scala解释器 要启动scala解释器,只需要以下几步:...

    Scala解释器

    后续我们会使用scala解释器来学习scala基本语法,scala解释器像Linux命令一样,执行一条代码,马上就可以让我们看到执行结果,用来测试比较方便。

    启动scala解释器

    要启动scala解释器,只需要以下几步:

    • 按住windows键 + r
    • 输入scala即可

    执行scala代码

    在scala的命令提示窗口中输入println(“hello, world”),回车执行
    在这里插入图片描述

    退出解释器

    在scala命令提示窗口中执行:quit,即可退出解释器

    展开全文
  • scala解释器

    2020-02-08 18:54:32
    SCALA解释器 后续我们会使用scala解释器来学习scala基本语法,scala解释器像Linux命令一样,执行一条代码,马上就可以让我们看到执行结果,用来测试比较方便。 我们接下来学习: 启动scala解释器 在scala解释器中...

    SCALA解释器
    后续我们会使用scala解释器来学习scala基本语法,scala解释器像Linux命令一样,执行一条代码,马上就可以让我们看到执行结果,用来测试比较方便。
    我们接下来学习:
    启动scala解释器
    在scala解释器中执行scala代码
    退出scala解释器
    启动Scala解释器
    要启动scala解释器,只需要以下几步:
    按住windows键 + r
    输入scala即可

    在这里插入图片描述
    在这里插入图片描述执行Scala代码
    在scala的命令提示窗口中输入println(“hello, world”),回车执行
    在这里插入图片描述
    退出解释器
    在scala命令提示窗口中执行:quit,即可退出解释器
    在这里插入图片描述

    展开全文
  • Python解释器

    千次阅读 2019-05-22 10:25:58
    由于整个Python语言从规范到解释器都是开源的,所以理论上,只要水平够高,任何人都可以编写Python解释器来执行Python代码(当然难度很大)。事实上,确实存在多种Python解释器。 CPython 当我们从Python官方网站....

    Python解释器
    我们运行Python程序,就是运行Python解释器,让解释器去读取我们写好的Python代码文件,并且把Python代码翻译成 机器指令 给 CPU 去执行。
    这个原理如下图所示:
    在这里插入图片描述


    CPython解释器,如下图
    当我们从Python官方网站下载并安装好Python 2.7后,我们就直接获得了一个官方版本的解释器:CPython。这个解释器是用C语言开发的,所以叫CPython。在命令行下运行python就是启动CPython解释器。
    在这里插入图片描述


    在pycharm中添加python解释器:file>>>settings>>>project>>>python interpreter>>>在python安装目录下把python.exe添加进去即可
    在这里插入图片描述

    展开全文
  • python解释器

    千次阅读 2018-07-24 09:11:25
    python解释器 标签(空格分隔): python 在阅读TensorFlow源代码时,经常看到解释器这样的一类的东西,打算将这部分知识梳理一下,方便自己后面继续看代码,该部分主要参考这两个博客Python中的解释器、python...
  • JAVA设计模式--解释器模式

    万次阅读 2017-02-25 14:51:01
    目录 一、什么是解释器模式 ...给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 所谓“语言”,指的是使用规定格式和文法的一类字符组合。 ...
  • Python是一门解释器语言,代码想运行,必须通过解释器执行,Python存在多种解释器,分别基于不同语言开发,每个解释器有不同的特点,但都能正常运行Python代码,以下是常用的五种Python解释器: CPython当从Python...
  • 查看 Python解释器路径的两种方式

    万次阅读 多人点赞 2019-01-16 18:47:27
    查看 Python 解释器路径 运行以下脚本,或者进入交互模式手动输入即可。 import sys import os print('当前 Python 解释器路径:') print(sys.executable) r""&amp...
  • HTML 解释器

    千次阅读 2019-06-04 02:50:31
    解释过程 HTML 解释器的工作就是将网络或者本地磁盘获取的 HTML 网页和资源从字节流解释成 DOM 树结构。这一过程大致可以理解成下图 ...在进行词法分析之前,解释器首先要做的事情就是检查该网页内...
  • Shell解释器

    千次阅读 2018-10-15 10:27:05
    调用解释器执行 顾名思义,就是把脚本的路径传入解释器中去执行: sh test.sh 或者 bash test.sh 这两者略有区别,我没有整理过完整的差异,但至少对于 echo 命令来说,以下命令在两种解释器下得到的结果是不一样...
  • Python解释器和IPython

    千次阅读 2021-01-12 10:00:24
    今天给大家介绍一下Python的一个功能非常强大的解释器IPython。虽然Python本身自带解释器,但是相对而言IPython的功能更加的强大。
  • 解释器模式(Interpretor):给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。UML图:|和&表达式的简单解释器代码package ...
  • 指定脚本解释器

    2017-07-29 10:32:41
    以下是我常用的 指定 脚本解释器 的方式 command official annotations personal annotations #!/bin/bash 执行时,调用 /bin 下的 bash 解释器 #!/usr/bin/python 执行时,调用 /usr/bin 下的 python 解释...
  • Java解释器

    千次阅读 2015-03-02 15:37:58
    解释器是Java虚拟机非常重要的一部分,它的工作就是把字节码转化为机器码并运行。Hotspot中实现了两种具体的解释器,分别是模板解释器而C++解释器。同时在Hotspot的源码树中还保留着一种“字节码解释器”的古老解释...
  • Java解释器的运行过程解释

    千次阅读 2017-10-28 11:24:14
    首先介绍一下Java解释器的概念,Java解释器解释器是Java虚拟机非常重要的一部分,它的工作就是把字节码转化为机器码并在特定的平台进行运行。简单一点,java的解释器只是一个基于虚拟机JVM平台的程序 ,即jdk或jre...
  • JAVA解释器模式

    千次阅读 2018-09-16 23:19:01
    JAVA解释器模式 通过本文将学习到 1、前言 2、解释器模式的概念 3、解释器的UML图及角色结构 4、解释器模式的实现 5、解释器模式的优缺点及使用场景 6、总结 1、前言 上一场我聊过了命令模式,只是浅显的过...
  • pycharm修改解释器

    万次阅读 2017-04-22 13:53:30
    最近把python原装的解释器卸载了,装了anaconda作为解释器,造成的后果就是pycharm找不到解释器了。  解决办法:pycharm》file》default setting》project interpreter然后修改解释器的路径就行了。
  • Python设计模式:解释器模式

    万次阅读 2020-01-21 22:46:54
    设计模式十三:解释器模式 什么是解释器模式 主要放向:让非初级用户和领域专家使用一门简单的语言来表达想法 一般是高级用户才会有所兴趣。 典型案例 音乐演奏者是现实中解释器模式的例子, 五线谱图形化地表达了...
  • python解释器介绍

    千次阅读 2018-02-09 08:47:52
    刚开始学习python,首先要了解一下python解释器。什么是python解释器? 编写python代码保存后,我们会得到一个以.py为扩展名的文本文件。要运行此文件,就需要python解释器去执行.py文件。这里,我们介绍3种解释器。...
  • 对python,编译器理解: C语言: 编辑器(记事本)——原代码——编译器——可执行文件(.exe) ...Python源码就是Python解释器源码, Python就是Python解释器 当今几乎所有的实用的编译器/解释器(以下统称编...
  • Python语言编译器与解释器

    千次阅读 2018-10-20 17:02:35
    一、解释型语言Python Python语言是一种解释型、面向对象、动态数据类型的高级程序设计语言。 编译型语言 先整体编译,再执行 运行速度快,任意改动需重新编译 可脱离编译环境运行 ...这个解释器是用C语...
  • 此方法适用于不要求必须使用虚拟环境中的解释器,可以通过配置系统解释器来解决 1. 与方法一步骤相同,但是在最后一项选择:“添加” 2. 选择系统解释器,然后添加你安装python的路径,点击确定完成 建议使用方法...
  • 设计模式-解释器模式

    千次阅读 2019-04-04 09:33:30
    给定一种语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子。 角色: AbstractExpression:抽象解释器 声明一个抽象的解释操作,这个接口为抽象语法树中所有的节点所共享。 ...
  • Python解释器以及PyCharm的安装

    万次阅读 多人点赞 2018-07-12 20:56:10
    通过CSDN上,大神写的教程,安装了PyCharm,现自己总结Python解释器安装以及PyCharm安装过程。一、Python解释器安装解释器(英语:Interpreter),又译为直译器,是一种电脑程序能够把高级编程语言一行一行直接转译...
  • c语言的解释器

    千次阅读 2018-10-28 20:11:39
    还在羡慕python解释器有交互模式吗,c语言也有一款解释器picoc,它也能解释写好的c语言脚本。 Mac os 安装: brew install picoc 交互模式: 似乎它只能支持一些常规c写法。指针的写法,有的不能运行。。不过...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 87,584
精华内容 35,033
关键字:

解释器