跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 从解释器的角度看, Java 和 Python 的解释过程原理是一样的吧?
未分類
23 2 月 2021

从解释器的角度看, Java 和 Python 的解释过程原理是一样的吧?

从解释器的角度看, Java 和 Python 的解释过程原理是一样的吧?

資深大佬 : James369 1

以前一直觉得 python 是边解释边运行的,今天看到 pyc 字节码,原来 python 也是有字节码的。(既然如此,python 就可以直接部属 pyc,从而隐藏源代码?)
那么,python 不是也跟 java 一样了?,先转换成中间字节码,再做解释执行.

只不过,java 通常称为虚拟机,似乎比解释器更加高大上一些?

大佬有話說 (38)

  • 主 資深大佬 : James369

    我总感觉 python 只是个玩具一样的语言

  • 資深大佬 : Patrick95

    只能说是相似的,Python 也是有虚拟机来跑字节码的吧。

  • 資深大佬 : echo1937

    Java 是编译型语言还是解释型语言? – RednaxelaFX 的回答 – 知乎
    https://www.zhihu.com/question/19608553/answer/18628779

  • 資深大佬 : misaka19000

    是一样的,都是虚拟机

  • 資深大佬 : 1490213

    建议先看下基础知识,比如浏览一下 engineering a compiler 2ed (编译器设计第二版)的第一章。

  • 資深大佬 : RockShake

    主说的没问题,只不过 Java 把这个过程显示出来,Python 隐藏起来了而已,看起来 Python 像是解释型语言

  • 資深大佬 : amimo

    一样。
    一般语言不区分编译或解释。比如你可以用 llvm 把 c 编译成字节码(.bc),然后使用 llvm 解释器执行,也可以直接编译成二执行(.exe),直接运行。

  • 資深大佬 : DoctorCat

    @James369 玩具? 生产环境大面积应用了好吧。btw 没准你看 LISP 后更觉得是玩具了…

  • 資深大佬 : fiveelementgid

    @DoctorCat 啊这
    我们的 python 真的是太厉害啦
    弱类型语言啥时候ヘ(。□°)ヘ觉得自己不是玩具了

  • 資深大佬 : lpts007

    @fiveelementgid 但是 python 不是弱类型啊

  • 資深大佬 : mayx

    @fiveelementgid 好家伙,js 都成玩具了?

  • 資深大佬 : Lemeng

    嗯,差不多

  • 資深大佬 : DoctorCat

    @fiveelementgid 不想跟你口水战,但如果是个聪明人,为支持你自己的观点首先请自证:弱类型语言不该存在的意义 /为何不应在生产环境中使用 …

    张口就来可不是个好习惯呢 ヘ(。□°)ヘ

  • 資深大佬 : 009694

    @James369 语言都是为了解决特定的问题而生,不要因为某个语言解决不了自己的问题就说它玩具,没意义

  • 資深大佬 : 009694

    @DoctorCat 你被他带坑里去了。py 是强类型语言。 显然他连强弱类型动态静态都分不清只听说了就来谈论好不好

  • 資深大佬 : Mohanson

    关于 py 是虚拟机还是解释器看这篇
    http://accu.cc/content/gameboy/history/runtime/

  • 資深大佬 : DOLLOR

    @009694
    用了万能的 void*,C 语言也是弱类型。

  • 資深大佬 : ipwx

    java 比 python 牛逼的地方在于 jit 。主可以去了解一下

  • 資深大佬 : ipwx

    @James369
    @fiveelementgid

    哦,玩具语言支持了最近十年深度学习的发展,催生了几千亿的产业(你去看看凭啥蚂蚁金服能让银行出 98% 的钱和它搞联合贷款,结果利润大头还给蚂蚁金服)。支持了大型虚拟化云的运维。就这两点就不能是玩具。

    结果到你俩这里就是玩具咯

  • 資深大佬 : felixcode

    要是有人把 js python C Go PHP C++ rust 统统说成玩具了,你们会不会觉得他特别特别强大?

    或者仅仅是无知而自大?

  • 資深大佬 : lraining

    Java 的虚拟机有多种,每种都是不同的解释器实现,Python 也有多种解释器实现,理论上你可以生成 Python 字节码让 Python 运行在 Java 虚拟机上

  • 資深大佬 : LeeReamond

    @fiveelementgid 先问是不是,再问为什么,首先 python 是强类型语言不是弱类型语言,你连动态类型和强弱类型都分不清楚就来喷人了,这。。

  • 資深大佬 : Osk

    python 是动态强类型

    C 语言是弱类型,原来是玩具 /狗头 /

    python 在执行前一般会生成 __pycache__ 文件夹,里面是 pyc 。有了对应的 pyc,你把 py 源文件删了也能跑。
    发布时可以用 compileall 模块编译出 pyc, 只发布 pyc,但注意:印象中 pyc 和解释器版本绑定了,另外有些商业软件会魔改解释器,这样它生成的 pyc 一般工具难以反编译一些。

  • 資深大佬 : catsoul

    能说出 python 是弱类型这种话的就没必要继续讨论了吧

    这种就是郭德纲说的那个“火箭该用精煤”的情况

  • 資深大佬 : vipppppp

    @fiveelementgid 啊这
    阴阳怪气的时候要先调查清楚,不然就很多人看笑话

  • 資深大佬 : XIVN1987

    差远了,,Java 有 JIT,,

  • 資深大佬 : zone10

    @fiveelementgid 不好意思 Python 是强类型, C 语言才是弱类型, 玩具罢了, 隔壁 JS 表示躺着也中枪

  • 資深大佬 : defclass

    @DoctorCat 为啥觉得 lisp 更是玩具 ?

  • 資深大佬 : acmore

    是不是玩具,是不是生产工具都是**无聊且无用**的争论。
    不过 Python 是强类型 & 动态类型语言。即 “不能隐式转换类型,且类型在运行时推定”。

    1 + ‘1’ = Error => 强类型;
    1 + ‘1’ = ’11’ => 弱类型;

  • 主 資深大佬 : James369

    @XIVN1987 特意查了一下,python 也有 JIT 了,比如 pypy 和 cpython

  • 資深大佬 : XIVN1987

    @James369
    PyPy 有 JIT,,CPython 没有 JIT
    不过 95%的人用的都是 CPython,,说 PyPy 没意义,,很多应用广泛的 Python 库 PyPy 支持的都不好

  • 資深大佬 : Actrace

    没有高不高的问题,只有好不好用的问题.

    其实无论何种编程语言,最终的目标都是要把自然语言代码转化为机器代码.
    由于历史原因,先后出现的编程语言需要解决的侧重点都不太一样.

    在计算机科学发展的早起,最先出现的汇编,主要是要解决从 0 到 1 的问题.我们一般把它定位为低级编程语言.
    随后出现的各种编程语言都是要解决之前一种语言的某些不太顺手的特性.比如 C 语言,是为了解决汇编语言欠缺直观的逻辑性的能力.

    而在之后出现的很多高级编程语言,基本都是在 C 的基础上继承或者扩展的(python,java,go,php),主要也是因为 C 不太好用.
    在业界,大部分事件的本质,就是站在巨人的肩膀上去做事情,我们会为了更好的效率(性能仅是第二需要考虑的问题)持续不断的改进现有的工具和方法,以满足对效率的需求.
    这也是为什么大家都喜欢不断造轮子的一个主要原因.

    我想起在《程序员修炼之道 : 通向务实的最高境界》中一句印象深刻的话:

    “在某些方面,编程就像绘画。你从一张空白的画布开始,只有一些非常基础的原料。你糅合了科学、艺术、工艺手段来决定用这些原料做点什么。你勾勒出一个整体的形状,绘制出潜在的基调,然后再装点细节。你不断地带着批判的眼光回顾自己已完成的部分。你会时不时地扔掉一张画布,然后重新开始。”

  • 資深大佬 : XIVN1987

    “Python 可以被多种语言实现,比如 c 语言实现的 cpython,java 实现的 jython,c#实现的 IronPython 。
    — 就好比一把锁可以被多把钥匙打开,说明这把锁坏了。。”

    这是什么奇葩脑回路??

    按照主的说法,,Visual C++可以编译 C++,GCC 可以编译 C++,CLang 也可以编译 C++
    就好比一把锁可以被多把钥匙打开,说明 C++这把锁坏了 ~~~^_^~~~

  • 資深大佬 : DoctorCat

    @009694 他认为 py 是弱类型,因为是弱类型所以是玩具语言…这个奇特逻辑

  • 資深大佬 : chenqh

    py 最主要的问题的是速度慢,一开始没钱,如果一开始 python 就是 pypy 那种速度,python 其实相当不错,可惜

  • 資深大佬 : felixcode

    技术问题一旦用上类比,思路开始奔放,逻辑开始崩塌,散发出浓浓的民科味道。

  • 資深大佬 : fiveelementgid

    @lpts007
    @mayx
    @DoctorCat
    @ipwx
    @LeeReamond
    @vipppppp
    @zone10 (;ŏ﹏ŏ)抱歉抱歉,我搞错鸟,这玩意是动态类型(

  • 資深大佬 : LeeReamond

    @James369
    @XIVN1987
    python 有 jit 不用特意查,pypy 拿欧盟 20 亿捐款已经是很多很多年前了。另外 cpython 有 jit 解释器,pyston 大概发布于去年十月,理论上具有与 cpython 完全相同的兼容性。当然实际测试中这个 jit 还是聊胜于无,跟 v8 那种 jit 不可同日而语

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具