标签: execution

将 Antlr 语法树转换为有用的对象

我目前正在考虑如何最好地获取使用 Antlr 生成的 AST 并将其转换为我可以在我的程序中使用的有用对象。

我的语法(除了学习)的目的是创建一种可执行(运行时解释)语言。

例如,我将如何获取属性子树并实例化特定的 Attribute 类。例如

以下代码以我的语言显示:

Print(message:"Hello stackoverflow")
Run Code Online (Sandbox Code Playgroud)

将产生以下 AST:

替代文字

我目前的想法是工厂类可以读取树,提取名称(message)和类型(STRING)值(“ Hello stackoverflow”)。现在,知道了类型,我可以实例化正确的类(例如 StringAttribute 类)并传入所需的属性数据 -namevalue.

相同的方法可用于定义工厂,提取定义名称 ( Print),实例化 Print 类,然后传入从属性工厂生成的属性。

使用更复杂的程序,事情确实变得更复杂了:

Program(args:[1,2,3,4,5])
{
    If(isTrue:IsInArray(array:{Program.args} value:5))
    {
        Then {
            Print(message:"5 is in the array")
        } Else {
            Print(message:"More complex " + "message")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

替代文字

非常欢迎任何/所有帮助或想法。非常感谢。

我以前的相关问题(可能有用):

  1. 我如何制作树解析器
  2. 解决LL递归问题
  3. Antrl3 条件树重写

java antlr execution abstract-syntax-tree

5
推荐指数
1
解决办法
3418
查看次数

为什么 postgresql 更新查询有时如此缓慢,即使有索引

我有一个简单的更新查询(foo 列类型是 BOOLEAN(默认为 false)):

update tablename set foo = true where id = 234;
Run Code Online (Sandbox Code Playgroud)

其中“id”设置为(主)键,如果我运行“解释分析”,我得到:

Index Cond: (id = 234)
Total runtime: 0.358 ms
Run Code Online (Sandbox Code Playgroud)

但是,我在慢日志 (pgfouine) 中有很多无法解释的查询,耗时超过 200 秒(?!):

Times executed: 99, Av. duration (s): 70
Run Code Online (Sandbox Code Playgroud)

谁能解释一下,这是什么原因?(表中的 1.5 个 mio 行,postgresql 8.4)

postgresql indexing performance execution

5
推荐指数
1
解决办法
7477
查看次数

了解有关 DOM 和脚本执行的 HTTP 请求/响应

我已经离开网页设计/开发很长时间了,最​​近又开始重新投入其中。我开始做一些事情只是为了让它们工作,现在我又回到了它,我想更清楚地理解一些事情 - 包括浏览器请求 DOM 的时间到它完全加载的时间,以及页面顶部和底部的脚本放置之间的差异。

我意识到这更像是http://doctype.com的帖子,但我想我会从这里得到更技术性的答案。我也想将其设为社区维基,但我还没有足够的积分。

请随时在这里纠正我 - 我的问题/假设:

  1. 当浏览器发出页面请求时,服务器会使用包含脚本、CSS 和 html 的层次结构/顺序的文档对象进行响应 - 正确吗?
  2. 一旦收到,浏览器就会构建一个文档对象树 - 这是在 DOM 准备就绪时还是在它开始在浏览器中渲染页面上的元素时?
  3. 在这方面,“当 DOM 加载时”和“当 DOM 准备好时”有什么区别?
  4. 将 (java)script 放在顶部(在 head 标签中)或放在底部(在</body>标签之前)有什么区别吗?
  5. 当浏览器完全加载所有资源(css、图像、javascript 等)时是否会触发 DOM 事件?我问这个问题是因为有时浏览器可能仍在加载背景图像,并且在它完成之前,我的 Javascript 动画已经开始执行。

感谢您花时间阅读本文,期待您的回复!

html dom execution

5
推荐指数
1
解决办法
2658
查看次数

如何找到Java类中使用某个方法的所有执行路径?

给定一个java方法,我需要确定从入口类到目标方法的所有执行路径。

例子:

目标方法:MyClass.myMethod()

执行路径

EntryClass --calls--> Class1.method1() --calls--> Class2.method1() --calls--> Class2.method2() --calls--> MyClass.myMethod()

EntryClass --calls--> Class1.method1() --calls--> Class3.method1() --calls--> Class2.method2() --calls--> MyClass.myMethod()

EntryClass --calls--> Class3.method1() --calls--> MyClass.myMethod()

ETC。

是否有任何工具可以对我的代码库运行静态分析以确定所有这些代码执行路径?

java code-analysis static-analysis execution

5
推荐指数
1
解决办法
2718
查看次数

JavascriptExecutor 如何在 selenium webdriver 中工作

当有人使用 selenium 的JavascriptExecutor对象在网页中插入一些 javascript并执行它时,这段 javascript 代码去哪里以及它如何运行?

我的意思是它永远位于页面中(直到页面重新加载)还是从外部执行。如果它位于页面中,是否可以再次使用该代码?

此外,如果其他一些 javascript 代码已经在页面中运行,那么会发生什么,插入的代码是等待其他 js 代码停止还是从浏览器外部并行执行。

我问这个问题是因为我正在研究硒并使用JavaScriptExecutor. 所以我只想知道它在内部是如何工作的。

javascript selenium execution selenium-webdriver

5
推荐指数
1
解决办法
2655
查看次数

Hadoop Hive 无法将源移动到目标

我正在尝试在 Hadoop 2.6.0 上使用 Hive 1.2.0。我已经创建了一个employee表。但是,当我运行以下查询时:

hive> load data local inpath '/home/abc/employeedetails' into table employee;
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

Failed with exception Unable to move source file:/home/abc/employeedetails to destination hdfs://localhost:9000/user/hive/warehouse/employee/employeedetails_copy_1
FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.MoveTask
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?是否需要设置任何特定权限?提前致谢!

java hadoop hive execution

5
推荐指数
1
解决办法
2万
查看次数

如何下载并运行.exe文件c#

在您将其标记为重复之前,是的,存在这样的问题,我已经查看了所有这些问题,但仍然无法解决这个问题。我正在尝试编写一个下载并运行 .exe 文件的功能,但它不会下载、运行或执行任何操作。我什至删除了尝试捕获以查找错误或错误代码,但我没有,所以我不知道我哪里出错了,这是我的代码

public test_Configuration()
    {
        InitializeComponent();
    }

    Uri uri = new Uri("http://example.com/files/example.exe");
    string filename = @"C:\Users\**\AppData\Local\Temp\example.exe";

    private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            if(File.Exists(filename))
            {
                File.Delete(filename);
            }
            else
            {
                WebClient wc = new WebClient();
                wc.DownloadDataAsync(uri, filename);
                wc.DownloadProgressChanged += new DownloadProgressChangedEventHandler(wc_DownloadProgressChanged);
                wc.DownloadFileCompleted += new AsyncCompletedEventHandler(wc_DownloadFileCompleted);
            }
        }
        catch(Exception ex)
        {
            MessageBox.Show(ex.Message.ToString());
        }      
    }
    private void wc_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
    {
        progressBar1.Value = e.ProgressPercentage;
        if (progressBar1.Value == progressBar1.Maximum)
        {
            progressBar1.Value = 0;
        }
    }
    private void wc_DownloadFileCompleted(object sender, AsyncCompletedEventArgs …
Run Code Online (Sandbox Code Playgroud)

c# exe download execution

5
推荐指数
1
解决办法
2万
查看次数

NOT IN 与 &lt;&gt; ALL 之间的主要区别是什么?

我问自己是否应该使用<> ALLNOT IN。看一下这两个示例查询:

SELECT PersonId FROM tabPerson
WHERE PersonId <> ALL(SELECT ParentId FROM tabPerson)
Run Code Online (Sandbox Code Playgroud)
SELECT PersonId FROM tabPerson
WHERE PersonId NOT IN(SELECT ParentId FROM tabPerson)
Run Code Online (Sandbox Code Playgroud)

这两个查询返回完全相同的结果。

<> ALL现在我想知道和之间的主要区别NOT IN是什么。有人有想法吗?

t-sql sql-server performance execution

5
推荐指数
1
解决办法
263
查看次数

使用Bash计算程序的平均执行时间

为了获得任何可执行文件的执行时间,比方说a.out,我可以简单地写一下time ./a.out.这将输出实时,用户时间和系统时间.

是否有可能编写一个运行程序多次的bash脚本并计算并输出平均实际执行时间?

bash time execution

5
推荐指数
1
解决办法
401
查看次数

C# 控制台应用程序:有没有办法检测 exe 是否从命令行运行?

如果我Program.exe从现有的命令行窗口运行,那么当它完成并退出时,控制台输出仍然存在并且可见。

如果我双击 my Program.exe,那么它将打开一个新的命令行窗口,用于控制台输出...但是当我的 exe 完成时,该窗口将关闭,并带走输出。

在后一种情况下,为了防止输出日志丢失,我可能想要我的Main()be的最后两行Console.WriteLine("Press any key to exit"); Console.ReadKey();

但如果我在前一种情况下这样做,那就有点烦人了。

有什么方法可以检测这两种情况之间的差异,以便我可以有条件地“等待用户说我可以关闭”......仅在必要时?

c# console-application execution

5
推荐指数
1
解决办法
2240
查看次数