From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Stefan Monnier via Users list for the GNU Emacs text editor Newsgroups: gmane.emacs.help Subject: Re: [External] : Re: Lexical vs. dynamic: small examples? Date: Sun, 15 Aug 2021 17:55:49 -0400 Message-ID: References: <4a9bddb9ec57299b3b0c@heytings.org> <87y293sdxk.fsf@zoho.eu> <87pmufs4er.fsf@zoho.eu> <87wnompmpw.fsf@zoho.eu> Reply-To: Stefan Monnier Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="14999"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.0.50 (gnu/linux) To: help-gnu-emacs@gnu.org Cancel-Lock: sha1:tFf79Ud/PfeQqdjAzPCyC4JFjkM= Original-X-From: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Sun Aug 15 23:56:33 2021 Return-path: Envelope-to: geh-help-gnu-emacs@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1mFO7N-0003n1-7x for geh-help-gnu-emacs@m.gmane-mx.org; Sun, 15 Aug 2021 23:56:33 +0200 Original-Received: from localhost ([::1]:54248 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1mFO7L-00075M-8A for geh-help-gnu-emacs@m.gmane-mx.org; Sun, 15 Aug 2021 17:56:31 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:56588) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mFO6y-00075C-9z for help-gnu-emacs@gnu.org; Sun, 15 Aug 2021 17:56:09 -0400 Original-Received: from ciao.gmane.io ([116.202.254.214]:55830) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1mFO6s-0003Ar-II for help-gnu-emacs@gnu.org; Sun, 15 Aug 2021 17:56:08 -0400 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1mFO6o-00037P-P1 for help-gnu-emacs@gnu.org; Sun, 15 Aug 2021 23:55:58 +0200 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=geh-help-gnu-emacs@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: -16 X-Spam_score: -1.7 X-Spam_bar: - X-Spam_report: (-1.7 / 5.0 requ) BAYES_00=-1.9, HEADER_FROM_DIFFERENT_DOMAINS=0.249, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: help-gnu-emacs@gnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Users list for the GNU Emacs text editor List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-gnu-emacs-bounces+geh-help-gnu-emacs=m.gmane-mx.org@gnu.org Original-Sender: "help-gnu-emacs" Xref: news.gmane.io gmane.emacs.help:132588 Archived-At: > "Dynamic" is something that changes over time, but TBH I don't > really see the static/dynamic aspect or difference here? This use of the term is the same as used in code analysis. "static" refers to the fact that you can find the definition corresponding to a particular use by just looking at the code without having "run" it. In contrast "dynamic" refers to the fact that in order to find which definition corresponds to a particular use can only be done you need to run the code (or simulate a run, typically in your head). It can also be considered from the following point of view: with lexical/static scoping, a given variable reference will always refer to the same definition point, i.e. the "use-to-def" doesn't change and is hence "static", whereas with dynamic scoping, a given variable reference can refer to various definitions at different moments of a program execution, i.e. the "use-to-def" can change and is hence dynamic. Stefan