小编vai*_*olo的帖子

电脑死后,Git存储库坏了

我的电脑坏了,现在我的一个git存储库坏了.当我试图结账大师时,它告诉我:

warning: ignoring broken ref refs/heads/master.
error: Your local changes to the following files would be overwritten by checkout:
        com.vainolo.jdraw2d.releng.p2/pom.xml
Please, commit your changes or stash them before you can switch branches.
Aborting
Run Code Online (Sandbox Code Playgroud)

当我执行时,git stash我得到:

fatal: bad revision 'HEAD'
fatal: bad revision 'HEAD'
fatal: Needed a single revision
You do not have the initial commit yet
Run Code Online (Sandbox Code Playgroud)

那么......我该怎么办?

更新 输出git reflog:

fatal: bad default revision 'HEAD'
Run Code Online (Sandbox Code Playgroud)

不太有希望...输出git fsck:

error: Invalid HEAD
Checking object directories: 100% …
Run Code Online (Sandbox Code Playgroud)

git

86
推荐指数
6
解决办法
4万
查看次数

Lego Mindstorm有没有Ruby或Python解释器?

我想用Python或Ruby开始编码.由于我拥有乐高中风暴套件,我认为对它进行编程会很好.Mindstorms砖有没有好的翻译/插件?

ruby python robotics interpreter lego

22
推荐指数
1
解决办法
4831
查看次数

JIT代码生成技术

虚拟机如何动态生成本机代码并执行它?

假设您可以确定要发出的本机机器操作码是什么,那么您如何实际运行它?

将助记符指令映射到二进制代码,将其填充到char*指针并将其作为函数进行转换并执行是不是很麻烦?

或者你会生成一个临时共享库(.dll或.so或其他)并使用标准函数将其加载到内存中LoadLibrary吗?

interpreter jit .net-assembly

19
推荐指数
2
解决办法
1525
查看次数

如何以编程方式删除或重命名Azure Active Directory?

我不小心创建了一个名称错误的Azure Active Directory.

使用管理控制台,我找不到一种方法来纠正它...如果有某种隐藏的API,你可以做到这一点,我很想知道吗?

active-directory azure azure-active-directory

14
推荐指数
2
解决办法
7330
查看次数

JavaScript中的函数顺序

我的问题是基于" 面向对象的JavaScript " 一书中的例子(第81页 - 词汇范围)

所以,我从这个例子中理解......

function f1(){var a = 1; f2();}
function f2(){return a;}
f1();
Run Code Online (Sandbox Code Playgroud)

......那:

a未定义

但是,f1如何知道在f1之后定义的f2?

这种行为引发了一个问题:

JavaScript解释器如何工作?

我认为,它:

  1. 扫描代码并简单地存储在全局环境中未分配给任何var的函数
  2. 以临时方式调用函数:当在全局环境中没有这样的函数时,然后抱怨.

javascript interpreter

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

用标准C或C++编写的口译员

是否有任何可扩展的解释型编程语言是用标准的,独立于平台的C或C++编写的?

我希望能够简单地将所有源代码放在一个目录中,使用任何符合标准的C或C++编译器编译源代码,并生成一个可执行文件,以指定的脚本语言读取和解释脚本文件.

似乎许多编程语言"用C语言编写"通常包含许多依赖于它们所在平台的特性,因此,需要一些配置程序来运行基于您的目标系统(例如Autoconf),这会使事情复杂化并限制交叉平台兼容性.

问题原因:

我有兴趣学习编程语言设计.在完成了涉及yacc,lex和llvm的教程后,我玩了一些玩具编程语言.然而,最近我对研究用可移植C/C++编写的编程语言感兴趣,因此,我可以在任何支持标准C或C++编译器(甚至可能在我的ipad上)的机器上研究程序和代码,有一个相当统一的经验.

由于这仅用于教育目的,脚本语言不需要支持像C这样的超低级功能,也不需要像Java一样使用GUI(我不认为你可以编写任何类型的GUI仅限于标准C无论如何/ C++或任何复杂的io.但是,我希望语言足够完整,以便在语言中编写一些有用的程序是可行的(例如,应该可以使用C/C++扩展语言,以便您可以像tty上的shell一样使用它) .

谢谢.

编辑:

@AndréCaron如果至少语言的核心是100%独立于平台,我更喜欢它.如果该语言包含一个依赖于其他库以使其"更有用"的大型标准库,那就没关系了,但是,我希望能够剥离标准库并仅使用该语言的核心(可能使用自定义)手写的图书馆)如果我想.

c c++ interpreter

7
推荐指数
2
解决办法
1858
查看次数

动态(?)解析器

是否存在在运行时生成AST /解析树的解析器?有点像接受一串EBNF语法或类似的东西并吐出数据结构的库?

  • 我知道antlr,jlex和他们的同类.他们生成可以执行此操作的源代码.(比如跳过编译步骤)
  • 我知道Boost :: Spirit,它使用一些带有C++语法的黑魔法在执行时生成这样的东西(绝对更接近我想要的东西,但是当涉及到C++时我是个傻瓜.而且它仍然有点限制,因为你的语法是硬编码的)
  • 我不知道python或ruby中的任何东西,尽管编译器编译器可能在这种语言中非常有效......

现在我知道解析器组合器.(谢谢,Jonas)和一些图书馆(感谢eliben)

顺便说一下,我最近也注意到了Parsing Expression Grammars,听起来很酷的是有人实现它(他们说Perl 6会有它,但是Perl逃避了我的理解)

compiler-construction parsing interpreter lex

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

你通常如何记笔记阅读大软件的源代码

对于大型软件,记笔记有助于理解大局.

你怎么做笔记?用笔/纸,或只是一个记事本; 你通常会写什么来记录?

knowledge-management

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

什么是简单的垃圾收集算法,用于试验简单的解释器?

我一直在尝试编程语言设计,并且已经到了需要实现垃圾收集系统的程度.现在我想到的第一件事是引用计数,但这不会处理引用循环.我在搜索算法时遇到的大多数页面都是关于调整现有语言(例如Java)中的垃圾收集器的参考.当我找到任何描述特定算法的内容时,我没有得到足够的实现细节.例如,大多数描述都包括"当你的程序内存运行不足时...",这在4 GB系统上很快就不会发生,并且有很多交换.所以我正在寻找的是一些具有良好实现细节的教程,例如如何调整何时启动垃圾收集器(即,在X次内存分配之后收集,或每隔Y分钟等).

为了更详细地介绍我正在尝试做的事情,我开始编写类似于Postscript的基于堆栈的解释器,我的下一次尝试可能是基于Lisp方言之一的S表达式语言.我正在直接实施C.我的目标是自我教育,并将各个阶段记录为"如何设计和编写解释器"教程.

至于我到目前为止所做的,我编写了一个简单的解释器,它实现了一种C风格的命令式语言,它由堆栈机器式VM进行解析和处理(参见lang2e.sourceforge.net).但是这种语言在输入任何函数时都没有分配新内存,并且没有任何指针数据类型,因此当时并不需要任何类型的高级内存管理.对于我的下一个项目,我想从非指针类型对象(整数,字符串等)的引用计数开始,然后在单独的内存池中跟踪任何指针类型对象(可以生成循环引用) .然后,每当池比上一个垃圾收集周期结束时增长超过X个分配单元时,再次启动收集器.

我的要求是它不是太低效,而且易于实现和清楚地记录(记住,我想把它发展成纸或书,供其他人遵循).我目前在前面获得的算法是三色标记,但看起来像分代收集器会好一些,但更难记录和理解.所以我正在寻找一些明确的参考资料(最好是在线提供),其中包含足够的实施细节以帮助我入门.

algorithm interpreter garbage-collection

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

Cubic Bezier曲线:最大梯度和碰撞避免?

我正在使用bezier曲线作为我的太空飞船在他们进站时停靠的路径.我有一个简单的算法来计算船舶在时间t沿着三次贝塞尔曲线的位置:

public class BezierMovement{
    public BezierMovement(){
        // start docking straight away in this test version
        initDocking();
    }

    private Vector3 p0;
    private Vector3 p1;
    private Vector3 p2;
    private Vector3 p3;

    private double tInc = 0.001d;
    private double t = tInc;

    protected void initDocking(){

        // get current location
        Vector3 location = getCurrentLocation();

        // get docking point
        Vector3 dockingPoint = getDockingPoint();

        // ship's normalised direction vector
        Vector3 direction = getDirection();

        // docking point's normalised direction vector
        Vector3 dockingDirection = getDockingDirection();

        // scalars to …
Run Code Online (Sandbox Code Playgroud)

java algorithm math bezier

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