D语言中国主页  D语言编辑器SciTE4D   DWin库 D语言官方网站
D语言编译器1.x最新版 OpenSource   Tango   webnews  Wiki

查看完整版本: 1 关于D程序设计语言

yidabu 2007-4-21 11:17

1 关于D程序设计语言

1 关于D程序设计语言知识若不分享 实在没有意义 http://www.d-programming-language-china.org 20070416点击下面网址查看原文:http://bbs.d-programming-language-china.org/thread-465-1.html        by:        uFramer        uframer@sina100.com                D语言论坛 http://www.d-programming-language-china.org        from:        http://www.digitalmars.com/d/intro.html        version:        基于D 1.013        (Apr 12, 2007)D语言官方文档的翻译        D语言论坛 http://www.d-programming-language-china.org 考虑了D语言翻译文档的几种表现方式:        QUOTE:                                普通网页                wiki                cvs                论坛                最后觉得最好的方式还是论坛的表现形式。门槛最低,有论坛经验的人就可以发表评论,而版主可以根据评论改进文档的翻译。        部分文档由d-programming-language-china.org翻译,其他文档由d-programming-language-china.org根据网上找到的资料整理,能找到原译者的都已注明,如果有遗漏的,请到D语言论坛 http://www.d-programming-language-china.org 说明,d-programming-language-china.org会补上的.        原来的D语言官方文档基本上译于2004年到2005年间,d-programming-language-china.org开始整理这份文档是2007年4月16日.几年过去了, D语言已经有较大的改进,有原来特性被废弃的,有新增补的特性。如果对照旧的文档来学习最新的语言,会有什么样的感受,阅读到每一段都会不由自主怀疑:这一点是否得到最新的DMD的支持?如果每段都要和最新文档对照起来看,还要译文干什么呢        d-programming-language-china.org完全依照DMD最新版的文档整理的,现在用的是DMD 1.013,火星公司发布于2007年4月12日。        如果有旧译文,把旧译文和最新英文文档逐句对照:        1 最新英文文档没有的旧译文内容直接删除        2 旧译文没有而新文档中有的,在译文中补上        3 旧的例子代码替成新的        4 增补少量缺失译文        5 改正少量typo        也就是说,完全可以从d-programming-language-china.org整理的这份文档入手学习D 1.013。( 本文出处: http://bbs.d-programming-language-china.org/thread-465-1.html )        d-programming-language-china.org没有全文翻译所有英文文档,这是因为英文本身比程序设计更重要。有部分中文翻译可以让我们更快了解D语言,有部分英文文档是我们学习英文的一个机会。        文档的格式,d-programming-language-china.org保存在电脑里是 yidabuTxt文本格式,一种最简洁的文本格式,你可以参考:        http://bbs.d-programming-language-china.org/thread-83-1.html        1 给代码加上了code tag,给引用加上了 blockquote tag        2 原英文文档的h1 tag,在yidabuTxt里就是首行顶格        3 原英文文档的h2,在yidabuTxt里就是非首行顶格行        4 原英文文档的h3,在yidabuTxt就是一个tab加阿拉伯数字加半角空格开始行        由于原英文文档的h2和h3有时不太好区分,有可能有出入的。一个解决办法是h1和h2都居中,这样三者绝不会混淆了。        对于文档中涉及到链接的,d-programming-language-china.org尽量直接给出链接地址(比如文末的参考链接),否则以文本方式转贴文章时,原来的链接都可能“失踪”。这是适应网络时代的做法。        考虑到可能的用英文查找和索引,h1,h2,h3三级标题,尽量保留原英文。( 本文出处: http://bbs.d-programming-language-china.org/thread-465-1.html )        在每篇文档的开头加上译者(整理者),原文网址,适用版本。其中好处,我不说大家也知道。        d-programming-language-china.org给每篇文档加上了数字索引,这样无论在本地电脑里还是网上,都比较好定位。        1-40 为D语言官方手册        41-60 为D语言一般性介绍        d-programming-language-china.org是边学习D边整理这份文档,这是一个极好的学习习惯,学习任何东西都边学习边整理,学习到一定阶段,很自然地给后来者留下了一份比较完整的学习资料。而等学会了再回过头去整理学习资源,无疑是要花双倍的精力,加上十分的耐心。        在d-programming-language-china.org未设计出知识管理体系前,边学习边整理学习资料不太方便。现在,d-programming-language-china.org学习到哪里就整理资料到哪里。得到什么就付出什么,这是yidabu的人生哲学。yidabu认为,任何人都值得专门花几个月时间去设计适合自己的知识管理体系。        多数人是多得少出。这也有道理,阅读非常快,边阅读边整理要花2倍以上的时间,但带来的好处是有助于理清思路,强迫自己积极思考。( 本文出处: http://bbs.d-programming-language-china.org/thread-465-1.html )关于D程序设计语言        在我看来绝大多数“新的”编程语言都可以被分成两类:那些来自学院、拥有激进编程范型的语言,以及那些来自大公司、关注 RAD 和 web 的语言。也许是实现一门经过实践检验的新语言的编译器的时候了。-- Michael        "太好了,正是我所要的,又一个 D 语言。" -- Segfault        D是系统编程语言,致力于象C和C++那样生成高执行效率的代码,又要具备现代语言Ruby和Python那样的代码生产率。同时又保证质量,文档化,可管理,轻便和灵活。        现在有两个D语言的实现,Digital Mars DMD 的windows32版本和x86 Linux版本, 还有GCC D 编译器用于多平台,包括Windows 和 Mac OS X.        在 dsource.org上有大量D 源代码和项目。        http://digitalmars.com/d/dlinks.html 有大量关于 D wikis,库,工具,文章。        下面是D语言的一个hello world的例子( 本文出处: http://bbs.d-programming-language-china.org/thread-465-1.html )        [Copy to clipboard] [ - ]CODE:                                #!/usr/bin/dmd -run                /* sh style script syntax is supported */                                /* Hello World in D                    To compile:                     dmd hello.d                    or to optimize:                     dmd -O -inline -release hello.d                */                                import std.stdio;                                void main(char[][] args)                {                    writefln("Hello World, Reloaded");                                    // auto type inference and built-in foreach                    foreach (argc, argv; args)                    {                        // Object Oriented Programming                        CmdLin cl = new CmdLin(argc, argv);                        // Improved typesafe printf                        writefln(cl.argnum, cl.suffix, " arg: %s", cl.argv);                        // Automatic or explicit memory management                        delete cl;                    }                                    // Nested structs and classes                    struct specs                    {                        // all members automatically initialized                        int count, allocated;                    }                                    // Nested functions can refer to outer                    // variables like args                    specs argspecs()                    {                        specs* s = new specs;                        // no need for '->'                        s.count = args.length;            // get length of array with .length                        s.allocated = typeof(args).sizeof; // built-in native type properties                        foreach (argv; args)                            s.allocated += argv.length * typeof(argv[0]).sizeof;                        return *s;                    }                                    // built-in string and common string operations                    writefln("argc = %d, " ~ "allocated = %d",                    argspecs().count, argspecs().allocated);                }                                class CmdLin                {                    private int _argc;                    private char[] _argv;                                public:                    this(int argc, char[] argv)    // constructor                    {                        _argc = argc;                        _argv = argv;                    }                                    int argnum()                    {                        return _argc + 1;                    }                                    char[] argv()                    {                        return _argv;                    }                                    char[] suffix()                    {                        char[] suffix = "th";                        switch (_argc)                        {                            case 0:                            suffix = "st";                            break;                            case 1:                            suffix = "nd";                            break;                            case 2:                            suffix = "rd";                            break;                            default:                        break;                        }                        return suffix;                    }                }                注意:所有下载并使用 D 或者阅读 D 技术规格的 D 用户都被认为阅读过并明确地同意所有 Digital Mars 投递的邮件或回执中的有关智能财产产权的声明(包括版权或专利通告)。-Walter( lastupdate:20070426 最新文章请访问http://www.d-programming-language-china.org )关于一大步成功社区:yidabu提倡在交流中学习,在分享中提高收集感兴趣的知识,写下心得,通过网络与别人一起分享理解一点就实践一步,收获什么就分享什么,成功就是这样一点点一步步累积起来的网络只是一个工具,只有自己身心提高才是实实在在的。d-programming-language-china.org为大家提供一个学习交流各种知识的平台
页: [1]
查看完整版本: 1 关于D程序设计语言