Wolfram系统会话的全球方面

主回路
在任何交互式会话中,Wolfram系统都会有效地循环运行。它等待您的输入,处理输入,打印结果,然后再次返回等待输入。作为这个“主循环”的一部分,Wolfram系统维护并使用各种全局对象。您通常会发现使用这些对象很有用。
然而,您应该意识到,如果您通过一个特殊的前端使用Wolfram系统,您的前端可能会建立自己的主循环,而这里所说的可能不适用。
[n个]
上的表达式n个 第个输入线
InString(输入字符串)[n个]
的文本形式n个 第个输入线
%n个
输出[n个]
上的表达式n个 第个输出线
输出[{n个1,n个2,}]
输出表达式列表
%%%
( n个 )
输出[-n个]
上的表达式n个 第个前一输出行
消息列表[n个]
处理时生成的消息列表n个 第个线
$行
当前行号(可重置的)
输入和输出表达式。
在标准的交互式会话中,有一系列输入和输出行。Wolfram系统将这些行上表达式的值存储在[n个]输出[n个].
如通常所示[n个]:=提示时,输入表达式将与延迟赋值一起存储。这意味着无论何时你要求[n个],输入表达式将始终在当前环境中重新计算。
这将为指定一个值x个:
现在的值x个使用:
这将删除指定给x个:
这将在当前环境中重新评估,其中没有为x个:
这给出了第二个输入行的文本形式,适用于编辑或其他文本操作:
$历史长度
要保留的先前输入和输出行数
指定要保留的会话历史的长度。
Wolfram系统默认存储全部的会话期间的输入和输出行。在很长的会话中,这可能会占用大量的计算机内存。不过,您可以通过显式清除输出,使用取消保护[,输出],后面是清除[,输出]。您还可以通过设置全局变量来告诉Wolfram系统只保留有限数量的历史行$历史长度.
请注意,在会话中的任何时候,您都可以重置行号计数器$行,例如,对新行进行编号以覆盖之前的行。
$预读
在输入到Wolfram系统之前应用于每个输入字符串的函数
$预
在求值之前应用于每个输入表达式的函数
$帖子
求值后应用于每个表达式的函数
$预打印
在之后应用的函数输出[n个]已分配,但在打印结果之前
$语法处理程序
应用于任何产生语法错误的输入行的函数
主循环中使用的全局函数。
Wolfram系统提供了多种“挂钩”,允许您插入要应用于主循环中各个阶段的表达式的函数。因此,例如,您指定为全局变量值的任何函数$预将在计算之前自动应用于作为输入的任何表达式。
对于特定的输入行,标准主循环从获取输入的文本字符串开始。特别是如果您需要处理特殊字符,您可能需要在Wolfram系统进一步处理之前修改此文本字符串。您可以通过将函数指定为全局变量的值来实现这一点$预读。此函数将应用于文本字符串,结果将用作特定输入行的实际输入字符串。
这告诉Wolfram系统更换列表标题通过{}在每个输入字符串中:
现在,您可以将列表输入为列表标题表达:
您可以删除的值$预读像这样,至少只要你对$预读不会修改此输入字符串:
一旦Wolfram系统成功读取输入表达式,它就会对该表达式求值。在进行评估之前,Wolfram系统应用您指定为$预,在求值后,它将应用指定为$帖子注意,除非$预函数保持其参数未赋值,函数将具有与$帖子.
$帖子允许您指定对从Wolfram系统获得的结果进行任意“后处理”。因此,例如,要使Wolfram系统获得它生成的每个结果的数值近似值,您只需设置$帖子=N个.
这告诉Wolfram系统应用N个它生成的每个结果:
现在,Wolfram系统可以获得您输入的任何内容的数值近似值:
这将删除指定的后处理函数:
一旦Wolfram系统生成结果,并应用任何$帖子函数,它会获取结果并将其指定为的值输出[$行]。下一步是Wolfram系统打印结果。但是,在执行此操作之前,它将应用您指定为$预打印.
这告诉Wolfram System将所有输出缩短为两行:
只有两个现在显示输出的行版本:
这将删除指定给的值$预打印:
在典型的Wolfram系统会话中会生成各种类型的输出。通常,每种输出都发送到一个确定的输出通道,如中所述“流和低电平输入和输出”与每个输出通道相关联的是全局变量,该全局变量给出要包括在该输出通道中的输出流的列表。
$输出
标准输出和文本由生成打印
$回声
每个输入行的回声(存储在中 InString(输入字符串)[n个] )
$紧急
输入提示和其他紧急输出
$条消息
标准消息和输出由生成消息
在标准Wolfram系统会话中输出通道。
通过修改给定输出通道中的流列表,您可以重定向或复制特定类型的Wolfram System输出。因此,例如,通过打开文件的输出流,并将该流包含在$回声列表中,您可以将提供给Wolfram系统的每个输入保存在文件中。
[]
所有开放流的列表
["名称"]
具有指定名称的所有打开流的列表
$输入
当前输入流的名称
$InputFileName(输入文件名)
当前正在查找输入的文件的完整绝对路径
在Wolfram系统会话中打开流。
功能显示了Wolfram System会话中在特定点打开的所有输入、输出和其他流。变量$输入给出了当前流的名称,Wolfram系统输入在特定点从该流中获取。$输入重置,例如,在执行获取命令。获取也设置$InputFileName(输入文件名)读取输入的文件的完整绝对路径。
$消息预打印
应用于消息中给定表达式的函数
$语言
消息使用的默认语言列表
消息的参数。
有各种全局参数决定Wolfram系统生成的消息的形式。
如中所述“消息”,典型消息包括一系列表达式,这些表达式通过与消息文本组合字符串形式.$消息预打印给出了在打印表达式之前应用于表达式的函数。的默认值$消息预打印使用用于文本格式和浅层用于排版。
如中所述“国际信息”,Wolfram系统允许您指定希望生成消息的语言。在特定的Wolfram System会话中,可以将语言名称列表指定为$语言.
出口[]
退出[]
终止Wolfram系统会话
$尾声
终止前要计算的全局变量
正在终止Wolfram系统会话。
Wolfram系统将继续在其主循环中运行,直到您明确告诉它退出。大多数Wolfram系统接口都提供了实现这一点的特殊方法。尽管如此,您始终可以通过显式调用出口退出.
Wolfram系统允许您为全局变量赋值$尾声指定要在Wolfram系统实际退出之前执行的操作。例如,通过这种方式,您可以使Wolfram系统在退出之前始终保存某些对象。
$忽略EOF
是否忽略结尾属于文件字符
确定末端处理方式的全局变量属于文件字符。
如中所述“特殊字符:字符串和字符”,Wolfram系统通常不以特殊方式处理特殊字符。然而,有一个潜在的例外。使用默认设置$忽略EOF=False(错误),Wolfram系统识别结束属于文件字符。如果Wolfram系统结束属于文件字符作为标准交互式Wolfram系统会话中特定输入行上的唯一内容,然后它将退出会话。
你是怎么进入终点的属于文件字符取决于您使用的计算机系统。例如,在Unix下,通常按Ctrl键+D类.
请注意,如果您以“批处理模式”使用Wolfram系统,并且其所有输入都来自文件,那么当它到达文件末尾时,它将自动退出,而不管$忽略EOF.
对话框
在标准交互式会话中,您可以创建“子会话”或对话框使用Wolfram语言命令对话框。如果您想在Wolfram语言进行计算时与它交互,对话框通常很有用。如中所述“跟踪评估”,跟踪对话框例如自动调用对话框在特定表达式求值的指定点。此外,如果在计算期间中断Wolfram语言,通常可以使用对话框“检查”其状态。
对话框[]
启动Wolfram语言对话框
对话框[经验]
启动对话快递作为的当前值%
返回[]
从对话框返回,取的当前值%作为返回值
返回[快递]
从对话框返回,快递作为返回值
启动和从对话框返回。
这将启动一个对话框:
您可以在对话框中进行计算,就像在任何Wolfram语言会话中一样:
你可以使用返回要退出对话框:
退出对话框时,可以使用返回对话框的值返回[快递]。如果不想返回值,并且已设置$忽略EOF=False(错误),然后您也可以简单地通过结束退出对话框属于文件字符,至少在具有文本的系统上基于接口。
要评估此表达式,Wolfram语言会启动一个对话框:
价值观a+b从对话框返回的值现在插入到原始表达式中:
在开始对话时,你会发现有一些“初始表达式”很有用。如果您使用对话框[快递],则Wolfram语言将启动一个对话框,使用快递作为初始表达式,可以作为%.
这首先启动一个带有初始表达式的对话框a^2:
%是对话框中的初始表达式:
这将从第一个对话框返回一个值,并使用初始表达式启动第二个对话框b+c:
这将从第二个对话框返回一个值。最终结果是原始表达式,插入了两个对话框中的值:
对话框通过运行标准Wolfram语言主循环的辅助版本,可以有效地工作。您启动的每个对话框都有效地“继承”了整个主循环中的各种值。然而,其中一些值是对话框的本地值,因此当您退出对话框时,它们的原始值会恢复。
例如,对话框继承当前行号$行当他们开始的时候。这意味着对话框中的行具有遵循主循环中使用的顺序的数字。然而$行是对话框的本地。因此,当您退出对话框时$行恢复到主循环中的状态。
如果在线启动对话框10则对话框的第一行将被标记为[11]。对话框的连续行将被标记[12],[13]然后,当您退出对话框时,主循环中的下一行将被标记为[11]。此时,您仍然可以将对话框中生成的结果引用为输出[11],输出[12]等等。但是,当您到达行时,这些结果将被覆盖[12],[13]等等。
在标准的Wolfram语言会话中,您可以通过查看输入行和输出行是否缩进来判断是否处于对话框中。如果从对话框中调用对话框,将得到两级缩进。通常,您进入的缩进d日嵌套对话框由对象的输出形式决定对话框缩进[d日]。通过定义此对象的格式,可以指定如何在Wolfram语言会话中指示对话框。
对话框符号:>{x个,,}
其值应视为对话框本地值的符号
对话框符号:>{x个=x个0,=0,}
带有初始值的符号
对话框Prolog:>快递
启动对话框之前要计算的表达式
的选项对话框.
无论你选择什么样的设置对话框符号,对话框将始终对待$行,$Epilog、和$消息列表作为本地。请注意,如果您为$尾声,退出对话框时将自动对其进行评估。
当你打电话时对话框,它的第一步是本地化变量的值。然后它计算您为选项设置的任何表达式对话框Prolog。如果您为对话框函数,然后对其进行求值。最后,启动实际的对话框。
退出对话框时,可以使用返回[经验]。如果不这样做,返回值将被视为对话框中生成的最后一个值。
日期和时间函数
日期列表[]
在表单中给出当前的本地日期和时间{,,白天,小时,分钟,第二}
日期列表[时区->z(z)]
在时区中给出当前日期和时间z(z)
$时区
给出计算机系统假定的时区
查找日期和时间。
这将显示当前日期和时间:
Wolfram语言日期列表函数返回计算机系统提供的任何日期和时间。它假定您的计算机系统已经对夏令时等进行了任何修正。此外,它假定您的计算机系统已设置为适当的时区。
变量$时区返回计算机系统假定的当前时区。时区以小时数表示,必须将小时数加到格林威治标准时间(GMT)中才能获得正确的当地时间。因此,例如,美国东部标准时间(EST)对应于时区。请注意,时区中必须包含夏令时修正,因此美国东部夏令时(EDT)对应于时区.
这给出了计算机系统假定的当前时区:
这将提供时区中的当前日期和时间,日本时区:
绝对时间[]
自1月1日开始的总秒数,1900
会话时间[]
自当前Wolfram系统会话开始以来经过的总秒数
已用时间[]
当前Wolfram系统会话中使用的CPU时间的总秒数
$时间单位
计算机系统上记录的最小时间间隔
时间函数。
你应该意识到,在任何计算机系统上,时间都有一定的“粒度”可以测量。此粒度作为全局变量的值给出$时间单位。通常是关于一秒钟。
暂停[n个]
暂停至少一段时间n个
计算过程中暂停。
这提供了各种时间函数:
这将暂停10秒,然后重新评估时间函数。请注意已用时间[]不受暂停的影响:
绝对时间[日期]
从日期转换为绝对时间
日期列表[时间]
从绝对时间转换为日期
在日期和绝对时间之间转换。
这套d日为当前日期:
这会将当前日期增加一个月:
这给出了附加月份的秒数:
日期列表["一串"]
将日期字符串转换为日期列表
日期列表[{"一串",{"e(电子)1","e(电子)2",}}]
给出通过提取元素获得的日期列表"e(电子)""一串"
从不同的日期格式转换。
你可以使用日期列表["一串"]只要日期格式足够明确,就可以将日期字符串转换为日期列表。
这会尝试将字符串解释为日期:
为了更好地控制转换,您可以指定字符串中出现的日期元素的顺序和类型“年份”,“季度”,“月份”,“月名称”,“一天”,“日期名称”,“小时”,“AMPM”(AMPM),“分钟”,或“第二个”.
这将使用指定的元素提取日期:
如果日期元素分隔符包含字母或数字,则这些也必须指定为日期元素的一部分。
这将提取包含字母作为分隔符的日期:
日期字符串[]
给出表示当前本地日期和时间的字符串
日期字符串[日期规范,元素]
给定元素电子元件日期和时间日期规范
转换为不同的日期格式。
日期字符串用于提供日期和时间的漂亮字符串表示。可以从一长串日期元素中指定确切的输出格式,例如“日期时间”,“日期名称”,“小时短”等。
这将以默认格式显示当前日期和时间:
这将指定给定日期的格式:
日期模式[元素]
将日期与给定元素匹配的字符串模式
从字符串中提取日期。
你可以使用日期模式[元素]作为字符串匹配函数中的字符串模式。日期元素与中使用的相同日期列表,尽管默认的日期元素分隔符仅限于/,-,:,或.字符。其他分隔符可以在日期元素列表中明确指定。
这将从字符串中提取给定格式的日期:
这将使用显式分隔符提取日期:
日期列表图[列表]
从带有日期坐标的数据列表生成绘图
日期列表图[列表,日期规范]
从具有指定日期的数据列表生成绘图日期规范
日期列表日志图[列表]
从带有日期坐标的数据列表生成线性对数图
日期列表日志图[列表,日期规范]
根据指定日期的数据列表生成线性对数图日期规范
使用日期坐标绘制数据。
日期列表图可以使用日期或时间水平坐标绘制数据。日期可以是列表、字符串或绝对时间日期列表,日期字符串、和绝对时间.日期说明日期规范可以将日期与给定的数据关联为{1,2,}.日期列表日志图允许您使用对数垂直刻度绘制数据。
这收集了一些财务时间序列数据:
这绘制了财务数据:
这将在对数刻度上绘制相同的数据:
该图绘制了不包含明确日期的月度数据:
时间安排[快递]
评价经验,并返回所需CPU时间的列表,以及获得的结果
绝对计时[快递]
评价快递,给出所用的绝对时间
计时Wolfram语言操作。
时间安排允许您测量与单个Wolfram语言表达式求值相关的CPU时间。时间安排对应于使用的时间注意,只包括与Wolfram语言内核中表达式的实际计算相关联的CPU时间。不包括格式化输出表达式所需的时间以及与外部程序相关的任何时间。
绝对计时允许您测量绝对总运行时间。然而,您应该认识到,两种方法在特定计算中报告的时间绝对计时时间安排这取决于许多因素。
首先,时间具体取决于您使用的计算机系统。它不仅取决于指令时间,还取决于内存缓存,以及编译计算中使用的Wolfram语言内部代码部分时所做优化的细节。
时间还取决于计算完成时Wolfram语言会话的精确状态。Wolfram语言使用的许多内部优化取决于前面计算的详细信息。例如,Wolfram语言经常使用它以前获得的结果,并避免不必要地重新计算表达式。此外,一些Wolfram语言函数在第一次以特定方式调用时会构建内部表,因此如果再次以这种方式调用它们,它们的运行速度会快得多。由于所有这些原因,通常情况下,如果在同一个Wolfram语言会话的不同点运行某个特定计算,它可能不会花费相同的时间。
这为计算提供了所需的CPU时间。分号导致计算结果为无效的:
现在,Wolfram语言已经为阶乘函数构建了内部表,并且计算不需要可测量的CPU时间:
然而,确实经过了一些绝对时间:
请注意,您从中获得的结果时间安排只能精确到计时粒度$时间单位您的计算机系统。因此,例如,时间报告为0事实上可能与$时间单位.
时间受限[快递,t吨]
尝试评估经验,在以下情况下中止计算t吨
时间受限[快递,t吨,故障表达式]
返回故障表达式如果不满足时间限制
时间约束计算。
当您以交互方式使用Wolfram语言时,通常会尝试进行计算,但如果计算时间过长,则会中止计算。您可以使用以下命令在程序内模拟此行为时间受限.时间受限尝试在指定的时间内计算特定表达式。如果不成功,则中止评估,并返回$中止或指定的表达式。
你可以使用时间受限例如,让Wolfram语言在一定时间内尝试一种特定的方法来解决问题,如果第一种方法尚未成功,则切换到另一种方法。然而,你应该意识到时间受限如果在计算的特定部分无法中断Wolfram语言,则可能会超出您指定的时间。此外,您应该认识到,由于不同的计算机系统以不同的速度运行时间受限在不同的系统上通常会得到不同的结果。
内存管理
内存使用中[]
Wolfram系统当前使用的内存字节数
最大已用内存[]
Wolfram系统在此会话中使用的最大内存字节数
查找内存使用情况。
特别是对于符号计算,内存通常是限制计算大小的主要资源。如果计算运行缓慢,则可以让它运行更长的时间。但是,如果计算生成的中间表达式根本无法放入计算机系统的内存,那么您就无法继续计算。
Wolfram系统会小心使用内存的方式。每次不再需要您生成的中间表达式时,Wolfram系统都会立即回收分配给它的内存。这意味着在会话中的任何时候,WolframSystem只存储实际需要的表达式;它不保留不必要的对象,这些对象以后必须“垃圾收集”。
这给出了Wolfram系统当前使用的内存字节数:
这将生成10000元素列表:
需要额外的内存来存储列表:
保留此列表是因为它的值为输出[41].如果你清楚输出[41],不再需要该列表:
正在使用的内存再次下降:
这显示了会话中任何时候所需的最大内存:
经常出现的一个问题是Wolfram系统在特定计算机系统上实际可以使用多少内存。通常有一定数量的内存可用于全部的在特定时间在计算机上运行的进程。有时,这个内存量等于计算机中RAM的物理字节数。通常,它包括一定数量的“虚拟内存”,这是通过在大容量存储设备上交换数据而获得的。
当Wolfram系统运行时,它需要用于数据和代码的空间。Wolfram系统的完整代码通常为数兆字节。对于任何特定的计算,通常只使用此代码的一小部分。然而,在尝试计算Wolfram系统数据可用的总空间量时,您不应该忘记Wolfram语言代码需要什么。此外,必须包括计算机中运行的其他进程占用的空间。如果运行的作业较少,您通常会发现作业可以使用更多内存。
同样值得注意的是,计算所需的时间在很大程度上取决于您的物理内存。尽管虚拟内存原则上允许您使用大量内存空间,但它的访问速度通常是物理内存的数百甚至数千倍。因此,如果您的计算变得太大,需要使用虚拟内存,它可能会运行许多的速度更慢。
内存受限[快递,b条]
尝试评估快递,如果超过,则中止b条请求额外的内存字节
内存受限[快递,b条,故障表达式]
返回故障表达式如果不满足内存约束
存储器约束计算。
内存受限工作原理很像时间受限。如果请求的内存超过指定数量,内存受限试图中止计算。时间受限,在中止计算之前,实际使用的内存量可能会有一些超调。
字节计数[快递]
存储所需的最大内存字节数快递
叶数(LeafCount)[快递]
表达式树中的终端节点数经验
查找表达式的大小。
虽然你可能会发现字节计数在估计您可以处理的特定类型的表达式的大小时很有用,您应该认识到字节计数不同版本的Wolfram系统可能会有很大不同。
另一个重要的问题是字节计数总是给你最大限度存储特定表达式所需的内存量。通常,Wolfram系统实际上会使用更少的内存来存储表达式。主要问题是表达式中可以有多少子表达式共享.
在如下表达式中如果[1+x个,1+x个],两个子表达式1+x个是相同的,但它们可能实际存储在同一块计算机内存中,也可能不实际存储在该内存中。字节计数提供了在假定没有共享子表达式的情况下存储表达式所需的字节数。您应该意识到,一旦使用像/.操作员。
然而,您可以明确地告诉Wolfram语言使用函数共享子表达式分享。这样,可以显著减少存储特定表达式所需的实际内存量。
分享[快递]
共享存储中的通用子表达式快递
分享[]
在内存中共享通用子表达式
优化内存使用。
在大多数计算机系统上,运行程序使用的内存分为两部分:程序显式分配的内存和“堆栈空间”。每次在程序中调用内部例程时,都会使用一定量的堆栈空间来存储与调用相关的参数。在许多计算机系统上,必须事先指定程序可以使用的最大堆栈空间量。如果超出了指定的堆栈空间限制,程序通常会退出。
在Wolfram系统中,堆栈空间的主要用途之一是处理一个Wolfram语言函数被另一个函数调用的过程。所有此类调用都明确记录在Wolfram系统中堆栈在中讨论“评估堆栈”。可以通过设置全局参数来控制此堆栈的大小$经常限额。您应该确保此参数设置得足够小,不会耗尽特定计算机系统上的堆栈空间。
全局系统信息
为了编写最通用的Wolfram语言程序,您有时需要了解有关程序运行设置的全局信息。
因此,例如,要告诉您的程序是否应该调用以下函数笔记本书写,您需要了解程序是否在使用笔记本前端的Wolfram语言会话中运行。您可以通过测试全局变量来实现这一点$笔记本.
$笔记本
是否正在使用笔记本前端
确定是否正在使用笔记本前端。
Wolfram系统通常以交互方式使用,但也可以以批处理模式运行比如从文件中获取输入并将输出写入文件。在这种情况下,例如,程序不能期望从用户那里获得交互式输入。
$批输入
是否以批处理模式提供输入
$批处理输出
是否应以批处理模式提供输出,无标签,等。
指定批处理模式操作的变量。
Wolfram语言内核是一个在计算机操作系统下运行的进程。在Wolfram语言中,有几个全局变量可以让您找到此过程及其环境的特征。
$命令行
用于调用Wolfram语言内核的原始命令行
$家长链接
WSTP链接对象指定调用内核的程序(无效的如果内核被直接调用)
$进程ID
操作系统分配给Wolfram语言内核进程的ID
$ParentProcessID
调用Wolfram语言内核的进程的ID
$用户名
运行Wolfram语言内核的用户的登录名
环境["无功功率,无功功率"]
由操作系统定义的变量的值
与Wolfram语言内核进程关联的变量。
如果您有一个变量,例如x个在特定的Wolfram语言会话中,您可能希望或不希望该变量与x个在另一次Wolfram语言课程中。为了能够在不同会话中维护不同的对象,Wolfram语言支持变量$SessionID(会话ID),它使用启动时间、进程ID和机器ID等信息来尝试为每个单独的Wolfram语言会话提供不同的值,无论它是在同一台计算机上运行还是在不同的计算机上运行。
$SessionID(会话ID)
为每个Wolfram语言会话设置不同的数字
每个Wolfram语言会话都有一个不同的唯一数字。
Wolfram语言提供了各种全局变量,可以让您知道正在运行的内核版本。如果您编写的程序使用了版本6中的新功能,那么这一点很重要。然后你可以检查$版本号以确定这些功能是否可用。
$版本
给出所用Wolfram系统完整版本的字符串
$版本号
Wolfram语言内核版本号(例如11.2)
$发布编号
特定计算机系统上您的Wolfram语言内核版本的发布号
$创建日期
日期,作为一个日期对象,你的特别之处Wolfram系统版本已创建
指定所用Wolfram系统版本的变量。
Wolfram系统本身被设置为尽可能独立于运行它的特定计算机系统的细节。然而,如果您想访问计算机系统的外部方面,则通常需要了解其特性。
$系统
描述正在使用的计算机系统的完整字符串
$系统ID
指定正在使用的计算机系统的短字符串
$处理器类型
计算机系统中处理器的体系结构
$机器类型
计算机系统的一般类型
$Byte订购
计算机系统上的本机字节排序约定
$操作系统
使用中的基本操作系统
$SystemCharacter编码
操作系统使用的默认原始字符编码
指定计算机系统特征的变量。
Wolfram系统使用以下值$系统ID标记包含不同计算机系统文件版本的目录,如中所述“读写Wolfram语言文件:文件和流”“WSTP程序的可移植性”.计算机系统$系统ID是相同的,通常是二进制兼容的。
$操作系统具有以下值“Windows”“Unix”.通过测试$操作系统您可以确定特定的外部程序是否可能在您的计算机系统上可用。
这给出了评估输入的计算机系统的一些特征:
$机器地址
当前IP地址列表
$MachineName($机器名称)
运行Wolfram系统的计算机的名称
$机器域
计算机的当前网络域
$机器ID
Wolfram系统分配给计算机的唯一ID
标识运行Wolfram系统的计算机的变量。
$激活键
运行Wolfram系统的激活密钥
$许可证到期日期
许可证到期的日期
$网络许可证
这是否是网络许可证
$许可服务器
提供许可证的机器的全名
$License流程
当前在许可证下运行的Wolfram系统进程数
$MaxLicenseProcesses(最大许可进程数)
许可证提供的最大进程数
$PasswordFile($密码文件)
启动内核时使用的密码文件
与许可证管理相关的变量。
Wolfram系统会话

命令行选项和环境变量

-密码文件
Wolfram系统密码文件
-运行
要运行的Wolfram语言输入(仅内核)
-初始化文件
Wolfram系统初始化文件
-诺尼特
不运行初始化文件
-wstp协议
仅通过WSTP通信
典型命令Wolfram System可执行文件的行选项。
如果使用笔记本文件作为命令调用Wolfram系统前端行参数,则此笔记本将成为最初选择的笔记本。否则,将为此创建一个新笔记本。
Wolfram语言内核和前端也可以接受其他命令特定于特定窗口环境的行选项。
马提尼特
命令Wolfram系统前端的线路环境
MATHKERNELINIT公司
命令Wolfram语言内核的行环境
数学_基础
数学_用户库
环境变量。
Wolfram系统将读取操作系统环境变量的值,并将使用这些值以及明确给出的任何命令行选项。

初始化

启动时,Wolfram语言内核执行以下操作:

主回路

所有Wolfram System会话重复执行以下主循环:
请注意,如果您在外部程序中通过Wolfram符号传输协议(WSTP)调用Wolfram语言,那么您必须有效地创建自己的主循环,这通常与上面描述的不同。

信息

在Wolfram系统会话期间,可以通过显式调用生成消息消息,或在执行其他构建的过程中在函数中。
如果::名称::
特定语言的消息
如果::名称
默认语言的消息
概述::名称
具有给定名称的一般消息
消息名称。
如果没有为特定消息指定语言,则会使用$语言.如果如果::名称未定义,为概述::名称正在搜索。如果仍然没有找到消息,则为$新消息应用于如果"名称".
安静的[快递]评估快递同时防止在评估期间打印消息。下车[消息]防止打印指定的消息。检查允许您确定在表达式求值期间是否生成了特定消息。$消息列表消息列表[n个]记录Wolfram系统会话中评估特定行期间生成的所有消息。
消息被指定为要用作的第一个参数的字符串字符串形式.$消息预打印应用于要拼接到字符串中的每个表达式。

终止

出口[]
退出[]
终止Wolfram系统
$尾声
Wolfram系统退出前要评估的符号
$忽略EOF
结束时是否退出交互式Wolfram系统会话属于接收到文件字符
结束。
Wolfram系统终止时要读取的文件
Wolfram系统终止。
有几种方法可以结束Wolfram System会话。如果您以交互方式使用Wolfram系统,请键入出口[]退出[]在输入线上总是会终止Wolfram系统。
如果您从文件中获取Wolfram语言的输入,那么当Wolfram系统到达文件末尾时,它将退出。如果您以交互方式使用Wolfram系统,如果收到结束消息,它仍将退出属于文件字符(通常Ctrl键+d日)。您可以通过设置$忽略EOF=真的.

网络许可管理

单机许可证
进程必须始终在特定计算机上运行
网络许可证
进程可以在网络上的任何计算机上运行
单个机器和网络许可证。
Wolfram系统的副本可以通过以下任一方式设置机器或网络许可证。网络许可由马屁文件以开头!名称,其中名称是网络许可证的服务器计算机的名称。
网络许可证由Wolfram System许可证管理程序控制金属,它在服务器计算机上运行。无论何时使用具有网络许可证的Wolfram系统,都必须运行此程序。通常,您会希望设置您的系统,以便金属系统启动时启动。
类型.金属直接在命令行上
添加金属作为Windows服务
在Microsoft Windows下启动网络许可管理器的方法。
类型./mathlm公司直接在Unix命令行上
添加要开始的行金属在中央系统启动脚本中
在Macintosh和Linux系统上启动网络许可证管理器的方法。
什么时候?金属不是直接从命令行启动的,它通常将自己设置为后台进程,并继续运行,直到明确终止。请注意,如果金属进程正在运行,任何其他金属您尝试启动的进程将立即自动退出。
-日志文件文件
将许可服务器操作日志写入文件
-对数电平n个
制作日志条目的详细程度(1到4)
-日志格式一串
使用指定的日志格式一串
-语言名称
用于消息的语言(违约 英语 )
-密码文件文件
使用指定的马屁文件(违约./mathpass接口)
-超时n个
暂停对停止的Wolfram系统作业的授权n个小时
-限制文件
使用指定的限制文件
-数学
打印许可服务器的MathID,然后退出
-前景
运行金属在前景中,登录到标准输出
-安装
安装金属作为Windows服务(仅Microsoft Windows)
-卸载
卸载金属作为Windows服务(仅Microsoft Windows)
一些命令行选项金属.
有关的详细信息金属,请参阅“Mathematica系统管理”.
监视器
监控网络许可活动的程序
监视器名称
监视许可服务器的活动名称
监控网络许可证活动。
如果监视器在可以启动web浏览器的环境中运行时,它将在浏览器中自动生成HTML输出。否则,它将生成纯文本。
-文件文件
将输出写入文件
-格式规范
使用指定的格式( 文本 , html格式 , 计算机图形输入 )
-模板文件
使用指定的文件作为输出的模板
一些命令行选项监视器.