0

我为我的学生( http://www.kapparate.com/kj/)编写了一个浏览器内的 java-esque 调试器。在启用了 javascript 的浏览器中单击编译按钮),我试图弄清楚会是什么可视化当前范围内的变量的最佳方法。现在,我将它们打印为 JSON:

6 KJDB> 7 STACK {"x":"hello","y":"hello","a":4,"z":5,"xx":-5.6400000000000015,"c":true,"intArray":[5,90,35,45,150,3]}

所以它代表 x、y、a、z、xx、c 和一个 intArray。相应的值也在那里。

但是,我的一些学生正在上中学,这种符号有时会令人困惑。我应该使用表格(每一行都是不同的变量吗?)。或者也许是带有代表变量的矩形的图形?

4

2 回答 2

0

包含名称和值的两列表。当您谈论方法调用和可能的递归时,您可能希望使用不同的边框来标记不同的堆栈帧。或者,您可以使用包含方法名称的单个列标题来标记堆栈帧。

于 2012-10-20T19:46:43.723 回答
0

我的教授在我的 CS 入门课程中所做的是绘制一个非常宽的矩形来表示计算机的内存,然后将其分成几列(所以一行是任意长的,然后是多列,也是任意宽度)。

每当您创建变量时,他都会使用一个小块来表示变量或表示对该变量的引用。例如,一个int变量只会占用一小列或“块”内存。但是对于一个int[]变量(或任何其他类型的通过引用而不是值传递的变量),他会画一个块来表示引用,然后在行的下方画另一个块来表示实际值。他会简单地画箭头来表明较小的块引用了较大的块。

于 2012-10-20T21:16:11.533 回答