タグ付けされた質問 「language-features」

特定のコンピューター言語の特徴的な側面に関する質問。特に、それらの記述方法、またはプログラマーに提供される表現能力に関する質問。

9
閉鎖とは何ですか?
時々「クロージャ」が言及されているのを見て、それを調べてみましたが、Wikiには理解できる説明がありません。誰かがここで私を助けることができますか?

30
PHPにはどのような機能が必要ですか?[閉まっている]
今はホリデーシーズンであり、誰もが希望を抱いているので、PHPでどの言語機能を追加したいのでしょうか。私は、言語に対する実用的な提案/要望に興味があります。実用的には: 実際にできること(「PHPが私のコードの意味を推測してバグを修正してくれることを望んでいる」または「コードが5ミリ秒未満で実行されることを望んでいる」) PHPを別の言語に変更する必要のないもの(「中括弧の代わりに$記号を削除してスペースを使用したい」または「PHPをコンパイルし、静的に入力し、名前に#を含めたい」) 既存のすべてのコードを壊す必要のないもの(「500個の関数の名前を変更し、それらのパラメーターの順序を変更しましょう」) 何かない言語やそれのいくつかの興味深い側面を変更(ない:「私はXYZのプロトコルをサポートするための拡張があったことを望む」または「私はバグ#12345を希望するが最終的に固定されました」) 暴言以上のもの(「PHPがそんなにひどく吸わないように」) 誰にも良い願いがありますか? Mod編集:Stanislav MalyshevはコアPHP開発者です。

5
プログラミング言語/プラットフォームで「ファーストクラスの市民」と見なされる機能はいつですか?
「この機能を言語/プラットフォームの第一級市民にしてください」のような声明を何度も見ました。たとえば、C#/。netの列挙型について言われています。それでは、いつ機能がプログラミング言語/プラットフォームで「ファーストクラスの市民」と見なされるのでしょうか。

8
例外処理メカニズムなしで現代言語を設計する理由
多くの現代言語は豊富な例外処理機能を提供していますが、AppleのSwiftプログラミング言語は例外処理メカニズムを提供していません。 私は例外に悩まされていますが、これが何を意味するのかを頭で悩ませています。Swiftにはアサーションがあり、もちろん戻り値があります。しかし、私は例外に基づいた考え方が例外なく世界にどのようにマップされるのかを想像するのに苦労しています(そのため、そのような世界が望ましい理由)。Swiftのような言語ではできないことはありますか?例外をなくすことで何かを得られますか? たとえば、次のように表現するにはどうすればよいでしょうか try: operation_that_can_throw_ioerror() except IOError: handle_the_exception_somehow() else: # we don't want to catch the IOError if it's raised another_operation_that_can_throw_ioerror() finally: something_we_always_need_to_do() 例外処理のない言語(たとえば、Swift)で

7
(Javaとは異なり)静的データメンバーをC ++でクラスの外部で個別に定義する必要があるのはなぜですか?
class A { static int foo () {} // ok static int x; // <--- needed to be defined separately in .cpp file }; A::x.cppファイル(またはテンプレート用の同じファイル)で個別に定義する必要はありません。A::x同時に宣言と定義ができないのはなぜですか? 歴史的な理由で禁止されていますか? 私の主な質問は、staticデータメンバが同時に宣言/定義された場合(Javaと同じ)、機能に影響しますか?

5
Pythonを学習するJava開発者:頭を包むためにどのような概念が必要ですか?
背景:いくつかのチュートリアルを実行し、いくつかの小さなプロジェクトを作成しました。GoogleとStackOverflowを使用して、すべてが十分に機能しています。 過去数日間に何度か、「何が足りないの?」と思った。-Pythonで書いているので、まだJavaで考えているように感じます。 StackOverflowでのこの質問には、Pythonを学習するために読むべきリソースに関するヒントがたくさんありますが、私はまだPythonに翻訳するための辞書(しゃれなし)を持つJava開発者だと感じています。 私が本当にやりたいことは、私のJavaスキルを失うことなく、Pythonに変装したJavaの代わりにPythonic Pythonを書くことができるように頭をリファクタリングすることです。 だから、私の質問の核心は、Java開発者がPythonicを考えることを学ぶために本当に必要な概念は何ですか?これには、未学習の必要があるものすべてが含まれます。 注:言語の構文についてではなく、言語の概念について質問しています。

8
チューリング完全ではない「有用な」プログラミング言語を持つことは実際に可能ですか?
言語がチューリング完全でなくてはならないことが受け入れられている場合、チューリング完全ではない「有用な」プログラミング言語を持つことは実際に可能ですか? これは、マークアップ言語やクエリ言語ではなく、伝統的な意味での「プログラミング」言語に関するものであることを明確にする必要があります。

2
4番目と5番目のプログラミング言語の世代とは何ですか?それらはもっとありますか?[閉まっている]
多くの場合、学校/大学レベルで分類されているため、一般的なプログラミング言語(C#、Java、C ++)はすべて第3世代の言語です(マシンの物理部分からの抽象度が高い)。また、アセンブリ言語は第2世代、機械言語は第1世代言語に分類されます。 最初は、SQLは第4世代言語と見なされるべきだと考えていました。これは、SQLがより抽象的であり、ループの詳細からはるかに離れており、より記述的だからです。 今、第4世代と第5世代の言語があることがわかりましたが、プログラミング言語またはテクノロジを第4世代または第5世代の言語として分類する根拠は何ですか? また、第6世代または第7世代の言語もありますか?

7
ほとんどの主流言語が、3者間ブール比較の「x <y <z」構文をサポートしないのはなぜですか?
2つの数値(または他の適切に配列されたエンティティ)を比較したい場合は、で比較しx &lt; yます。それらのうち3つを比較したい場合は、高校の代数の生徒が試してみることをお勧めしx &lt; y &lt; zます。私のプログラマーは、「いいえ、それは無効です、あなたはしなければなりませんx &lt; y &amp;&amp; y &lt; z」と答えます。 私が出会ったほとんどの言語はこの構文をサポートしていないようです。これは数学でどれほど一般的であるかを考えると奇妙です。Pythonは注目に値する例外です。JavaScript は例外のように見えますが、実際には、演算子の優先順位と暗黙の変換の単なる残念な副産物です。node.jsでは、と1 &lt; 3 &lt; 2評価されtrueます(1 &lt; 3) &lt; 2 === true &lt; 2 === 1 &lt; 2。 だから、私の質問はこれです:なぜx &lt; y &lt; z期待されるセマンティクスで、プログラミング言語で一般的に利用できないのですか?

7
Haskellの型システムは、関数型プログラミングを理解する上での障害ですか?[閉まっている]
私は関数型プログラミングを理解する目的でHaskellを勉強していますが、他の言語(Groovy、Python、JavaScriptを中心に)で得た洞察を適用することを期待しています。 Haskellを選んだのは、非常に純粋に機能的であり、状態への依存を許さないという印象を持っていたからです。 私は非常に厳格な型システムをナビゲートすることに興味があったので、Haskellを学ぶことを選択しませんでした。 私の質問はこれです:強い型システムは非常に純粋な関数型言語の必要な副産物ですか、またはこれはHaskellに特有の無関係な設計選択ですか?

4
「void *」がC ++で暗黙的にキャストされないのはなぜですか?
Cでは、void *他のポインター型にキャストする必要はなく、常に安全に昇格されます。ただし、C ++では、そうではありません。例えば、 int *a = malloc(sizeof(int)); Cでは動作しますが、C ++では動作しません。(注:私はあなたがmallocC ++で、またはその点newで使用すべきではないことを知っています、代わりにスマートポインタおよび/またはSTLを好む必要があります;これは純粋に好奇心から尋ねられます)C ++標準はこの暗黙的なキャストを許可しないのはなぜですか、 C標準はそうですか?

5
LispでLispインタープリターを勉強することがなぜそんなに重要なのですか?
私は、特にlispで書かれたLispインタープリターを研究することを志望するプログラマーに求める新しいプログラマーのための多くのCSカリキュラムと学習提案を見てきました。これらのサイトはすべて、「その知的な啓示」、「すべての真面目なプログラマーが持つべき啓発体験」、「ハードウェアとソフトウェアの関係を示す」、その他の曖昧な声明、特にこの記事からこの評判の高いハウツー。 私の質問の一般的な感情は、Lispが上記の目標をどのように達成し、なぜLispを達成するのかということです。他の言語はなぜですか? Schemeでスキームインタプリタの記述を終えたばかりなので(SICP http://mitpress.mit.edu/sicp/から取得)、現在スキームでPythonインタプリタを記述しており、この伝説的なエピファニーを得るのに苦労しているため、これを求めています。それは前者から具体的に来ることになっています。プログラムの仕組みを理解するために、スキームインタープリターで活用できる2つの言語間の特定の技術的な詳細を探しています。 すなわち: 解釈する言語で書かれた通訳者の研究が強調されているのはなぜですか?元の言語と構築された言語をまっすぐに保つのは単に素晴らしい精神的な運動ですか、それともその性質でしか解決できない特定の問題がありますか?元の言語? Lispインタプリタは、将来のソフトウェア設計のために優れたアーキテクチャの概念をどのように実証しますか? この演習をC ++やJavaなどの別の言語で行った場合、何が恋しいですか? 何が最も使用され、この運動からテイクアウトや「精神的なツールが」?** ** このエクササイズから、他のどのツールよりも頭の中で解析ツールを設計するスキルが得られていることに気付いたので、答えを選択しました。スキームに適した異なる解析方法を見つけたいと思います。 Pythonインタープリターよりもインタープリター。

10
すべての関数呼び出し/ブロックが個別のスレッドで実行されるプログラミング言語?[閉まっている]
私は現在、すべての関数呼び出し/新しいブロック(if句、ループなど)が別のスレッドで動作するという考え方で、楽しみのためにプログラミング言語を作成しています。新しいスレッドを作成する代わりに、標準では自動的にそれを行う必要があります。メインスレッドで実行する場合は、それを指定する必要があります。 私はマルチスレッドの並列プログラミングについて知らされていませんが、基本(未来、スレッドセーフオブジェクト)は知っています。したがって、そのような言語がどのように構文的に賢く見えるのか、そもそも可能であるのかと疑問に思っています 目標は、それを「有用」にすることではなく、それを楽しむことと学習体験のためのものです。 (投稿する場所が間違っている場合は申し訳ありません。もしそうであれば、私のような質問が許可されている適切な場所を教えていただければ幸いです。)


13
データベースが言語機能として統合されないのはなぜですか?
外部SQL(または他の)データベースに接続するのではなく、一流の言語機能として組み込みデータベースを備えたプログラミング言語はありますか?そのような機能の欠点と利点は何ですか?そのような機能はどのように見え、プログラムの方法をどのように変えるでしょうか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.