问题列表 - 第15236页

为函数式语言设计解释器有哪些主要问题?

假设我想为函数式语言实现解释器.我想了解这样做所涉及的问题以及可用的合适文献.这是一种处于早期设计阶段的新语言,这就是问题范围广泛的原因.

出于本讨论的目的,我们可以假设语言的目的并不重要,并且如果它在编写解释器的容易性方面产生显着差异,则可以更改其功能特征(甚至是大幅度改变).

麻省理工学院网站上有一份计算机程序结构和解释的在线副本,以及使用Scheme的麻省理工学院6.001讲座的视频,于1986年在惠普录制.这些都是语言设计的一个很好的介绍.

interpreter functional-programming

11
推荐指数
1
解决办法
2398
查看次数

SqlDbType枚举映射 - C#

SqlDbType应该将枚举中的值用于numericT-SQL数据类型?

c# t-sql stored-procedures sqldbtype

3
推荐指数
2
解决办法
3530
查看次数

[a-zA-Z0-9_]中的_是什么意思?

在下面的正则表达式中,下划线是什么意思?

[a-zA-Z0-9_]

_似乎没有什么区别,所以我不明白它的目的.

regex perl

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

Java的"键值编码"

在Apple上的Objective-C中,有一种称为"键值编码"的东西,它允许您使用类似于文件系统路径的字符串遍历对象图.有一个非正式的协议(即接口),允许对象根据他们要求的"密钥"返回值.例如,默认是返回由键命名的字段的值,而像NSDictionaries这样的关系集合可以实现更有趣的行为.

伪代码示例:

foo.bar = new baz();
foo.bar.mymap = new map();
foo.bar.mymap['bom'] = 2;

foo.valueForKeyPath("bar.mymap.bom") # 2

Java有这样的东西吗?这很容易实现,但我想我先看看.

java key-value-coding

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

java编译器奇怪:在同一个类中声明的字段,但"不可见"

eclipse编译器拒绝编译以下代码,声明字段s不可见.(IBM的Aspect J编译器也拒绝,说"无法解决")为什么会这样?

public class Test {

    String s;

    void foo(Object o) {
        String os = getClass().cast(o).s;
    }
}
Run Code Online (Sandbox Code Playgroud)

Java语言规范声明:

否则,我们说存在默认访问权限,只有在声明类型的包中发生访问时才允许访问.

我理解它的方式,该字段在同一个编译单元中声明和访问,因此在同一个包中,因此应该是可访问的.

更奇怪的是,从增加一个垂头丧气? extends Test,以Test使现场可见,即下面的代码编译:

public class Test {

    String s;

    void foo(Object o) {
        Test t = getClass().cast(o);
        String os = t.s;
    }
}
Run Code Online (Sandbox Code Playgroud)

我偶然发现了编译器错误,或者误解了Java规范吗?

编辑: 我现在在另一台电脑上.在这里,javac接受代码,但eclipse仍然没有.这台机器上的版本:

Eclipse平台

版本:3.4.2构建ID:M20090211-1700

JDK 1.6.0

编辑2 确实,javac接受了代码.我通过运行ant build来测试,它使用了IBM的Ascpect J编译器......

java compiler-construction generics compiler-errors

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

如何删除电子邮件标题?

我学习Perl并为家人做一个自制项目(订阅项目).使用Net :: POP3的Perl应用程序连接到我的邮箱并将我的所有电子邮件保存到文件(Mail.txt).当我打开这个文件时,我看到了很多垃圾,如下所示.我能做些什么来消除这个?谢谢.

Return-Path: 
Received: from [unix socket] by embro.tpn.terra.com (LMTP); Sun, 11 Oct 2009 04:09:50
    +0000 (UTC)
X-Abaca-Spam: 153
X-Terra-Karma: -2%
X-Terra-Hash: 2c7d32f717e807b11af5c0871edb9e93
Received-SPF: pass (embro.tpn.terra.com: domain of linuxquestions.org designates
    208.101.3.244 as permitted sender) client-ip=208.101.3.244;
    envelope-from=forum@linuxquestions.org; helo=sql02.linuxquestions.org;
Received: from sql02.linuxquestions.org (smtp.linuxquestions.org [208.101.3.244])
    by embro.tpn.terra.com (Postfix) with ESMTP id 14EA1580000A2
    for ; Sun, 11 Oct 2009 04:09:49 +0000 (UTC)
Received: from web02.linuxquestions.org (web02-be.linuxquestions.org [10.13.156.4])
    by sql02.linuxquestions.org (8.13.8/8.13.8) with ESMTP id n9B49mXe005694
    for ; Sun, 11 Oct 2009 00:09:48 -0400
DomainKey-Signature: …

email perl

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

执行存储在数据段中的x86指令会导致性能下降?

我有一个简单的程序,首先将一些本机x86指令写入声明的缓冲区,然后设置一个指向此缓冲区的函数指针并进行调用.但是,当在堆栈上分配缓冲区时(而不是在堆上,甚至在全局数据区中),我注意到严重的性能损失.我验证了数据缓冲区中指令序列的开始是在一个16字节的边界上(我假设这是cpu需要(或想要)的内容).我不知道为什么它会在我执行指令的过程中产生影响,但在下面的程序中,"GOOD"在我的双核工作站上执行4秒钟,而"BAD"需要6分钟左右.是否存在某种对齐/ i-cache /预测问题?我对VTune的评估许可刚刚结束,所以我甚至无法对此进行分析:(.谢谢.


#include <stdio.h>
#include <string.h>
#include <stdlib.h>

typedef int (*funcPtrType)(int, int);

int foo(int a, int b) { return a + b; }

void main()
{
  // Instructions in buf are identical to what the compiler generated for "foo".
  char buf[201] = {0x55,
                   0x8b, 0xec,
                   0x8b, 0x45, 0x08,
                   0x03, 0x45, 0x0c,
                   0x5D,
                   0xc3
                  };

  int i;

  funcPtrType ptr;

#ifdef GOOD
  char* heapBuf = (char*)malloc(200);
  printf("Addr of heap buf: %x\n", &heapBuf[0]);
  memcpy(heapBuf, buf, 200);
  ptr = (funcPtrType)(&heapBuf[0]);
#else // BAD …
Run Code Online (Sandbox Code Playgroud)

performance x86 caching alignment execution

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

虚拟指针的大小-C++

C++中虚拟表的虚拟指针(VPTR)的大小是多少?这也不是一个家庭作业问题......在我阅读C++书籍时,我想到了一个问题.

c++ pointers vtable

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

C#:如何检查是否可以读取和/或删除目录

我递归地遍历一堆目录.其中一些(如D:\ $ RECYCLE.BIN\S-1-5-20)给了我一个System.UnauthorizedAccessException.我想我可以抓住它并继续前进,但我宁愿提前弄明白.

所以,当我有一个DirectoryInfo对象时.我怎么能看到我是否被允许GetDirectories()并且可能被允许Delete()

c# directory access-control

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

STL自定义分配器来管理不同的内存空间

我想使用STL自定义分配器类的不同实例来管理不同的内存空间,然后能够为STL容器指定一个分配器实例,这样每个容器只从其分配的内存空间中提取.但我不明白我该怎么做.我看到如何将分配器类型传递给STL容器的模板参数,但我想要一些类似于将分配器实例传递到STL容器的构造函数中的东西.有没有办法在STL中这样做?

c++ memory-management stl

8
推荐指数
2
解决办法
4231
查看次数