问题列表 - 第23530页

是否有使用ANTLR或类似方法实现的简单语言?

我正在尝试为学习目的构建一个简单的解释语言.我已经阅读了关于ANTLR和JavaCC的无数理论和教程,但我无法弄清楚如何让它做一些有用的事情.

我通过"分开并将它重新组合在一起"来学习最好的东西,那么,有没有使用ANTLR等工具实现简单语言的工作示例?

像下面这样的东西可能会很好:

x = 1

if x == 1  
     print "true"
Run Code Online (Sandbox Code Playgroud)

java interpreter antlr

6
推荐指数
1
解决办法
2974
查看次数

用于高性能SQL Server数据库设计的资源

我想要一些关于在线资源(博客,指南等 - 而不是论坛)的建议,以帮助我擅长设计高性能SQL Server数据库,这些数据库运行大量数据并且在数据周转和查询方面负担很重分钟.

建议?

编辑

我所说的负载主要是数据周转率.主表有多达一百万行,大约30个不同大小的数据字段,每天更新大约30-40000个新行,每天至少有200000行用新数据更新.这些更新在一整天内持续发生.除此之外,需要在一天内从数据库中提取所有更改和更新,以使最新的Lucene索引保持最新状态.

sql-server performance database-design

6
推荐指数
1
解决办法
2229
查看次数

Visual Studio 2008 中的代码片段有大小限制吗?

我使用 Snippet Editor 创建了一个长代码片段。保存后,我可以在 Visual Studio 中查看和使用它,但是,代码在大约 120 行后突然被截断,并且最后出现了一些乱码。代码片段有大小限制吗?如果是,这是一个视觉工作室,还是一个片段编辑器“功能”?

.net visual-studio-2008 code-snippets

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

Java Swing自定义形状(2D图形)

我需要绘制自定义形状.现在,当用户点击面板上的几个点时,我使用多边形创建一个形状.

public void mouseClicked(MouseEvent e) {
            polygon.addPoint(e.getX(), e.getY());
            repaint();
        }
Run Code Online (Sandbox Code Playgroud)

但我不知道这是否是绘制自定义形状的最佳方式.

应该可以编辑绘制形状:

  • 调整
  • 改变它的填充颜色
  • 改变笔画颜色
  • 复制/粘贴它
  • 移动多边形的单个点
  • ...

我见过人们创建一个自己的类来实现Shape类并使用GeneralPath.但我再也不知道这是不是一个好方法.

现在我可以使用多边形(或使用GeneralPath)创建自己的形状,但我不知道如何将所有编辑功能附加到我自己的形状(编辑功能,我的意思是从上面调整大小,移动等).

我希望有人能告诉我这样做的方法,或者写一些代码来证明这一点.

提前致谢!!

java swing drawing 2d

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

许可证是否与小代码段相关?

当我即将编写一个简短的算法时,我首先检查我正在使用的基类库是否在其中实现了算法.如果没有,我经常进行快速谷歌搜索,以查看是否有人之前已经完成(事实上,20次中有19次).

大多数时候,我找到了我需要的确切代码.有时很清楚什么许可证适用于源代码,有时候不是.它可能是GPL,LGPL,BSD或其他.有时候人们会在一些随机的论坛上发布一个代码片段来解决我的问题.

我很清楚,如果代码在某种程度上很重要,我不能重复使用代码(将其复制/粘贴到我的代码中)而不关心许可证.我不清楚的是,我是否可以在不执行许可证违规的情况下复制包含5行左右的代码段.

我可以复制/粘贴5行代码片段而无需关心许可吗?单线怎么样?10行怎么样?我在哪里画线(没有双关语)?

我的第二个问题是,如果我找到一个10行代码片段,它完全符合我的需要,但觉得我无法复制它,因为它是GPL许可的而我的软件不是,我已经记住了如何实现它当我开始实现相同的功能时,我的代码几乎与几分钟前看到的GPL许可代码相同.(换句话说,代码被复制到我的大脑和我的大脑之后,将其复制到我的源代码中).

编辑:我位于瑞典.这让我更加困惑,这是依赖国家的.如果我重新使用一段代码(以我居住的合法方式)并将此源代码出售给一个重新使用代码非法的国家的公司,该怎么办?

language-agnostic licensing

10
推荐指数
1
解决办法
1431
查看次数

是否可以获取当前活动应用程序的名称

用户可以通过Alt + Tab或在TaskBar中单击其图标来切换活动应用程序.是否有可能获得当前活动应用程序的名称(或其他独特特征)?

我想编写一个程序来收集应用程序使用情况的统计信息.

.net c# windows pinvoke

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

使JScrollPane自动向下滚动

我正在尝试使用JTextArea实现JScrollPane.JTextArea被附加到,我希望JScrollPane在添加更多文本时继续向下滚动.怎么能实现这一目标?

java swing awt jscrollpane jtextarea

18
推荐指数
4
解决办法
5万
查看次数

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

Foreach循环在PHP中返回空值?

我有一个非常简单的问题.

基本上我有一个叫做$list标题列表的数组.如果我这样做,print_r($list)我得到这些结果:

Array ( [0] => Another New Title [1] => Awesome Movies and stuff [2] => Jascha's Title )
Run Code Online (Sandbox Code Playgroud)

现在,我正在运行一个foreach循环来检索它们的值并将它们格式化为<ul>...

function get_film_list(){
    global $categories;
    $list = $categories->get_film_list();
    if(count($list)==0){
        echo 'No films are in this category';
    }else{
        echo '<ul>';
        foreach($list as $title){
           echo '<li>' . $title . '<li>';
        }
        echo '</ul>';
    }
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是我的循环每个值返回两个值(它是键值吗?)前面的函数的结果如下所示:

  • 另一个新标题
  •  
  • 很棒的电影和东西
  •  
  • Jascha的头衔
  •  

我甚至尝试过:

foreach($list as $key => $title){
    echo '<li>' . $title . '<li>'; …
Run Code Online (Sandbox Code Playgroud)

php foreach

0
推荐指数
1
解决办法
914
查看次数

使用IoC和依赖注入,如何在不违反Open-Closed原则的情况下用新的实现层包装代码?

我试图弄清楚如何在实践中做到这一点,以免违反开放封闭原则.

假设我有一个名为HttpFileDownloader的类,它有一个函数,它接受一个url并下载一个文件,将html作为字符串返回.这个类实现了一个只有一个函数的IFileDownloader接口.所以在我的代码中我都引用了IFileDownloader接口,每当IFileDownloader被解析时,我的IoC容器都会返回一个HttpFileDownloader实例.

然后在一些使用之后,很明显有时服务器当时太忙并且抛出异常.我决定绕过这个,如果我得到异常,我将自动重试3次,并在每次重试之间等待5秒.

所以我创建了HttpFileDownloaderRetrier,它有一个函数在for循环中使用HttpFileDownloader,最多3个循环,每个循环之间等待5秒.因此,我可以测试HttpFileDownloadRetrier的"重试"和"等待"能力我通过让HttpFileDownloaderRetrier构造函数采用IFileDownloader来注入HttpFileDownloader依赖项.

所以现在我希望所有解析IFileDownloader都返回HttpFileDownloaderRetrier.但是,如果我这样做,那么HttpFileDownloadRetrier的IFileDownloader依赖将获得自己的实例,而不是HttpFileDownloader.

所以我可以看到我可以为HttpFileDownloader创建一个名为IFileDownloaderNoRetry的新接口,并更改HttpFileDownloader来实现它.但这意味着我正在改变违反Open Closed的HttpFileDownloader.

或者我可以为HttpFileDownloaderRetrier实现一个名为IFileDownloaderRetrier的新接口,然后更改所有其他代码以引用它而不是IFileDownloader.但是,我现在在所有其他代码中违反Open Closed.

那我在这里错过了什么?如何在不更改现有代码的情况下用新的实现层(重试和等待)包装现有实现(下载)?

如果有帮助,这里有一些代码:

public interface IFileDownloader
{
  string Download(string url);
}

public class HttpFileDownloader : IFileDownloader
{
  public string Download(string url)
  {
    //Cut for brevity - downloads file here returns as string
    return html;
  }
}

public class HttpFileDownloaderRetrier : IFileDownloader
{
  IFileDownloader fileDownloader;

  public HttpFileDownloaderRetrier(IFileDownloader fileDownloader)
  {
    this.fileDownloader = fileDownloader;
  }

  public string Download(string url)
  {
    Exception lastException = null;
    //try 3 shots of pulling a bad URL.  And wait 5 …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection ioc-container open-closed-principle

7
推荐指数
1
解决办法
1066
查看次数