13
© Profa. Clarisse Sieckenius de Souza, 2013 INF2811 (2013.2) A “Máquina Ideal de Software” (ISM) Um Modelo para a Análise de Linguagens de Programação (I) Aula 4 (03/09/2013 ) 1

INF2811 (2013.2) A “Máquina Ideal de Software” (ISM) Um ... · PDF fileLinguagens de Programação (I) Aula 4 (03/09/2013) 1 ... linguagem de programação? ... Qual a abordagem

Embed Size (px)

Citation preview

Page 1: INF2811 (2013.2) A “Máquina Ideal de Software” (ISM) Um ... · PDF fileLinguagens de Programação (I) Aula 4 (03/09/2013) 1 ... linguagem de programação? ... Qual a abordagem

© Profa. Clarisse Sieckenius de Souza, 2013

INF2811 (2013.2)A “Máquina Ideal de Software” (ISM) Um Modelo para a Análise de Linguagens de Programação (I)

Aula 4 (03/09/2013)

1

Page 2: INF2811 (2013.2) A “Máquina Ideal de Software” (ISM) Um ... · PDF fileLinguagens de Programação (I) Aula 4 (03/09/2013) 1 ... linguagem de programação? ... Qual a abordagem

© Profa. Clarisse Sieckenius de Souza, 2013

Da aula passada: Dimensões de Análise dos Ambientes de Programação

Que dimensões analisar e por quê?

• Propostas da Turma:– [Completar em Aula]

2

Page 3: INF2811 (2013.2) A “Máquina Ideal de Software” (ISM) Um ... · PDF fileLinguagens de Programação (I) Aula 4 (03/09/2013) 1 ... linguagem de programação? ... Qual a abordagem

© Profa. Clarisse Sieckenius de Souza, 2013

A “Máquina Ideal de Software” (ISM)David Gelernter & Suresh Jagannathan (1990) Programming Linguistics. The MIT Press

“A large number of distinguished researchers seem to feel that,if this field is ever going to find itself, the only place to look is inthe mathematics department. The study of programming languagesin particular is imagined in some quarters to be reducible to thestudy of implementation techniques on the one hand and to the formalor mathematical description of language semantics on the other. Bothtopics, despite the obvious importance of implementation and thepotential significance of formal semantics, beg the fundamental questions:

• What do programming languages look like, and what should they look like?• Why do they offer the tools and constructs they do, what kind of

programming styles do they suggest, what do they tell us about someparticular vision of software structure?

• What light do they shed on the basic, unanswered question in Systems –what is a program anyway?” (pp. xvii-xviii)

3

Page 4: INF2811 (2013.2) A “Máquina Ideal de Software” (ISM) Um ... · PDF fileLinguagens de Programação (I) Aula 4 (03/09/2013) 1 ... linguagem de programação? ... Qual a abordagem

© Profa. Clarisse Sieckenius de Souza, 2013

A “Máquina Ideal de Software” (ISM)• David Gelernter & Suresh Jagannathan (1990) Programming

Linguistics. The MIT Press

“... programming languages are synthetic creations, and [...] language designis properly an engineering study”

“... engineering exists at the interface between science and art. Aestheticissues, the design judgements that are captured in a programming languageand underline some vision of the shape and form of software machinery,are just as important to this field as the theorems that define computationThe beauty and power of programming languages are one facet of a largertopic, having to do with the sweep and intellectual depth of engineering ingeneral.”(p. xviii)

4

Page 5: INF2811 (2013.2) A “Máquina Ideal de Software” (ISM) Um ... · PDF fileLinguagens de Programação (I) Aula 4 (03/09/2013) 1 ... linguagem de programação? ... Qual a abordagem

© Profa. Clarisse Sieckenius de Souza, 2013

Definição de “programa”O que todo mundo sabe:• Documentos, com uma série de instruções a serem executadas• Um processo físico, de execução de instruções específicas

O que os autores propõem:• Programa é uma máquina.

– Ela pode ser representada em estado de repouso, antes de executar.

– E pode também ser representada em ação, durante a execução.

O que é uma linguagem de programação? (para os autores)• Um jogo de ferramentas para construir estas máquinas.

“[...] for small programs, choice of language rarely has any deep importance.

But the larger, more complex and less routine the application, the more

central a programming language’s influence

becomes.”

5

Page 6: INF2811 (2013.2) A “Máquina Ideal de Software” (ISM) Um ... · PDF fileLinguagens de Programação (I) Aula 4 (03/09/2013) 1 ... linguagem de programação? ... Qual a abordagem

© Profa. Clarisse Sieckenius de Souza, 2013

Se Programa=Máquina então Computador=?• “A program has to be plugged into a computer in order to execute,

but the characteristics of the software machine are directly determined by the language and the programmer, only indirectly by the physical computer.

It is therefore possible to study the design of [programming] languages as distinct from their implementation.”

Qual a abordagem “Linguística de Programação” dos autores?

• “We begin with an ideal model that allows us to study the fundamental structure of programming languages as opposed to merely the surface features that distinguish one from another.”

6

Page 7: INF2811 (2013.2) A “Máquina Ideal de Software” (ISM) Um ... · PDF fileLinguagens de Programação (I) Aula 4 (03/09/2013) 1 ... linguagem de programação? ... Qual a abordagem

© Profa. Clarisse Sieckenius de Souza, 2013

Dimensões de interesse para o estudo da ISMA máquina ideal a ser usada no estudo de linguística de programação é a ISM – Ideal Software Machine.

Com ela, os autores privilegiam as seguintes dimensões no estudo de linguagens de programação:• Ambientes de Denominação (naming environments) ou “espaço de nomes”:

dicionários que associam nomes a definições e/ou valores

• Estruturas, Tipos e Valores de Dados: esquema de organização, sua descrição e objetos que podem assim ser organizados e descritos

• Autodescrição: capacidade de estender sua expressividade utilizando seus próprios construtos de denominação, organização e descrição

7

Page 8: INF2811 (2013.2) A “Máquina Ideal de Software” (ISM) Um ... · PDF fileLinguagens de Programação (I) Aula 4 (03/09/2013) 1 ... linguagem de programação? ... Qual a abordagem

© Profa. Clarisse Sieckenius de Souza, 2013

Definição da ISM• A ISM é uma estrutura resultante de dois componentes

relacionados: space maps (mapas de espaço) e time maps (mapas de tempo). O espaço é onde as coisas estão e o tempo é onde elas acontecem.

space

time

8

Page 9: INF2811 (2013.2) A “Máquina Ideal de Software” (ISM) Um ... · PDF fileLinguagens de Programação (I) Aula 4 (03/09/2013) 1 ... linguagem de programação? ... Qual a abordagem

© Profa. Clarisse Sieckenius de Souza, 2013

Perspectivas alternadas na estrutura da ISM

space

time

space

time

descrição (de sucessivos estados)do espaço no tempo

descrição de pontos ou regiões do espaço (em sucessivos instantes) no tempo

programador

programador

rotate 900 right

9

Page 10: INF2811 (2013.2) A “Máquina Ideal de Software” (ISM) Um ... · PDF fileLinguagens de Programação (I) Aula 4 (03/09/2013) 1 ... linguagem de programação? ... Qual a abordagem

© Profa. Clarisse Sieckenius de Souza, 2013

Definições adicionais• Uma ISM é: um space map, um time map ou uma expressão.

• Um space map é o arranjo de um conjunto de elementos em regiões do espaço.

• Um time map é o arranjo de um conjunto de elementos em sucessivos instantes do tempo.

• Uma expressão é: – um valor ou algo que produz um valor ou– uma “região vazia” ou– um molde (template) para produzir ISM’s

10

Page 11: INF2811 (2013.2) A “Máquina Ideal de Software” (ISM) Um ... · PDF fileLinguagens de Programação (I) Aula 4 (03/09/2013) 1 ... linguagem de programação? ... Qual a abordagem

© Profa. Clarisse Sieckenius de Souza, 2013

Na perspectiva dos space maps• Quando um space map é “ligado”, todas as suas regiões são

avaliadas simultaneamente, resultando em um novo mapa (associado a um novo instante no tempo).

– Que regiões podem ter ou não ter “nomes”?– Nomes de elementos são organizados em estruturas? De que tipo (por

exemplo, hierárquicas)?– Nomes podem ser “invocados” em diferentes regiões do mapa? (De

todas, de algumas, de nenhuma? Em que condições?) – Se uma região não tem nome, ela pode ser invocada?

11

Page 12: INF2811 (2013.2) A “Máquina Ideal de Software” (ISM) Um ... · PDF fileLinguagens de Programação (I) Aula 4 (03/09/2013) 1 ... linguagem de programação? ... Qual a abordagem

© Profa. Clarisse Sieckenius de Souza, 2013

Na perspectiva dos time mapsQuando um time map é “ligado”, todas as regiões do space map sãosequencialmente visitadas. Uma vez visitada cada região desaparece do mapa. Assim, o resultado da ativação de um time mapé o valor da última região visitada.

• Exemplos de “programas” que são:– space maps (visitáveis no tempo)– time maps (executáveis em espaços de dados)

• Há analogias destes “programas” com situações (perspectivas familiares) na vida cotidiana de estudantes do ensino fundamental ou médio?

12

Page 13: INF2811 (2013.2) A “Máquina Ideal de Software” (ISM) Um ... · PDF fileLinguagens de Programação (I) Aula 4 (03/09/2013) 1 ... linguagem de programação? ... Qual a abordagem

© Profa. Clarisse Sieckenius de Souza, 2013

Para a aula que vem• Leitura dos capítuos 1 e 2 de Programming Linguistics (Gelernter &

Jagannathan, 1990), páginas 1 a 84

• Trazer para a aula apontamentos de que conceitos da ISM podem ser interessantes para o estudo de LP’s utilizadas no ensino-aprendizado de raciocínio computacional.

13