2011-02-01 64 views
32

Chúng đến từ đâu và khi nào chúng được sử dụng lần đầu tiên?Nguồn gốc của foo và bar là gì?

+6

nếu (foo) {getFood(); } else if (bar) {goToBar(); } else {baz? } – Moses

+2

Nhân bản: http://programmers.stackexchange.com/questions/221/whats-the-origin-of-foo-and-bar –

Trả lời

62

tl; dr

  • "Foo" và "thanh" như biến metasyntactic được phổ biến bởi MIT và DEC, tài liệu tham khảo đầu tiên là trong công việc trên LISP và PDP-1 và MAC dự án từ năm 1964 trở đi.

  • Nhiều người trong số này đã tham gia Câu lạc bộ đường sắt mô hình công nghệ của MIT, nơi chúng tôi tìm thấy tài liệu đầu tiên "foo" trong giới công nghệ vào năm 1959 (và biến thể năm 1958).

  • Cả "foo" và "bar" (và thậm chí "baz") nổi tiếng trong văn hóa đại chúng, đặc biệt là từ truyện tranh Smokey Stover và Pogo, sẽ được nhiều thành viên TMRC đọc.

  • Ngoài ra, có vẻ như FUBAR quân sự đã đóng góp vào mức độ phổ biến của họ.


Việc sử dụng duy nhất "foo" như một từ vô nghĩa được khá tốt tài liệu trong văn hóa đại chúng trong những năm đầu thế kỷ 20, như là FUBAR quân sự. (Một số đọc nền: FOLDOC FOLDOC Jargon File Jargon File Wikipedia RFC3092)


OK, vì vậy hãy tìm một số tài liệu tham khảo.

DỪNG BÁO CHÍ! Sau khi đăng câu trả lời này, tôi đã phát hiện ra bài viết hoàn hảo này về "foo" vào ngày Thứ Sáu 14 tháng 1 ấn bản The Tech ("Báo cáo lâu đời nhất và lớn nhất của MIT & tờ báo đầu tiên được xuất bản trên web"), Volume LVII. Số 57, Giá Ba Cents:

On Foo-ism

Các Lounger nghĩ rằng kinh doanh này của Foo-ism đã được thực hiện quá xa bởi những người ủng hộ sai lầm của mình, và không hướng và ngay lập tức đi đứng của mình chống lại sự lạm dụng của nó. Nó có thể là không có foo như một foo cũ, và chúng tôi là nó, nhưng dù sao, một foo và tiền của mình là một số bên. (Giọng nói của người tẩy trắng- "Đừng có foo-lish!")

Như một lời nói, tất nhiên, "foo!" có một vị trí nhất định và có thể không thay thế được trong ngôn ngữ của chúng ta, mặc dù chúng ta sợ rằng việc sử dụng quá mức mà nó hiện đang phải chịu cũng có thể dẫn đến việc rơi vào một thời gian ngắn (và, than ôi, tối). Chúng tôi nói than ôi vì sử dụng đúng từ có thể dẫn đến những sự cố hạnh phúc như sau.

Đó là bài giảng 8.50 nhiệt động lực học của Giáo sư Slater trong Phòng 6-120. Vị giáo sư, đã che mặt trước của bảng đen, đặt tay cầm vận hành cơ chế nâng, quay sang lớp để tiếp tục cuộc thảo luận của mình. Hội đồng quản trị phía trước từ từ, uy nghi, nâng mình, tiết lộ bảng phía sau nó, và trên bảng đó, viết lớn, các biểu tượng đánh vần "FOO"!

The Tech newspaper, một năm trước đó, Thư gửi tín hữu biên tập, September :

Vào thời điểm con tàu đã đạt đến trạm các tân tòng được để đầy những câu chuyện mất sự vinh hiển của Phi Omicron Omicron, thường được gọi là Foo, rằng họ là con mồi dễ dàng.

...

Nó không phải là tôi nhớ có bị mất bốn người con trai đầu tiên của tôi đến Grand và Universal Brotherhood of Phi Omicron Omicron, nhưng tôi mong rằng con trai thứ năm của tôi, em bé của tôi, ít nhất nên có cảnh báo trước.

Hy vọng rằng máy của bạn,

Mẹ độc tài năm tuổi.

The Tech vào tháng :

xu hướng chung của tư tưởng có thể được giải thích tốt nhất từ ​​những nhận xét thực hiện vào cuối của phiếu. Một phiếu bầu cho biết, '' Tôi không nghĩ rằng những gì tôi làm là bất kỳ công việc kinh doanh nào của Pulver '', trong khi một người khác chỉ đơn giản là thêm một "Curt".


Đầu tiên ghi nhận "foo" trong giới công nghệ có lẽ 's Dictionary of the TMRC Language:

FOO: những âm tiết thiêng liêng (FOO MANI PADME HUM); chỉ được nói khi được truyền cảm hứng đến xã với Thần tính. Nghĩa vụ đầu tiên của chúng tôi là giữ cho Foo Counters quay đầu.

Chúng được giải thích tại FOLDOC. Trình biên dịch của từ điển Pete Samson cho biết vào năm 2005:

Sử dụng từ này tại TMRC chống lại việc tôi đến đó. Bộ đếm foo chỉ đơn giản là có đèn nhấp nháy ngẫu nhiên hoặc có thể là bộ đếm thực với đầu vào tối nghĩa.

Và từ năm 1996 của Jargon File 4.0.0:

Đầu phiên bản của từ vựng này có nguồn gốc 'baz' như một tham nhũng Stanford của quán bar. Tuy nhiên, Pete Samson (trình biên dịch của từ vựng TMRC) báo cáo nó đã có mặt khi anh ta gia nhập TMRC vào năm 1958. Anh ta nói "Nó đến từ" Pogo "Albert Alligator, khi bị phẫn nộ hoặc xúc phạm, sẽ hét lên 'Bazz Fazz!' hoặc 'Rowrbazzle!' Cách bố trí câu lạc bộ được cho là mô hình các quận (New Zealand) huyền thoại ở New England của Rowrfolk và Bassex (Rowrbazzle trộn lẫn với nhau (Norfolk/Suffolk/Middlesex/Essex)."

Một năm trước điển TMRC, 's MIT Voo Doo Gazette ("hài hước suplement của MIT Deans' văn ​​phòng") (PDF) đề cập Foocom, trong "The Laws của Murphy và Finagle" của John Banzhaf (một sinh viên kỹ thuật điện):

nghiên cứu sâu hơn dưới một cấp Foocom và Anarcom doanh mở rộng pháp luật là tất cả ôm và phổ biến áp dụng: Nếu bất cứ điều gì có thể đi sai, nó sẽ

Cũng 's MIT Voo Doo tài liệu tham khảo (PDF) việc sử dụng TMRC:

Có! Tôi muốn là một khách hàng thành công và tuyết ngay lập tức. Gửi cho tôi một mức độ trong: ...

  • Foo Quầy bán hàng

  • Foo Jung


Hãy tìm "foo", "thanh" và "foobar "được xuất bản trong các ví dụ mã.

Vì vậy, Jargon File 4.4.7 nói về "foobar":

Có lẽ ban đầu tuyên truyền thông qua các hướng dẫn sử dụng DECsystem bởi Digital Equipment Corporation (DEC) trong năm 1960 và đầu năm 1970; khẳng định nhìn thấy có quay trở lại năm 1972.

Các tài liệu tham khảo được công bố đầu tiên tôi có thể tìm thấy là từ ngày , nhưng được viết vào tháng năm 1963, The Programming Language LISP: its Operation and Applications bởi Thông tin Quốc tế, Inc., với nhiều tác giả, nhưng trong đó có Timothy P Hart và Michael Levin:

Vì vậy, vì "FOO" là tên cho chính nó, "COMITRIN" sẽ xử lý cả "FOO" và "(FOO)" theo cách giống hệt nhau.

Cũng bao gồm các biến metasyntactic khác như: FOO Crock trục trặc/POOT toor/ON YOU/SNAP Crackle POP/XYZ

Tôi hy vọng điều này cũng tương tự như tài liệu tham khảo sau này của "foo" từ MIT MAC dự án vào tháng 's tên lửa AIM-064, hoặc LISP Exercises bởi Timothy P. Hart và Michael Levin:.

xe [((FOO Crock).Trục trặc)]

Nó chia sẻ nhiều biến metasyntactic khác như: CHI/BOSTON NEW YORK/rau bina BƠ Steak/FOO Crock trục trặc/POOT TOOP/thổi còi thổi còi/ISTHISATRIVIALEXCERCISE/PLOOP Flot TOP/SNAP Crackle POP/một hai ba/MÁY BAY SUB Thresher

Đối với cả hai "foo" và "bar" với nhau, tài liệu tham khảo sớm nhất tôi có thể tìm được từ MAC Dự án của MIT vào tháng 's tên lửa AIM-098, hoặc PDP-6 LISP bởi không ai khác hơn Peter Samson:

EXPLODE, như PRIN1, trong serts slashes, do đó (EXPLODE (QUOTE FOO/BAR)) PRIN1 là (F O O ///B A R) hoặc PRINC là (F O O/B A R).


Một số lần thu hồi khác.

thu hồi trên trang web này trong năm 2008:

Tôi thứ hai file thuật ngữ liên quan đến Foo Bar. Tôi có thể theo dõi nó trở lại ít nhất là năm 1963, và số serial PDP-1 2, nằm trên tầng hai của Tòa nhà 26 tại MIT. Foo và Foo Bar đã được sử dụng ở đó, và sau năm 1964 tại phòng PDP-6 tại MAC của dự án.

John V. Everett nhớ lại vào năm 1996:

Khi tôi tham gia Tháng Mười Hai năm 1966, foobar đã và đang được sử dụng phổ biến như một tên tập tin ném-xa. Tôi tin rằng fubar đã trở thành foobar bởi vì PDP-6 hỗ trợ sáu tên nhân vật, mặc dù tôi luôn luôn giả định thuật ngữ di cư đến DEC từ MIT. Có nhiều loại MIT vào tháng 12 trong những ngày đó, một số người đã làm việc với CTSS 7090/7094. Kể từ khi 709x cũng là một máy 36 bit, foobar có thể đã được sử dụng như một tên tập tin phổ biến ở đó.

Foo và thanh cũng thường được sử dụng làm phần mở rộng tệp. Vì các trình soạn thảo văn bản trong ngày được vận hành trên một tệp đầu vào và tạo ra một tệp đầu ra, nên thường là chỉnh sửa từ tệp .foo thành tệp .bar và ngược lại.

Cũng rất phổ biến khi sử dụng foo để lấp đầy bộ đệm khi chỉnh sửa với TECO. Chuỗi văn bản để điền chính xác một khối đĩa là IFOO $ HXA127GA $$. Hầu như tất cả các lập trình viên PDP-6/10 tôi đã làm việc với chuỗi lệnh này.

Daniel P. B. Smith năm 1998:

Dick Gruen đã có một thiết bị trong phòng ký túc xá của mình, tập hợp thông thường của B-pin, điện trở, tụ điện, và NE-2 ống neon, mà ông gọi là một " foo truy cập. " Đây sẽ là khoảng năm 1964.

Robert Schuldenfrei năm 1996:

Việc sử dụng FOO và BAR như tên biến ví dụ đi lại ít nhất đến năm 1964 và IBM 7.070 Điều này cũng có thể cũ hơn, nhưng đó là nơi đầu tiên tôi nhìn thấy nó. Đây là trong Assembler. Điều gì sẽ là số nguyên FORTRAN tương đương? IFOO và IBAR?

Paul M. Wexelblat năm 1992:

Sớm nhất PDP-1 Assembler sử dụng hai nhân vật cho các ký hiệu (18 bit máy) lập trình viên luôn để lại một vài lời như không gian vá để khắc phục vấn đề. (Nhảy đến không gian bản vá, làm mã mới, nhảy lùi lại) Không gian đó thường được đặt tên là FU: đứng cho Fxxx Up, nơi bạn đã sửa Fxxx Ups. Khi nói, nó được gọi là không gian FU. Sau đó lắp ráp (ví dụ MIDAS phép ba thẻ char nên FU đã trở thành FOO, và như tất cả các lập trình viên PDP-1 sẽ cho bạn biết đó là FOO gian

Bruce B. Reynolds năm 1996:.

Về phía IBM của FOO (FU) BAR là việc sử dụng các bên BAR như cơ sở đăng ký địa chỉ, trong giữa năm 1970 CICS lập trình viên phải lo lắng ra các xxxBARs khác nhau ... Tôi nghĩ rằng một trong số đó là FRACTBAR ...

Đây là một số IBM "BAR" thẳng từ 1955.


tài liệu tham khảo đầu khác:


tôi đã không thể tìm thấy bất kỳ tham chiếu đến thanh foo là "tín hiệu foo đảo ngược" như được đề xuất trong RFC3092 và ở nơi khác.

Dưới đây là một số F00s thậm chí sớm hơn nhưng tôi nghĩ rằng họ đang trùng hợp ngẫu nhiên/dương tính giả:

+15

Wow! Đó là một câu trả lời ** triệt để **! –

5
+4

Đôi khi những câu hỏi đơn giản như thế này nhận được số lượng upvotes vô lý. –

+1

Để trả lời câu hỏi của bạn: Tôi hầu như luôn bắt đầu bằng cách vào phần Hỏi và trả lời câu hỏi của tôi và xem danh sách các bản sao có thể được tạo tự động. Nó hoạt động rất tốt. Thông thường tôi đã tìm kiếm trên Google .. Nhưng không phải lúc nào cũng vậy. Lần này tôi nhìn vào bài viết biến siêu thực (mà không có một phần lịch sử) mà tôi chạy qua trên một trong những "bản sao có thể": [Khi foo và thanh không đủ] (http://stackoverflow.com/questions/424580). OK, vì vậy tôi lười biếng. –

+0

Tuy nhiên, bằng cách nào đó bạn đã không tìm được tệp Biệt ngữ? Khi tôi googled cho dòng chủ đề của bạn, tôi tìm thấy một bài viết trên Programmers.stackexchange.com mà liên kết đến và trích dẫn các tập tin Jargon. –

Các vấn đề liên quan