隨筆 - 59, 文章 - 4, 評(píng)論 - 184, 引用 - 7
          數(shù)據(jù)加載中……

          程序員的進(jìn)化——從學(xué)生到首席執(zhí)行官(轉(zhuǎn))


          /*-------------------------------------------

          ? 程序員的進(jìn)化——從學(xué)生到首席執(zhí)行官

          翻譯 2002 王詠剛
          http://www.contextfree.net/
          轉(zhuǎn)譯自 Omri's Computer Humor Page
          http://www.cs.bgu.ac.il/~omri/Humor/
          -------------------------------------------*/


          --------------------------------------------------------------------------------
          中學(xué)階段

          ? ? ? 10 PRINT "HELLO WORLD"
          ? ? ? 20 END
          --------------------------------------------------------------------------------
          大學(xué)一年級(jí)

          ? ? ? program Hello(input, output)
          ? ? ? ? begin
          ? ? ? ? writeln('Hello World')
          ? ? ? ? end.
          --------------------------------------------------------------------------------
          大學(xué)高年級(jí)

          ? ? ? (defun hello
          ? ? ? ? (print
          ? ? ? ? (cons 'Hello (list 'World))))
          --------------------------------------------------------------------------------
          初級(jí)程序員

          ? ? ? #include <stdio.h>
          ? ? ? void main(void)
          ? ? ? {
          ? ? ? ? char *message[] = {"Hello ", "World"};
          ? ? ? ? int i;

          ? ? ? ? for(i = 0; i < 2; ++i)
          ? ? ? ? printf("%s", message
          );
          ? ? ? ? printf("\n");
          ? ? ? }
          --------------------------------------------------------------------------------
          編程老鳥

          ? ? ? #include <iostream.h>
          ? ? ? #include <string.h>

          ? ? ? class string
          ? ? ? {
          ? ? ? private:
          ? ? ? ? int size;
          ? ? ? ? char *ptr;

          ? ? ? public:
          ? ? ? ? string() : size(0), ptr(new char('\0')) {}

          ? ? ? ? string(const string &s) : size(s.size)
          ? ? ? ? {
          ? ? ? ? ptr = new char[size + 1];
          ? ? ? ? strcpy(ptr, s.ptr);
          ? ? ? ? }

          ? ? ? ? ~string()
          ? ? ? ? {
          ? ? ? ? delete [] ptr;
          ? ? ? ? }

          ? ? ? ? friend ostream &operator <<(ostream &, const string &);
          ? ? ? ? string &operator=(const char *);
          ? ? ? };

          ? ? ? ostream &operator<<(ostream &stream, const string &s)
          ? ? ? {
          ? ? ? ? return(stream << s.ptr);
          ? ? ? }

          ? ? ? string &string::operator=(const char *chrs)
          ? ? ? {
          ? ? ? ? if (this != &chrs)
          ? ? ? ? {
          ? ? ? ? delete [] ptr;
          ? ? ? ? size = strlen(chrs);
          ? ? ? ? ptr = new char[size + 1];
          ? ? ? ? strcpy(ptr, chrs);
          ? ? ? ? }
          ? ? ? ? return(*this);
          ? ? ? }

          ? ? ? int main()
          ? ? ? {
          ? ? ? ? string str;

          ? ? ? ? str = "Hello World";
          ? ? ? ? cout << str << end

          ? ? ? ? return(0);
          ? ? ? }
          --------------------------------------------------------------------------------
          編程高手

          ? ? ? [
          ? ? ? uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
          ? ? ? ]
          ? ? ? library LHello
          ? ? ? {
          ? ? ? ? // bring in the master library
          ? ? ? ? importlib("actimp.tlb");
          ? ? ? ? importlib("actexp.tlb");

          ? ? ? ? // bring in my interfaces
          ? ? ? ? #include "pshlo.idl"

          ? ? ? ? [
          ? ? ? ? uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
          ? ? ? ? ]
          ? ? ? ? cotype THello
          ? ? ? {
          ? ? ? interface IHello;
          ? ? ? interface IPersistFile;
          ? ? ? };
          ? ? ? };

          ? ? ? [
          ? ? ? exe,
          ? ? ? uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
          ? ? ? ]
          ? ? ? module CHelloLib
          ? ? ? {

          ? ? ? ? // some code related header files
          ? ? ? ? importheader(<windows.h>);
          ? ? ? ? importheader(<ole2.h>);
          ? ? ? ? importheader(<except.hxx>);
          ? ? ? ? importheader("pshlo.h");
          ? ? ? ? importheader("shlo.hxx");
          ? ? ? ? importheader("mycls.hxx");

          ? ? ? ? // needed typelibs
          ? ? ? ? importlib("actimp.tlb");
          ? ? ? ? importlib("actexp.tlb");
          ? ? ? ? importlib("thlo.tlb");

          ? ? ? ? [
          ? ? ? ? uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
          ? ? ? ? aggregatable
          ? ? ? ? ]
          ? ? ? ? coclass CHello
          ? ? ? {
          ? ? ? cotype THello;
          ? ? ? };
          ? ? ? };

          ? ? ? #include "ipfix.hxx"

          ? ? ? extern HANDLE hEvent;

          ? ? ? class CHello : public CHelloBase
          ? ? ? {
          ? ? ? public:
          ? ? ? ? IPFIX(CLSID_CHello);

          ? ? ? ? CHello(IUnknown *pUnk);
          ? ? ? ? ~CHello();

          ? ? ? ? HRESULT __stdcall PrintSz(LPWSTR pwszString);

          ? ? ? private:
          ? ? ? ? static int cObjRef;
          ? ? ? };

          ? ? ? #include <windows.h>
          ? ? ? #include <ole2.h>
          ? ? ? #include <stdio.h>
          ? ? ? #include <stdlib.h>
          ? ? ? #include "thlo.h"
          ? ? ? #include "pshlo.h"
          ? ? ? #include "shlo.hxx"
          ? ? ? #include "mycls.hxx"

          ? ? ? int CHello::cObjRef = 0;

          ? ? ? CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
          ? ? ? {
          ? ? ? ? cObjRef++;
          ? ? ? ? return;
          ? ? ? }

          ? ? ? HRESULT __stdcall CHello::PrintSz(LPWSTR pwszString)
          ? ? ? {
          ? ? ? ? printf("%ws\n", pwszString);
          ? ? ? ? return(ResultFromScode(S_OK));
          ? ? ? }

          ? ? ? CHello::~CHello(void)
          ? ? ? {

          ? ? ? // when the object count goes to zero, stop the server
          ? ? ? cObjRef--;
          ? ? ? if( cObjRef == 0 )
          ? ? ? ? PulseEvent(hEvent);

          ? ? ? return;
          ? ? ? }

          ? ? ? #include <windows.h>
          ? ? ? #include <ole2.h>
          ? ? ? #include "pshlo.h"
          ? ? ? #include "shlo.hxx"
          ? ? ? #include "mycls.hxx"

          ? ? ? HANDLE hEvent;

          ? ? ? int _cdecl main(
          ? ? ? int argc,
          ? ? ? char * argv[]
          ? ? ? ) {
          ? ? ? ULONG ulRef;
          ? ? ? DWORD dwRegistration;
          ? ? ? CHelloCF *pCF = new CHelloCF();

          ? ? ? hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);

          ? ? ? // Initialize the OLE libraries
          ? ? ? CoInitializeEx(NULL, COINIT_MULTITHREADED);

          ? ? ? CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,
          ? ? ? ? REGCLS_MULTIPLEUSE, &dwRegistration);

          ? ? ? // wait on an event to stop
          ? ? ? WaitForSingleObject(hEvent, INFINITE);

          ? ? ? // revoke and release the class object
          ? ? ? CoRevokeClassObject(dwRegistration);
          ? ? ? ulRef = pCF->Release();

          ? ? ? // Tell OLE we are going away.
          ? ? ? CoUninitialize();

          ? ? ? return(0);
          ? ? ? }

          ? ? ? extern CLSID CLSID_CHello;
          ? ? ? extern UUID LIBID_CHelloLib;

          ? ? ? CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820 */
          ? ? ? ? 0x2573F891,
          ? ? ? ? 0xCFEE,
          ? ? ? ? 0x101A,
          ? ? ? ? { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
          ? ? ? };

          ? ? ? UUID LIBID_CHelloLib = { /* 2573F890-CFEE-101A-9A9F-00AA00342820 */
          ? ? ? ? 0x2573F890,
          ? ? ? ? 0xCFEE,
          ? ? ? ? 0x101A,
          ? ? ? ? { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
          ? ? ? };

          ? ? ? #include <windows.h>
          ? ? ? #include <ole2.h>
          ? ? ? #include <stdlib.h>
          ? ? ? #include <string.h>
          ? ? ? #include <stdio.h>
          ? ? ? #include "pshlo.h"
          ? ? ? #include "shlo.hxx"
          ? ? ? #include "clsid.h"

          ? ? ? int _cdecl main(
          ? ? ? int argc,
          ? ? ? char * argv[]
          ? ? ? ) {
          ? ? ? HRESULT hRslt;
          ? ? ? IHello ? ? *pHello;
          ? ? ? ULONG ulCnt;
          ? ? ? IMoniker * pmk;
          ? ? ? WCHAR wcsT[_MAX_PATH];
          ? ? ? WCHAR wcsPath[2 * _MAX_PATH];

          ? ? ? // get object path
          ? ? ? wcsPath[0] = '\0';
          ? ? ? wcsT[0] = '\0';
          ? ? ? if( argc > 1) {
          ? ? ? ? mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
          ? ? ? ? wcsupr(wcsPath);
          ? ? ? ? }
          ? ? ? else {
          ? ? ? ? fprintf(stderr, "Object path must be specified\n");
          ? ? ? ? return(1);
          ? ? ? ? }

          ? ? ? // get print string
          ? ? ? if(argc > 2)
          ? ? ? ? mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
          ? ? ? else
          ? ? ? ? wcscpy(wcsT, L"Hello World");

          ? ? ? printf("Linking to object %ws\n", wcsPath);
          ? ? ? printf("Text String %ws\n", wcsT);

          ? ? ? // Initialize the OLE libraries
          ? ? ? hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);

          ? ? ? if(SUCCEEDED(hRslt)) {

          ? ? ? ? hRslt = CreateFileMoniker(wcsPath, &pmk);
          ? ? ? ? if(SUCCEEDED(hRslt))
          ? ? ? hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);

          ? ? ? ? if(SUCCEEDED(hRslt)) {

          ? ? ? // print a string out
          ? ? ? pHello->PrintSz(wcsT);

          ? ? ? Sleep(2000);
          ? ? ? ulCnt = pHello->Release();
          ? ? ? }
          ? ? ? ? else
          ? ? ? printf("Failure to connect, status: %lx", hRslt);

          ? ? ? ? // Tell OLE we are going away.
          ? ? ? ? CoUninitialize();
          ? ? ? ? }

          ? ? ? return(0);
          ? ? ? }
          --------------------------------------------------------------------------------
          黑客初階

          ? ? ? #!/usr/local/bin/perl
          ? ? ? $msg="Hello, world.\n";
          ? ? ? if ($#ARGV >= 0) {
          ? ? ? ? while(defined($arg=shift(@ARGV))) {
          ? ? ? ? $outfilename = $arg;
          ? ? ? ? open(FILE, ">" . $outfilename) || die "Can't write $arg: $!\n";
          ? ? ? ? print (FILE $msg);
          ? ? ? ? close(FILE) || die "Can't close $arg: $!\n";
          ? ? ? ? }
          ? ? ? } else {
          ? ? ? ? print ($msg);
          ? ? ? }
          ? ? ? 1;
          --------------------------------------------------------------------------------
          黑客有成

          ? ? ? #include <stdio.h>
          ? ? ? #define S "Hello, World\n"
          ? ? ? main(){exit(printf(S) == strlen(S) ? 0 : 1);}
          --------------------------------------------------------------------------------
          黑客高手

          ? ? ? % cc -o a.out ~/src/misc/hw/hw.c
          ? ? ? % a.out
          --------------------------------------------------------------------------------
          黑客大蝦

          ? ? ? % cat
          ? ? ? Hello, world.
          ? ? ? ^D
          --------------------------------------------------------------------------------
          初級(jí)經(jīng)理

          ? ? ? 10 PRINT "HELLO WORLD"
          ? ? ? 20 END
          --------------------------------------------------------------------------------
          中級(jí)經(jīng)理

          ? ? ? mail -s "Hello, world." bob@b12
          ? ? ? Bob, could you please write me a program that prints "Hello, world."?
          ? ? ? I need it by tomorrow.
          ? ? ? ^D
          --------------------------------------------------------------------------------
          高級(jí)經(jīng)理

          ? ? ? % zmail jim
          ? ? ? I need a "Hello, world." program by this afternoon.
          --------------------------------------------------------------------------------
          首席執(zhí)行官

          ? ? ? % letter
          ? ? ? letter: Command not found.
          ? ? ? % mail
          ? ? ? To: ^X ^F ^C
          ? ? ? % help mail
          ? ? ? help: Command not found.
          ? ? ? % damn!
          ? ? ? !: Event unrecognized
          ? ? ? % logout
          --------------------------------------------------------------------------------

          posted on 2006-05-18 17:14 fisher 閱讀(1058) 評(píng)論(0)  編輯  收藏 所屬分類: Other

          評(píng)論

          # re: 程序員的進(jìn)化——從學(xué)生到首席執(zhí)行官(轉(zhuǎn))  回復(fù)  更多評(píng)論   

          程序惡搞,不錯(cuò),收藏
          2007-08-28 14:36 | 姜利陽(yáng)
          主站蜘蛛池模板: 奇台县| 荥阳市| 石柱| 巧家县| 项城市| 郯城县| 星子县| 赞皇县| 鞍山市| 银川市| 城口县| 沂南县| 余干县| 池州市| 衢州市| 朔州市| 合江县| 航空| 临武县| 彩票| 辽源市| 平度市| 陆川县| 紫阳县| 平定县| 巴林右旗| 阿克苏市| 台湾省| 林西县| 鄂托克旗| 资溪县| 巫溪县| 万州区| 开远市| 浦县| 南陵县| 额尔古纳市| 延庆县| 灵山县| 商水县| 昌平区|