Que língua eu deveria aprender como uma ponte para C (e derivados)

votos
4

A primeira língua que aprendi foi PHP, mas eu tenho mais recentemente pegou Python. Como estas são todas as línguas 'alto nível', eu descobri-los um pouco difícil de pegar. Eu também tentei aprender Objective-C, mas eu desisti.

Então, o que língua que eu deveria aprender a ponte entre Python para C

Publicado 08/09/2008 em 06:23
fonte usuário
Em outras línguas...                            


14 respostas

votos
15

Não está claro por que você precisa de uma língua-ponte. Por que você não começar a trabalhar com C diretamente? C é em si uma linguagem muito simples. Eu acho que a parte mais difícil para C aluno é ponteiros e tudo mais relacionado ao gerenciamento de memória. Também C lang é orientado na programação estruturada, para que você terá que aprender como implementar estruturas de dados e algoritmos sem bondade OOP. Na verdade, sua pergunta é muito difícil, geralmente as pessoas vão de langs baixo nível de alto nível e eu posso entender a frustração de quem vai em outra direção.

Respondeu 08/09/2008 em 06:34
fonte usuário

votos
7

O melhor lugar para começar a aprender C é o livro "A Linguagem de Programação C", de Kernighan e Ritchie.

Você vai reconhecer um monte de coisas a partir de PHP, e você será surpreendido quanto PHP (e Perl, Python etc) fazer por você.

Ah, e você também vai precisar de um compilador C, mas eu acho que você sabia disso.

Respondeu 08/09/2008 em 07:13
fonte usuário

votos
5

I geralmente concordam com a maioria dos outros - Não há realmente uma boa linguagem trampolim.

É, no entanto, útil para compreender o que é difícil de aprender C, que pode ajudá-lo a entender o que está tornando difícil para você.

Eu diria que as coisas que seria difícil em C para alguém vindo de PHP seria:

  • Ponteiros e gerenciamento de memória
    Esta é praticamente a razão que você está aprendendo CI imaginar, então não há realmente nenhuma obtenção em torno dela. Aprender línguas tipo menor montagem de nível pode tornar isso mais fácil, mas C é provavelmente uma ponte para fazer isso, não o contrário.
  • Falta de construção em estruturas de dados
    PHP e co têm todos os tipos de corda nativas, e útil coisas como tabelas de hash embutidos, o que não é o caso em C. Em C, uma cadeia é apenas um array de caracteres, o que significa que você precisa fazer muito mais trabalho, ou olhar seriamente para as bibliotecas que agregam as características que você está acostumado.
  • A falta de construído em bibliotecas
    linguagens como PHP hoje em dia quase sempre vêm com pilhas de bibliotecas para coisas como conexões de banco de dados, manipulação de imagem e pilhas de outras coisas. Em C, este não é o caso que não seja uma biblioteca padrão muito fino que gira principalmente em torno de arquivo de leitura, escrita e manipulação básica string. Há quase sempre boas escolhas disponíveis para preencher essas necessidades, mas você precisa incluir-los sozinho.
  • Adequação para tarefas de alto nível
    Se você tentar implementar o mesmo tipo de aplicação em C como você pode em PHP, você vai achar que é muito lento. Gerar uma página web, por exemplo, não é realmente algo simples C é adequado para, por isso, se você está tentando fazer isso, você vai achar que é muito lento.
  • Pré-processamento e compilação
    maioria das linguagens estes dias não têm um pré-processador, e se você está vindo do PHP, o ciclo de compilação vai parecer doloroso. Ambos são trade-offs de desempenho de uma forma - Linguagens de script fazer o trade-off em termos de eficiência do desenvolvedor, onde, como C prefere desempenho.

Eu tenho certeza que há mais que não estão saltando à mente para mim agora. A moral da história é que tentar entender o que você está achando difícil em C pode ajudá-lo a prosseguir. Se você está tentando gerar páginas da web com ele, tente fazer algo nível inferior. Se você estiver faltando tabelas de hash, tente escrever a sua própria, ou encontrar uma biblioteca. Se você está lutando com ponteiros, ficar com ela :)

Respondeu 08/09/2008 em 08:49
fonte usuário

votos
1

Minha sugestão é para obter um bom C-book que é relevante para o que você quer fazer. Concordo que K & R é considerado "O livro" em C, mas eu achei "Unix sistemas de programação" por Kay A. Robbins e Steven Robbins ser mais prático e mãos. O livro está cheio de trechos de código limpas e curtas você pode digitar, compilar e tentar em apenas alguns minutos cada.

Há uma pré-visualização em http://books.google.com/books?id=tdsZHyH9bQEC&printsec=frontcover (Hyperlinking não funcionou.)

Respondeu 08/09/2008 em 07:52
fonte usuário

votos
1

C é uma ponte sobre si própria.

K & R é o único livro linguagem de programação que você pode ler em uma sessão e quase nunca pegá-lo novamente ...

Respondeu 08/09/2008 em 07:51
fonte usuário

votos
1

Esqueça Java - ele não está indo para trazê-lo em qualquer lugar mais perto de C (você allready provou que você não tem um problema de aprendizagem nova sintaxe).

Ou ler K & R ou ir um menor: Saiba mais sobre a própria máquina. A única parte complicada em C é ponteiros e gerenciamento de memória (que está intimamente relacionado com ponteiros, mas também tem um pouco a ver com a forma como as funções são chamadas). Aprender uma (talvez até mesmo simples, "fake" assembly) linguagem deve ajudá-lo aqui.

Então, comece lendo sobre a biblioteca padrão fornecido pelo C. Ele será o seu pão de cada dia e manteiga.

Oh: outra dica! Se você realmente não quer colmatar, tente ADIANTE . Ele me ajudou a entrar em ponteiros. Também, usando a API do Win32 a partir do Visual Basic 6.0 pode lhe ensinar algumas coisas sobre ponteiros;)

Respondeu 08/09/2008 em 07:48
fonte usuário

votos
1

Python é quase tão perto de C como você está indo para obter. É na verdade um invólucro muito fino ao redor C em um monte de lugares. No entanto, C exige que você sabe um pouco mais sobre como o computador funciona em um nível baixo. Assim, você pode se beneficiar de tentar uma linguagem de montagem.

LC-3 é uma linguagem de montagem simples com uma máquina simulado.

Alternativamente, você pode tentar jogar com um intérprete interativo C como CINT .

Finalmente, toughing-lo e ler o livro de K & R normalmente é a melhor abordagem.

Respondeu 08/09/2008 em 07:42
fonte usuário

votos
1

Aprender qualquer língua leva tempo, eu sempre garantir que eu tenho um objetivo mensurável; Eu me definir um objetivo, em seguida, começar a aprender a língua para alcançar este objectivo, ao contrário de tentar aprender todos os cantos da língua e da sintaxe.

C não é fácil, ponteiros pode ser difícil de compreender se você não está vindo raízes assembler. Eu aprendi C ++, em seguida, retro ajuste C ao meu repertório, mas eu comecei com x86 e 68000 assembler.

Respondeu 08/09/2008 em 07:25
fonte usuário

votos
0

Pascal! Feche sintaxe suficiente, ainda exige que você faça alguma gestão de memória, mas não tão difícil para iniciantes.

Respondeu 08/09/2008 em 22:00
fonte usuário

votos
0

Línguas são fáceis de aprender (especialmente um como C) ... a parte mais difícil é aprender as bibliotecas e / ou estilo de codificação da linguagem. Por exemplo, eu sei C ++ razoavelmente bem, mas a maioria do código C / C ++ eu vejo me confunde porque as convenções de nomenclatura são tão diferente do que eu trabalho com em uma base diária.

De qualquer forma, eu acho que o que estou tentando dizer é não se preocupar muito com a sintaxe, o foco em biblioteca disse o idioma. Esta não é específico para C, você pode dizer o mesmo sobre c #, vb.net, java e apenas sobre todas as outras línguas lá fora.

Respondeu 08/09/2008 em 12:29
fonte usuário

votos
0

tentar aprender uma língua que você está confortável com, tente abordagem diferente e os princípios.

Respondeu 08/09/2008 em 09:11
fonte usuário

votos
0

Eu acho que C ++ é uma boa "ponte" para C. eu aprendi C ++ primeiro na Universidade, e uma vez que ele é baseado em C você vai aprender um monte dos mesmos conceitos - talvez mais notavelmente ponteiros - mas também objeto de design orientado. OO pode ser aplicado a todos os tipos de línguas modernas, então vale a pena aprender.

Depois de aprender C ++, eu achei que não era muito difícil de pegar as diferenças entre C ++ e C conforme necessário (por exemplo, quando se trabalha em dispositivos que não suportam C ++).

Respondeu 08/09/2008 em 07:52
fonte usuário

votos
0

Java pode realmente ser uma boa opção aqui, acredite ou não. É fortemente baseado em C / C ++, por isso, se você pode obter a sintaxe ea tipagem forte, pegando C pode ser mais fácil. A vantagem é que você pode aprender a sintaxe nível mais baixo sem ter que aprender ponteiros (desde que a memória é gerenciada para você assim como em Python e PHP). Poderá, no entanto, aprender um conceito similar ... referências (ou objetos em geral).

Além disso, é altamente Orientado a Objetos, por isso pode ser difícil de pegar em que, se você não lidaram com OOP ainda .... você pode ser melhor fora apenas cavar com C como outros sugeriram, mas é uma opção .

Respondeu 08/09/2008 em 07:36
fonte usuário

votos
0

Estou me sentindo sua dor, eu também aprendi PHP primeiro e eu estou tentando aprender C ++, não é fácil, e eu estou realmente lutando, Tem sido 2 anos desde que comecei em c ++ e ainda a extensão do que eu posso fazer é cout, cin, e matemática.

Se alguém lê este e maravilhas onde começar, comece INFERIOR.

Respondeu 08/09/2008 em 06:48
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more